단순한 것부터 복잡한 것까지 파이어몽키. 파이어몽키란 무엇인가요? 네이티브 클래스 사용자 정의에 대한 지원 부족

파이어몽키란 무엇인가요?


FireMonkey(FMX)는 Delphi/C++ 언어를 사용하는 데스크톱 시스템(Windows, Mac OS + Linux에서 서버 지원은 가까운 미래에 계획됨)과 모바일(iOS 및 Android) 모두를 위한 크로스 플랫폼 개발을 위한 프레임워크입니다.

특징:

  • 모든 플랫폼에 대한 단일 코드 기반;

  • 모든 컨트롤(시각적 구성 요소)은 다른 구성 요소의 컨테이너(상위)가 될 수 있습니다.

  • 양식에 구성 요소의 매우 진보된 상대적 배열(20가지 유형)이 있습니다.

  • 라이브바인딩을 사용하면 모든 유형의 데이터나 정보를 사용자 인터페이스나 그래픽 개체에 연결할 수 있습니다.

  • 양식/구성요소 스타일의 존재;

  • 다중 장치 미리보기를 사용하면 각 플랫폼에 대한 시각적 프레젠테이션을 사용자 정의할 수 있습니다.

  • FireUI Live Preview - 실제 장치에 애플리케이션의 모습을 실시간으로 표시합니다.

가능성:

  • 각 플랫폼의 기본 API 사용 및 타사 기본 라이브러리 호출 기능

  • 모든 센서(GPS, 가속도계, 나침반, Bluetooth(LE 포함) 및 기타)와의 상호 작용

  • 푸시 알림, IoT 지원;

  • 비동기 HTTP 요청 지원;

  • 대부분의 데이터베이스(MsSQL, MySql, Oracle, PostgreSQL, MongoDB 등) 지원

  • 클라우드 서비스(Amazon, Azure) 작업

  • 안드로이드 서비스 지원.

단점 (현재):

  • 네이티브 클래스 사용자 정의에 대한 지원 부족;

  • 특정 사항의 구현이 불가능하거나(위젯, 확장 프로그램(iOS) 등) 탬버린과 함께 춤을 추어야 합니다(백그라운드 서비스, 방송 메시지 등).

  • 스플래시 화면(초기 화면)의 커스터마이징은 좋게 말하면 부족합니다.

  • FMX 컨트롤은 기본 렌더링과 시각적으로 완전히 유사한 자체 렌더링(시각화, 그리기)을 사용합니다.

  • 기본 컨트롤을 사용하려면 큰 신체 움직임이 필요합니다.

  • 구성 요소 중첩이 많으면 놀라운 일이 발생합니다. 응용 프로그램이 여러 위치에서 충돌하고, 초점을 잃거나, 정지되는 등의 현상이 발생합니다.

  • 모바일 플랫폼에서 애플리케이션을 디버깅하는 데 필요한 정보 내용은 0입니다.

  • 모바일 플랫폼의 오류 설명은 쓸모없는 "오류 0x00000X"로 축소되었습니다.

  • 컴파일 시간은 중대형 프로젝트에 가장 적합하기를 원합니다.

  • 각 플랫폼에 대한 모바일 애플리케이션을 다듬기 위해 파일을 사용해야 할 필요성;

  • Intel Atom 아키텍처는 지원되지 않습니다.

  • 경쟁사에 비해 가격이 부족함.

장점:

  • 최근 제품과 커뮤니티의 매우 활발한 개발, 점점 더 많은 새로운 기술에 대한 지원;

  • 수많은 무료 및 상업용 구성 요소의 존재;

  • 응용 프로그램의 속도는 기본 속도에 매우 가깝습니다.

  • 매우 진보된 시각적 편집기 및 환경 전반, 스타일 존재;

  • Win에서 애플리케이션을 테스트한 다음 장치에만 배포하는 기능으로 개발 속도가 크게 향상됩니다.

  • 손목을 가볍게 움직여 모드/플랫폼을 변경합니다.

  • PAServer는 Apple OS용으로 개발할 때 MacO와 쉽게 상호 작용할 수 있습니다.

  • 즉시 사용 가능한 3D 그래픽 지원.

결론적으로, 지난 몇 년 동안 FireMonkey는 비즈니스 애플리케이션 등의 크로스 플랫폼 개발을 위한 전문 도구로 성장했다고 말하고 싶습니다. 많은 단점이 점차 해결되고 있으며 각 릴리스마다 제품이 더욱 현대적이고 자급자족하게 되며, 수년간의 침체와 관련된 델파이 언어 자체에 대한 기존 회의론도 사라집니다. FireMonkey에서 새 프로젝트를 작성하는 것은 "안전"하고 유망합니다.

작년 9월에 출시된 Delphi XE2에는 기록적인 혁신이 포함되어 있습니다.
Delphi XE2의 기능에 대한 간략한 개요는 이미 Habré에 게시되었습니다. 그러나 분명히 가장 눈에 띄는 혁신은 FireMonkey 플랫폼입니다. 여기서 저는 이에 대해 조금 주목하고 싶습니다.
나는 당신이 이 플랫폼에 대해 어느 정도 적절한 아이디어를 얻는 데 도움이 될 자료에 대한 작은 링크를 선택했습니다. 하지만 먼저 모르시는 분들을 위해 파이어몽키가 무엇인지 간략하게 알려드리겠습니다.
Embarcadero Technologies는 FireMonkey를 Windows, Mac 및 iOS용 풍부한 비즈니스 애플리케이션을 생성하기 위한 플랫폼으로 자리매김했습니다. 게다가 이 플랫폼은 각 OS에 고유합니다. FireMonkey를 사용하여 생성된 애플리케이션을 실행할 때 추가 애드온이 사용되지 않습니다.
FireMonkey는 OpenGL 또는 DirectX와 같은 기본(OS 관점에서) 그래픽 라이브러리에 직접 연결됩니다. 따라서 GPU 관점에서 최적의 솔루션이 제안됩니다.
파이어몽키 아키텍처의 핵심은 강력한 클래스 라이브러리(시각적 구성요소 포함)입니다.
대상 플랫폼은 컴파일 프로세스 중에 선택됩니다.
FireMonkey의 첫 번째 버전은 Win32, Win64, MacOSX 및 iOS만 지원했지만 Embarcadero는 향후 이를 여러 다른 플랫폼으로 포팅할 계획입니다.

무엇을 고려해야 합니까?

파이어몽키 플랫폼은 3D 애플리케이션 개발을 위한 광범위한 도구를 제공하지만 이를 게임 엔진으로 간주해서는 안 됩니다. FireMonkey는 특히 비즈니스 애플리케이션 개발을 위한 플랫폼으로 자리잡고 있습니다.
이 제품은 현재 진화의 초기 단계에 있습니다. 그리고 많은 기능성파이어몽키는 질적, 양적 변화를 겪고 있습니다.

아래 링크가 새로운 플랫폼의 주요 기능을 이해하는 데 도움이 되기를 바랍니다.
Embarcadero 웹사이트의 공식 제품 페이지(러시아어)

영어 자료 중에서 제가 강조하고 싶은 시리즈는 (영어)

무엇을 볼까?

에 관하여 최신 버전 Delphi에는 이전보다 제품의 기능과 사용 방법에 대한 비디오 자료가 더 많이 있습니다. Embarcadero의 공식 개발자와 독립 개발자의 공식 제품입니다. YouTube에는 FireMonkey에 대한 많은 동영상이 있으므로 검색을 이용하시면 됩니다. 이러한 풍부한 자료 중에서 Marco Cantu - RAD in Action 랜딩 페이지의 세 가지 비디오 시리즈를 강조하여 내 연구에 유용한 벡터를 제공하겠습니다.

여러분은 아마도 Embarcadero가 크로스 플랫폼 GUI인 FireMonkey를 만드는 새로운 비전을 적극적으로 홍보하고 있다는 사실을 알고 계실 것입니다. 그들은 그것을 프레임워크라고 부르지만 현재 상태에서는 너무 멋있게 들립니다.). RuNet에서 대회가 차례로 발표되고 웹 세미나가 개최되며 후자의 품질은 많이 부족하지만 활동은 고무적입니다. 이제 실제로 주제로 넘어갑니다. 지난 대회의 일환으로 일종의 학습용 애플리케이션을 개발하는 것이 제안되었습니다. 그리고 어제 Evgeniy Chmel이 쓴 또 다른 작품이 나타났습니다. 이 성이 기울어 진 것인지 아닌지 모르겠습니다). 앞서 본 단순한 "단일 형태"와 달리 여기서는 스타일화, 3D, 셰이더 효과( Embarcadero 전도사들은 GPU 가속 그래픽에 대해 이야기하는 것을 좋아합니다 :))). 그 결과가 무엇인지 봅시다. 웨비나를 시청하지 않으신 분들을 위해 약간의 여담을 말씀드리겠습니다. 웨비나 중 하나에서 Embarcadero 전도사 Vsevolod Leonov는 Silverlight SDK와 Windows 에뮬레이터전화 7은 그의 컴퓨터에서 "작동하지 않았습니다"(인용문입니다). 왜냐하면... 그들은 비디오 어댑터나 GPU 설정이 마음에 들지 않았습니다. 그러나 FireMokey를 사용하여 개발된 애플리케이션은 Vsevolod가 계속해서 요구 사항을 전혀 요구하지 않는다고 말합니다. 하드웨어. 그가 우리에게 어떻게 거짓말을 했는지 봅시다. Mark Rusinovich의 Process Explorer v15.05가 우리의 공정한 증인이 될 것입니다. 따라서 Evgeniy의 애플리케이션을 다운로드하고 실행하십시오( 나는 Evgeniy의 애플리케이션 스크린샷을 제공하지 않으며 그의 작업 링크에서 볼 수 있습니다. 흐릿한 글꼴에 주의하세요.).

응용 프로그램을 시작했습니다. 소비를 살펴 보겠습니다.

무례하지만 용서할 수 있다” 첨단 기술" '강의' 섹션으로 이동하여 '강의 5'를 선택하세요. 무대 준비가 시작됩니다. 이 과정은 길다( 3.3GHz 주파수의 쿼드 코어 Phenom II에서 1분 조금 넘게 걸렸습니다.), 인내심을 가지십시오. 무대가 건설됩니다. 소비를 살펴 보겠습니다.

원숭이는 잘 먹었습니다. 아주 잘. 이제 답변 옵션 버튼 위로 마우스를 움직여 보십시오. GUI가 매우 느리게 반응하는 것 같은 느낌이 들지 않나요? CPU 사용량 그래프( 내 말은, 컴퓨터에서 직접 시도해 봐야 한다는 뜻이에요.) – 이 순간 부하가 100%에 접근합니다( 쿼드 코어 프로세서의 경우 ~21.5%를 기록했으며 이는 단일 코어의 경우 86%에 해당합니다.). 그런데 누군가 GPU 가속 그래픽에 대해 이야기해 주었습니다. 좋아, 계속하자. 우리는 수업의 모든 질문에 답합니다. 소비를 살펴 보겠습니다.

눈이 커졌나요? 이제 비교를 위해 3D 슈팅 게임 FarCry가 활동적인 게임 플레이에서 얼마나 많은 양을 소비하는지 살펴보세요( 누구든지 관심이 있다면 레벨을 Factory라고 합니다.) 전체 화면 모드 1440x900에서 실행 중:

스스로 결론을 내리십시오.

Delphi, C++Builder, JBuilder 등 세계적으로 유명한 도구와 Interbase 데이터베이스 관리 시스템을 개발한 CodeGear 사업부가 도구로 유명한 Embarcadero Technologies의 일부가 된 지 3년 이상이 지났습니다. 데이터베이스 설계 및 관리를 위해, 그리고 잡지 페이지에서 매우 인기 있는 도구 개발에서 무엇을 기대할 수 있는지 논의한 지 2년이 지났습니다. 러시아 개발자. 우리는 Embarcadero Technologies의 개발자 관계 담당 부사장이자 최고 전도사인 David Intersimone과 Embarcadero Technologies 대표 사무소의 대표인 Kirill Rannev에게 지난 2년 동안 이 분야에서 어떤 새로운 일이 이루어졌는지, 앞으로 무엇을 기대하게 될지에 대해 이야기해 달라고 요청했습니다. 가까운 미래 러시아. 가장 어린 독자들을 위해 이것이 David와 Kirill이 ComputerPress에 제공한 첫 번째 인터뷰가 아니라는 점을 알려드립니다. 우리의 협력은 20년 동안 계속되어 왔습니다. 그리고 거의 같은 수년 동안 우리는 Embarcadero 제품에 많은 관심을 기울이는 데이터베이스 관리 도구에 대한 리뷰를 주기적으로 게시해 왔습니다.

컴퓨터프레스: David, 당신의 부서는 3년 동안 Embarcadero의 일부였습니다. 2년 전, 당신은 회사가 당신의 목표와 정신에 가까운 회사의 일부가 되는 것에 열광했습니다. 이 기간 동안 변경된 사항이 있나요? 당신과 당신의 동료들은 여전히 ​​같은 열정을 갖고 있습니까?

네, 저는 아직도 매우 열정적입니다. 엠바카데로 회사의 일원이 된 후 일어난 가장 큰 변화는 델파이 개발에 많은 투자가 이루어졌다는 것입니다. 개발 도구에 참여하는 사람의 수가 늘어났고, 개발할 수 있거나 필요한 경우 획득할 수 있는 기술의 수도 늘어났습니다.

모스크바에서 시연할 예정인 RAD Studio XE 2의 출시는 16비트 버전의 Windows용으로 제작된 Delphi의 첫 번째 버전 이후 엄청난 기능과 ​​수많은 지원 플랫폼을 갖춘 이 제품의 최대 릴리스입니다. 이는 컴포넌트 접근 방식과 컴파일을 기계어 코드로 결합한 혁신적인 제품이었습니다. 이제 우리는 Windows뿐만 아니라 Macintosh용 개발도 지원하고 있으며, 웹 개발이나 애플리케이션 제작도 지원하고 있습니다. 모바일 장치, 다양한 플랫폼용 애플리케이션은 단일 코드를 가질 수 있습니다.

새로운 개발 플랫폼인 FireMonkey는 Embarcadero와 최근 인수된 러시아 회사인 UlanUde의 부품 제조업체인 KSDev 간의 공동 노력입니다. 벡터 그래픽, DirectX 및 OpenGL, 그래픽 효과 생성 기술 및 델파이 구성 요소사용하여 GPU PixelShader 2.0을 사용합니다. 우리는 1년 전에 KSDev(ksdev.ru 참조)라는 회사를 인수하여 사업을 시작했습니다. 협업애플리케이션 사용자 인터페이스 생성, 데이터베이스 통합, GPU 그래픽 처리 및 운영 체제 통합을 위한 Delphi 및 C++Buider 구성 요소가 포함된 FireMonkey 애플리케이션 개발 플랫폼을 포함하는 다중 플랫폼 개발 도구를 만듭니다.

파이어몽키를 사용하면 CPU와 GPU에서 함께 실행되는 애플리케이션을 만든 다음 다양한 컴파일러와 런타임 라이브러리(RTL)를 사용하여 Windows, Mac OS 또는 iOS용으로 컴파일할 수 있습니다. Delphi와 C++Builder를 사용하는 개발자는 다양한 그래픽 라이브러리를 사용하여 프로그래밍하는 방법을 배우고 다양한 좌표계와 기능을 갖춘 다양한 플랫폼의 API를 배우는 대신 동일한 구성 요소 기반 접근 방식을 사용하여 양식을 시각적으로 편집하고 데이터베이스에 연결할 수 있습니다. 마우스로 구성요소를 이동합니다. 이는 다양한 플랫폼에서 실행되는 애플리케이션을 만드는 근본적으로 새로운 방법이자 미래입니다. 애플리케이션에 다른 운영 체제 및 플랫폼에 대한 지원을 추가하려는 경우 다시 설계하고 개발할 필요가 없습니다. 다시 컴파일하기만 하면 됩니다.

우리는 네이티브 코드를 생성하는 새로운 컴파일러를 만듭니다. 현재 32비트 및 64비트용 Delphi 컴파일러가 있습니다. 윈도우 버전, Mac OS 10의 32비트 버전. 그리고 우리는 이러한 플랫폼과 Android 또는 Linux와 같은 다른 플랫폼 모두를 위한 고성능 기계어 코드를 생성할 수 있는 차세대 Delphi 및 C++Builder 컴파일러를 개발 중입니다. 서로 다른 컴파일러와 런타임 라이브러리를 사용하여 동일한 디자인, 동일한 구성 요소, 동일한 코드를 유지합니다.

보시다시피 열정에 대한 충분한 이유가 있습니다. 그리고 제가 만나는 전 세계 개발자들은 Embarcadero가 PHP 개발 도구뿐만 아니라 Delphi와 C++Builder에 막대한 투자를 하고 있다는 것을 알고 있습니다.

KP:지난 2년 동안 두 회사의 도구를 통합하여 어떤 성공을 거두었습니까? 이 분야에서 향후 Embarcadero의 계획은 무엇입니까?

DI.: CodeGear가 Embarcadero의 일부가 되었을 때 회사는 토론토, 몬테레이, 루마니아에 개발 팀을 두고 있었습니다. 우리는 Scotts Valley와 러시아, St. Petersburg에 있었고 지금도 여전히 위치하고 있습니다. Embarcadero에는 개발자와 데이터베이스 관리자를 위한 도구가 있었고 CodeGear에는 애플리케이션 개발을 위한 도구가 있었지만 후자는 데이터베이스도 사용합니다. 회사 합병은 서버 코드를 포함한 데이터베이스 분야의 전문 지식, 지식, 코드 최적화의 조합입니다. 또한 회사의 결합을 통해 일반 Windows 응용 프로그램을 매우 사용하기 쉬운 응용 프로그램(예: iPhone 또는 기타 장치용 응용 프로그램)으로 전환하는 특수 기술인 AppWave라는 새로운 제품이 탄생했습니다. AppWave를 사용하면 애플리케이션을 설치하지 않고, 준비된 애플리케이션 스토리지 서버(앱)에서 애플리케이션을 선택하여 실행하기만 하면 레지스트리 및 시스템 영역을 변경하지 않고 사용자 컴퓨터에서 실행됩니다. 파일 시스템. 그런데 AppWave 애플리케이션 브라우저는 Delphi로 작성되었습니다. Embarcadero는 자체 개발 및 애플리케이션 개발 전문 지식을 위해 Dephi를 사용합니다.

iPhone(iOS) 애플리케이션이 제작되었습니다.
파이어몽키 플랫폼을 사용하여

또한 개발 도구와 DB Optimizer의 통합을 사용하여 애플리케이션 생성 시 SQL 쿼리를 최적화할 수도 있습니다. SQL 코드를 DB Optimizer에 직접 전달하면 이를 프로파일링하고 테스트한 후 최적화된 버전을 개발 환경으로 다시 반환할 수 있습니다. Embarcadero의 데이터베이스 전문 지식은 DataSnap 기술도 향상시켰습니다. 토론토의 개발자들 덕분에 우리는 다중 계층 시스템 및 데이터베이스 아키텍처에 대한 많은 지식을 얻었습니다. 이제 우리는 두 회사 모두에서 서버 코드 및 저장 프로시저 생성에 대한 공동 전문 지식을 보유하게 되었습니다. 우리는 RapidSQL 및 DB Change Manager와 같은 도구는 물론 서버 코드 생성을 단순화하는 개발 환경을 보유하고 있습니다. 예를 들어 Code Insight 및 Code Completion 기술을 사용하면 SQL Insight 및 SQL Completion 기술을 생성할 수 있습니다. 우리의 공통 철학인 클라이언트 및 서버 코드 작성에 대한 우리의 공통 접근 방식을 통해 데이터베이스 관리 도구 및 애플리케이션 개발 도구에 공통 기능을 제공할 수 있습니다.

키릴 란네프:중요한 것을 추가하고 싶습니다. 상업적인 관점에서 볼 때 도구를 제공하는 방법은 매우 중요합니다. 예를 들어, 새로운 릴리스 RAD Studio XE 2 Ultimate에는 DB Power Studio 도구의 전체 제품군이 포함되어 있습니다. 이는 RapidSQL 쿼리 개발 환경, DB Change Manager 변경 관리 도구, DB Optimizer 쿼리 최적화 도구를 포함한 매우 강력한 도구 세트로, 변경 사항을 관리하여 개발 및 배포 프로세스의 중요한 부분을 수행할 수 있습니다. 데이터 모델, 데이터베이스, 코드 등. 이것은 매우 훌륭하고 올바른 기술 조합입니다.

DI.:그러나 필요한 경우 개발자는 버전 제어를 위해 Subversion을 사용할 수 있습니다. 소스 코드메타데이터 버전 관리를 위한 DB 변경 관리자. 코드 프로파일링과 DB Optimizer를 사용하여 서버 코드를 최적화하고, RapidSQL을 사용하여 서버 코드를 구축 및 디버그하고, 개발 환경을 사용하여 애플리케이션을 구축 및 디버그할 수 있습니다. RAD Studio XE Ultimate Edition의 이러한 기술 조합은 데이터베이스와 애플리케이션 개발 모델 간의 유사성을 보여줍니다. Delphi 및 C++Builder로 비즈니스 애플리케이션을 구축하는 대부분의 개발자는 데이터베이스 작업을 하며 이러한 도구가 필요하며 RAD Studio XE Ultimate Edition은 그러한 개발자에게 훌륭한 조합입니다.

KP:현대 사용자는 더 이상 Windows 플랫폼만 사용하는 사용자가 아닙니다. 우리는 Android 플랫폼 기반의 모바일 장치, iPhone, iPad, 장치를 사용합니다. 이는 개발자가 교육에 대한 투자를 크게 늘리지 않고도 다양한 플랫폼을 목표로 삼아야 함을 의미합니다. 즉, 범용 도구가 필요합니다. 분명히 플랫폼 제조업체로부터 범용 도구를 기대하는 것은 비현실적이며, 이 문제에 있어서 우리는 독립적인 도구 제조업체에만 의존할 수 있습니다. Embarcadero를 어떻게 믿을 수 있나요?

DI.:플랫폼 지원 측면에서는 아직 할 일이 많습니다. 오늘 우리는 iPhone 및 iPad용 iOS 플랫폼에 대한 지원을 소개하며, 이후 Android 플랫폼, Windows 7 및 Blackberry 기반 스마트폰이 지원을 받게 될 것입니다. RAD Studio XE 2에서는 iOS용 파이어몽키 플랫폼을 구축하는 것부터 시작하여 파이어몽키를 다른 플랫폼에도 적용할 예정입니다.

동시에 휴대폰용 터치스크린을 지원하는 수많은 운영체제가 존재하며, 태블릿 컴퓨터및 데스크톱 장치에 대한 지원을 계속 추가할 예정입니다. 그 외에도 음성, 모션, 생체 인식 시스템, 가속도계를 지원하므로 모든 개발자가 새로운 플랫폼을 활용할 수 있도록 FireMonkey를 계속 확장해야 합니다. 예를 들어 Microsoft Kinect 장치는 Xbox 360용으로 설계되었으며 이제 이에 상응하는 Windows용 SDK(소프트웨어 개발 키트)가 있습니다. 그리고 일반적으로 마우스나 키보드를 사용하는 것과 거의 동일한 방식으로 모션을 사용하여 응용 프로그램을 제어하는 ​​예가 이미 있습니다.

복잡한 그래픽이 많이 포함된 애플리케이션을 만들면 새로운 사용자 인터페이스의 세계가 생성됩니다. 수술실을 다루는 경우 윈도우 시스템, 우리는 그 응용 프로그램을 캡슐화합니다 소프트웨어 인터페이스 VCL 라이브러리의 Windows API(Visual Component Library - Delphi 및 C++Builder 개발 도구의 일부인 시각적 구성 요소 라이브러리. - 메모 에드.) 그런데 추가로 사용할 수 있습니다. 그리고 FireMonkey에서는 운영 체제 API를 캡슐화합니다. 그러나 오늘날 우리는 모양과 그래픽을 훨씬 더 광범위하게 조작합니다. 애니메이션 및 특수 효과를 위해 공간에 물리적 특성을 추가할 수도 있습니다. 또한 향후 몇 년 내에 다양한 플랫폼, 모바일 및 태블릿 장치에 대해 구현할 사용자 인터페이스 생성을 위한 수많은 추가 기능이 있습니다.

마이크로소프트가 최근 발표한 자세한 정보 1년 뒤에 출시 예정인 Windows 8에 대해 알아보겠습니다. 우리는 VCL 라이브러리와 FireMonkey 플랫폼에서 이러한 혁신을 지원할 것입니다. 그러나 Delphi는 Windows뿐만 아니라 Macintosh, iPhone 및 iPad용으로 설계된 개발 도구입니다. 또한 PHP 제품을 개발하고, jQuery Mobile을 지원하고, iOS API를 사용하여 모바일 클라이언트 애플리케이션을 개발하고, 마법사와 도구를 사용하여 클라이언트측 JavaScript, HTML 및 계단식 스타일 시트를 생성하는 서버측 PHP 애플리케이션을 만듭니다. PHP 애플리케이션과 클라이언트 애플리케이션에서 네이티브 코드를 사용하여 패키지를 만들 수 있습니다. 아이폰 iOS, 그러한 클라이언트는 다음과 통신합니다. PHP 서버. 그리고 그는 비즈니스에 필요한 모든 것을 갖춘 데이터베이스 서버 및 웹 서비스와 통신합니다.

RadPHP XE2 개발 환경. 모바일 웹 애플리케이션 만들기
iPhone 3G용 jQuery Mobile 구성요소 사용

즉, 모바일 플랫폼 지원을 포함하여 FireMonkey와 VCL의 기능을 확장할 계획입니다.

KP: FireMonkey 플랫폼에 대해 더 자세히 알려주실 수 있나요?

DI.:이미 언급했듯이 Windows용으로 만들어진 VCL 라이브러리는 계속해서 개발되고 개선될 것입니다. 그러나 오늘날 실제 비즈니스 애플리케이션 개발을 원한다면 다양한 플랫폼에 맞게 애플리케이션을 만들어야 합니다. 이것이 바로 FireMonkey 플랫폼이 설계된 이유입니다. 고해상도 사용자 인터페이스, 고성능 3D 그래픽, 높은 프레임 속도 생성을 지원하며, 중요한 것은 이를 위해 그래픽 프로세서를 사용한다는 것입니다.

과학, 엔지니어링, 비즈니스 애플리케이션을 만들 때 이러한 기능을 사용할 수 있습니다. 이러한 애플리케이션은 dbExpress 기술을 사용하여 데이터베이스에 연결할 수 있으며, 여전히 ClientDataSet 또는 DataSource와 같은 개발자에게 친숙한 비시각적 구성 요소를 사용하고, DataSnap 기술을 사용하고, 모든 데이터베이스, SOAP 및 REST 서버에 연결할 수 있습니다. 매력적인 컨트롤, 상자가 있는 버튼, 특이한 테이블 및 기타 인터페이스 요소를 2차원 및 3차원으로 만들 수 있습니다. 완성된 3D 모델을 앱에 로드하고 2D 모양에 연결하여 회전하고 다른 각도에서 볼 수 있습니다. 데이터 큐브 또는 3D 비즈니스 차트를 만들고 마우스, 키보드 또는 Kinect 장치를 사용하여 회전하거나 큐브 내부로 들어가 내부에서 다양한 표면을 볼 수 있습니다. 그리고 이 모든 것은 고속 GPU를 사용하여 수행할 수 있습니다. 그런 다음 동일한 응용 프로그램을 Mac OS와 같은 다른 플랫폼용으로 컴파일할 수 있습니다.

회전하는 데이터 큐브를 포함하는 애플리케이션
가장자리에 배치

또는 처음부터 3D 모양을 만들고 카메라와 조명을 사용하여 사용자 인터페이스의 일부를 조명하고 회전할 수 있습니다. 양식 디자이너에는 디자인 중에 3D 사용자 인터페이스를 지원하는 환경이 이미 내장되어 있습니다.

Windows에서 2차원 그래픽 작업용 높은 해상도 Direct2D 라이브러리를 사용할 수 있으며 3D 그래픽- 다이렉트3D. Mac OS에서는 Quartz 및 OpenGL 라이브러리가 동일한 목적으로 사용됩니다. iOS의 경우 Quartz 및 OpenGL ES 라이브러리가 사용됩니다. 그러나 이 모든 것은 개발자에게 숨겨져 있습니다. 그는 이러한 라이브러리에 대해 생각하지 않고 FireMonkey 플랫폼, 좌표계 및 애플리케이션 프로그래밍 인터페이스를 사용하고 다양한 플랫폼에 대해 동일한 애플리케이션을 컴파일할 수 있습니다.

VCL이 무엇인지 기억해 봅시다. VCL은 Windows API를 둘러싼 구성 요소 래퍼입니다. 우리는 리소스, 메뉴, 대화 상자, 색상, 스타일, Windows 메시지를 다룹니다. VCL과 달리 멀티 플랫폼 래퍼이기 때문에 FireMonkey는 동일한 이벤트 및 구성 요소 모델을 유지하므로 이벤트(예: OnClick, OnHasFocus, onMouseDown 및 onKeyDown 이벤트) 측면에서 생각할 수 있지만 Macintosh 또는 iPhone 이벤트를 처리합니다.

FireMonkey 플랫폼에는 다음이 함께 제공됩니다. 완전한 시스템사용자 인터페이스 요소의 애니메이션. 확실히 포괄적인 Pixar 스타일 애니메이션 시스템은 아니지만 비트맵 애니메이션, UI 요소 포커스 강조 표시 및 벡터 그래픽과 같은 효과를 허용합니다. 개발자는 흐림, 이미지를 흑백으로 변환, 용해, 전환, 반사, 그림자 생성 등 50개 이상의 시각 효과를 사용할 수 있습니다. 모든 유형의 효과는 현재 거의 모든 컴퓨터에서 볼 수 있는 최신 그래픽 프로세서에서 사용할 수 있습니다. 파이어몽키 플랫폼을 사용하여 구축된 애플리케이션은 그래픽을 표시하고 사용자 인터페이스를 생성하는 모든 작업을 수행하는 GPU에 명령을 보냅니다. 여기서 CPU계산 및 운영 체제 호출은 무료입니다. 개발자는 구성 요소를 올바르게 배치할 수만 있습니다.

파이어몽키 플랫폼의 가장 기본적인 점은 사용자 인터페이스를 구축하는 방식입니다. 숙박 시설이 있습니다 래스터 그래픽메뉴, 버튼, 스크롤바 등 인터페이스 요소에 적용됩니다. FireMonkey에서는 이러한 목적으로 GPU 기반 벡터 그래픽을 사용합니다. 프로그래밍 관점에서 볼 때 이들은 여전히 ​​동일한 컨트롤이지만 이를 표시하는 모든 작업은 그래픽 프로세서에 의해 수행됩니다. 컨트롤에 스타일을 적용하고, 애플리케이션을 Mac OS 또는 Windows용 애플리케이션처럼 보이게 만들고, 고유한 스타일을 만들고, 인터페이스 요소에 고유한 스타일을 적용할 수 있습니다(예: 양식 편집기에서 스타일을 변경하여 버튼을 직사각형 또는 원형으로 만들 수 있음) ) - 이를 위해 개발 환경에 스타일 편집기가 있습니다. 자신만의 스타일을 만들 수도 있고 이미 완성된 애플리케이션의 스타일을 변경할 수도 있습니다.

파이어몽키 플랫폼 - 개발 도구
및 지원되는 플랫폼

기억하신다면 VCL 라이브러리에는 제한된 수의 컨트롤(컨테이너(즉, 다른 요소를 그 안에 배치할 수 있음))이 있었고 FireMonkey에서는 각 컨트롤이 컨테이너입니다. 즉, 각 컨트롤에는 다른 컨트롤이 포함될 수 있습니다. 예를 들어 드롭다운 목록 항목에는 이미지, 버튼, 편집 필드 및 기타 컨트롤이 포함될 수 있습니다. 구성요소를 레이어에 배치할 수도 있습니다.

FireMonkey 렌더링 시스템은 매우 유연합니다. Direct2D, Direct3D 및 OpenGL 라이브러리를 사용하여 GPU에 명령을 보낼 수 있습니다. VCL에서 동일한 결과를 얻으려면 별도의 오프스크린 버퍼를 생성하고 적절한 그래픽 라이브러리 함수를 호출하여 그 안에 이미지를 만든 다음 이를 양식에 표시해야 했습니다.

파이어몽키가 지원하는 그래픽 효과의 예

GPU가 없어도 2D 또는 3D 모양을 적용하고 파이어몽키 컨트롤을 사용할 수 있습니다. 이 경우 파이어몽키 플랫폼은 GDI+ 라이브러리 또는 기타 유사한 라이브러리를 사용하고 동일한 효과와 애니메이션 또는 3D 개체 조작을 수행합니다.

파이어몽키의 또 다른 특징은 새로운 시스템개방적이고 유연한 인터페이스 요소를 데이터와 연결합니다. VCL에는 데이터 바인딩과 비데이터 바인딩(예: TDBEdit 및 TEdit)이라는 두 가지 유형의 인터페이스 요소가 있습니다. 파이어몽키에서는 모든 컨트롤이 모든 유형의 데이터와 연결될 수 있습니다. 이는 간단한 표현식, 데이터 세트의 필드, 개발자가 생성한 개체의 데이터 또는 메서드 호출 결과일 수 있습니다.

또한 애플리케이션을 생성할 때 미리 만들어진 3D 모델을 애플리케이션에 로드하여 사용할 수 있습니다. 이러한 기능은 비즈니스 및 엔지니어링 애플리케이션 모두에 필요한 경우가 많습니다. 물류 애플리케이션을 만드는 고객이 있습니다. 그들은 가지고 있었다 정보시스템, Delphi를 사용하여 구축되었으며 그 안에는 계획을 세우고 데이터 소스의 정보를 표시하는 애플리케이션입니다. 그들은 최근 흥미로운 작업을 수행했습니다. AutoCAD에서 완전 자동화된 3D 창고를 그렸고, 응용 프로그램을 사용하면 자동화된 지게차가 창고 주위를 이동하고 선반에 상품을 놓는 방법을 볼 수 있습니다. 그리고 해당 이미지에 소스의 데이터를 넣습니다.

애플리케이션 스타일 변경의 예

KP:현재 지원되는 3D 모델 형식은 무엇입니까?

DI.:이번 릴리스에서는 AutoCAD, Collada(오픈 소스 3D 모델링 도구)에서 모델 로드를 지원합니다. - 메모 편집하다.), Maya는 많은 3D 그래픽 공급업체에서 지원하는 OBJ 형식입니다.

KP:어떤 다른 형식을 추가할 계획인가요?

DI.: 3DS(3D Studio MAX), SVG(보통 이 형식은 2D 벡터 그래픽에 사용되지만 때로는 3D에도 사용됨), Google SketchUp을 추가할 계획입니다. 아마도 우리는 다른 형식을 지원할 것입니다.

KP: FireMonkey로 구축된 애플리케이션에서 3D 모델을 사용하려면 적절한 3D 모델링 도구에 대한 라이선스가 필요합니까?

DI.:아니요, 필요하지 않습니다. 우리가 하는 일은 모델 파일을 읽는 것 뿐입니다. 모델을 가져오지만 내보내지는 않습니다(물론 모델을 자신만의 형식으로 저장하는 애플리케이션을 작성할 수도 있음). 우리는 3D 모델링 도구 제조업체인 척하지 않습니다. 이를 위해 AutoCAD, 3D Studio Max, Maya 또는 기타 3D 모델링 도구를 사용하고 생성된 모델을 우리 응용 프로그램으로 가져올 수 있습니다.

KP:최신 하드웨어 플랫폼에서 FireMonkey로 구축된 애플리케이션의 성능은 얼마나 됩니까?

DI.:생산성이 상당히 높습니다. 예를 들어, 3개의 구와 3개의 광원을 사용하여 3D 모양을 렌더링하는 경우 맥북 프로초당 100프레임의 속도로 수행할 수 있습니다. 또는 600에 도달할 수도 있습니다. 이는 우리가 정확히 무엇을 하고 있는지에 따라 다릅니다. 다시 말하지만, 모든 것은 GPU의 성능에 달려 있습니다.

KP:이는 FireMonkey를 사용하여 현대적인 게임을 만들 수 있다는 것을 의미합니까?

DI.:우리는 개발 도구를 게임 도구로 포지셔닝하지 않습니다. 그러나 최신 GPU의 고성능을 활용하면 FireMonkey를 사용하여 게임을 만들 수 있습니다. 결국 게임은 Direct3D 또는 OpenGL을 사용하여 만들어집니다.

KP:제스처 인식 및 기타 새로운 기능을 지원하는 분야에서 현재 어떤 작업을 하고 있나요? 그러한 지원이 가능한가요?

DI.:이번 릴리스에는 아직 제스처 지원이 없습니다. 제스처 컨트롤은 FireMonkey의 향후 릴리스에 추가될 예정이지만 그 동안에는 운영 체제에 내장된 제스처 지원을 사용할 수 있습니다.

미하일 필리펜코(Mikhail Filippenko) Fast Reports, Inc. 이사

K.R.:우리는 이미 FireMonkey 기술이 러시아에 뿌리를 두고 있다고 말했습니다. 그 기반은 우리나라에서 만들어졌고 기술 자체와 개발자 모두 Embarcadero에 합류했습니다. 일반적으로 RAD Studio와 Delphi에서 러시아어 구성 요소의 성장을 보는 것은 기쁩니다. 여기에는 상트페테르부르크 개발 센터의 활동과 독립 러시아 개발자의 기여가 포함됩니다. 예를 들어, Rad Studio XE2에는 전 세계적으로 알려져 있고 우리나라에서 매우 인기 있는 FastReport 보고서 생성기가 포함되어 있습니다. 그는 원래 Rostov-on-Don 출신입니다.

KP:컴파일러에 대해 이야기하고 싶습니다. iOS 애플리케이션을 만들 때 어떤 종류의 컴파일러가 사용됩니까?

DI.:우리는 iPhone이나 iPad용 자체 Delphi 컴파일러가 없습니다. 아직 해당 장치에 사용되는 ARM 프로세서용 컴파일러를 개발하지 않았습니다. iOS의 경우 일시적으로 Free Pascal 컴파일러와 런타임 라이브러리를 사용합니다. 그러나 우리는 AWP 프로세서를 포함하여 차세대 컴파일러를 개발하고 있습니다. 그러나 두 하드웨어 플랫폼 모두 Intel 프로세서를 기반으로 하기 때문에 Windows 및 Mac OS용 컴파일러가 있습니다.

KP:지난 2년 동안 컴파일러 제작 분야에서는 어떤 일이 이루어졌나요?

DI.:우리는 Windows 및 Mac OS용 32비트 및 64비트 Delphi 컴파일러를 보유하고 있습니다. 그리고 우리는 차세대 Delphi 및 C++ 컴파일러를 개발하고 있습니다. 아직 작업이 진행 중이지만 완료되면 ARM 프로세서, Android 플랫폼, Linux 및 그 사이의 모든 것을 위한 Delphi 컴파일러를 갖게 될 것입니다. 그리고 우리는 ISO에서 최근 채택한 최신 C++ 언어 표준과 호환되는 Windows 및 기타 플랫폼용 64비트 C++ 컴파일러를 갖게 될 것입니다.

KP:현재 Embarcadero 개발 도구의 클라우드 컴퓨팅 지원은 어떻게 진행되고 있나요?

DI.: RAD Studio XE 2에서는 플랫폼 어시스턴트를 사용하여 애플리케이션을 Microsoft Azure 또는 Amazon EC2 클라우드로 이동할 수 있도록 지원합니다. 또한 테이블, 바이너리 데이터, 메시지 대기열을 저장하기 위한 Azure용 Cloud Storage 및 Amazon S3용 서버 구성요소도 있습니다. 안에 이전 버전 RAD Studio XE를 사용하여 Amazon EC2에 애플리케이션 배포도 지원했지만 스토리지 지원이 부족했습니다.

RAD Studio XE 2의 클라우드 컴퓨팅 지원

KP: 2년 전 귀하께서는 새로운 All-Access 솔루션에 대해 말씀하셨습니다. 얼마나 인기가 있었나요? 시스템 통합업체와 개발자에게 어떤 이점이 있나요?

DI.: All-Access 솔루션과 AppWave 클라우드 도구는 전 세계적으로 널리 사용되고 있습니다. 이는 당사 자체 애플리케이션과 제3자 애플리케이션을 더 쉽게 사용할 수 있도록 설계되었습니다. 실제로 라이선스 및 애플리케이션 사용량을 관리하는 솔루션으로, 대기업. 애플리케이션 관리를 담당하는 전담 인력 팀이 없는 소규모 회사에서는 애플리케이션을 저장소에 저장하고, 데이터베이스에서 사용자 이름을 선택하고, 위치를 기억할 필요 없이 해당 애플리케이션을 사용 가능하게 만들 수 있습니다. 라이센스 키사용 가능한 라이센스 수. All-Access와 AppWave 브라우저는 버전 관리와 액세스 제어를 모두 관리하도록 설계되었습니다.

K.R.:시장이 너무 다양하고 사용자도 너무 다르기 때문에 하나의 솔루션으로 모든 요구 사항을 충족하는 것은 불가능합니다. 이것이 바로 우리가 다양한 포장 솔루션을 위해 노력하는 이유입니다. 우리는 라이센스, 라이센스 관리 및 제품 설치 방법을 통합하기 위해 많은 작업을 수행했습니다. 이 솔루션 라인에는 Embarcadero 제품뿐만 아니라 내부 회사 개발을 포함한 다른 모든 제품에 대한 라이센스 및 프로비저닝 관리 도구가 포함되어 있습니다.

개발 도구를 사용자를 위한 효과적인 키트로 패키징하는 작업은 여전히 ​​진행 중입니다. 우리는 모든 Embarcadero 제품을 결합한 상위 세트인 All-Access를 보유하고 있습니다. 고객이 All-Access Platinum을 구매하면 Embarcadero에 있는 모든 도구를 받게 됩니다. 그러나 때때로 이 세트는 중복되는 것으로 판명됩니다. 예를 들어 데이터베이스 전문가를 위해 우리는 DB Power Studio Developer Edition과 DB Power Studio DBA Edition이라는 두 가지 다른 세트를 만들었습니다. 차이점은 개발자에게는 서버 코드 개발 도구인 RapidSQL을 제공하고 관리자에게는 RapidSQL보다 더 광범위한 제품인 데이터베이스 관리 도구인 DBArtizan이 내장되어 있다는 것입니다. 전문가를 위해 우리는 모든 제품을 포함하는 All-Access 제품군, 개발자를 위한 DB Power Studio, 관리자를 위한 DB Power Studio, 건축가 및 모델링에 관련된 모든 사람을 위한 ER Studio Enterprise Edition을 제공합니다. 애플리케이션 개발과 관리자를 위한 조합이 있습니다. Delphi는 개발자 도구이므로 여기에 SQL 개발 및 최적화 도구를 추가하는 것이 합리적입니다. 마지막으로 DB Change Manager는 데이터베이스 수명 주기 동안 데이터베이스에 발생하는 변경의 복잡성을 관리하기 위한 논리적 도구입니다.

따라서 All-Access는 다양한 제품군으로 이루어진 대규모 제품군의 선두주자입니다.

KP:비밀이 아니라면 러시아에서 누가 All-Access를 사용합니까?

K.R.: Delphi를 기반으로 All-Access를 구매하신 고객님이 계십니다. 그들 중 다수는 복잡한 클라이언트-서버 시스템을 만듭니다. SQL 서버그리고 Oracle은 우리의 크로스 플랫폼 데이터베이스 도구를 즉시 좋아했습니다. 우리는 첫 번째 버전부터 Delphi와 협력해 온 고객 회사가 있는데 1년 전에 Delphi에서 전환했습니다. 델파이를 사용하여 All-Access 세트로 이동합니다. 이 회사의 모든 개발자가 사용을 보장하는 두 가지 도구는 Delphi와 DBArtisan입니다. 그리고 데이터베이스 쪽에서 All-Access를 찾아주신 고객분들도 계십니다. 이들의 주요 업무는 데이터베이스를 관리하는 것이지만 때로는 애플리케이션을 개발하기도 합니다. All-Access를 사용하는 고객으로는 미디어 회사, 엔지니어링 회사 및 기타 산업이 포함됩니다.

이와 별도로 저는 중소기업에 집중하고 싶습니다. 소규모 팀에서는 개발자가 모든 작업을 수행하는 경우가 많으며, 그러한 회사는 때때로 한두 명의 개발자를 위해 대규모 All-Access 제품 세트를 구매합니다. 대규모 팀에서는 개발자가 데이터베이스 관리자 역할도 수행하는 것이 권장되지 않으므로 일반적으로 소규모 제품 세트가 인기가 있지만 소규모 회사에서는 이러한 책임 조합이 상당히 허용됩니다.

Delphi Architect는 모델링 및 프로그래밍 도구를 포함하여 많이 판매되는 제품입니다. 그러나 판매된 수량은 Delphi Enterprise 버전에 비해 적지만 규모도 큽니다. 2010년에는 모든 국가가 위기를 겪었음에도 불구하고 판매량 측면에서 우리가 최고의 국가로 판명되었다는 점에 주목하고 싶습니다. 이러한 성장은 경제적 요인보다는 2009년 말에 출시된 RAD Studio XE 버전이 큰 인기를 끌었기 때문에 가능했습니다. 그리고 현재로서는 추가적인 매출 성장을 기대하고 있습니다.

우리는 또 다른 합리적인 조치를 취했는데, 이는 러시아에서 매우 인기가 높습니다. 당사 제품의 다양한 버전에 대한 합법화 정도는 다릅니다. 버전이 높을수록 더 합법화됩니다. 소프트웨어그다지 적극적으로 구매하지 않았습니다. RAD Studio XE부터 라이선스는 2010, 2009, 2007 버전은 물론 널리 사용되는 제품인 Delphi 7에도 적용됩니다.

오늘날 개발자들은 새로운 프로젝트와 지원 프로젝트가 모두 있다는 사실에 직면해 있습니다. 다수의 프로젝트가 이전되었습니다. 이전 버전 Delphi는 버전 7로 변경되었으며 이 버전에 남아 상대적으로 작은 리소스에 대한 작업을 계속합니다. 아무도 최신 버전으로 이동하지 않지만 실행 가능한 상태로 유지됩니다. 이제 우리는 적은 비용으로(Delphi 7 라이선스 가격보다 저렴한) RAD Studio XE와 Delphi 7을 모두 얻을 수 있도록 허용합니다. 즉, 새로운 프로젝트 구현과 지원 프로젝트 모두에 대해 개발자를 합법화합니다.

KP: Embarcadero 커뮤니티의 현재 상태를 어떻게 평가하시나요?

DI.:이 커뮤니티는 규모가 크고 요구사항이 매우 많습니다. 그들은 즉시 모든 것이 필요합니다. 그들은 개발자입니다. 그러나 때로는 올바른 일을 하는 데 오랜 시간이 걸립니다.

몇 년 전 우리는 Windows 구성 요소 아키텍처를 Linux 데스크톱에 적용했습니다. 이제 우리는 이것이 올바른 결정이 아니라는 것을 알게 되었습니다. 올바른 솔루션은 애플리케이션 플랫폼을 만드는 것입니다. 다양한 플랫폼에 걸쳐 있는 애플리케이션에도 메뉴, 창, 그래픽, 네트워크 액세스 및 장치 액세스가 있습니다. 다양한 플랫폼이 있을 수 있음 다른 모델흐름 제어 또는 예외 처리와 관련이 있지만 애플리케이션 코드에서는 동일한 try 블록을 볼 수 있습니다. 우리의 임무는 해당 프로세서의 명령어 세트가 어떻게 구성되어 있는지, 이러한 플랫폼의 다른 기능이 무엇인지에 관계없이 개발자가 더 쉽게 비즈니스 애플리케이션을 만들고 이를 사용하려는 플랫폼에 맞게 컴파일할 수 있도록 하는 것입니다. 그리고 FireMonkey는 바로 이 문제를 해결하는 데 필요한 것입니다.

KP:회사에서 새 장치를 만들고 이를 파이어몽키에서 지원하기를 원하는 경우 이것이 가능합니까?

DI.:플랫폼 독립적인 프런트엔드와 플랫폼 종속적인 백엔드를 갖춘 차세대 컴파일러를 사용하면 이것이 가능해질 것입니다. 그 동안 각 운영 체제마다 처음부터 컴파일러와 런타임 라이브러리를 만듭니다.

일반적으로 모든 최신 새 장치에는 그래픽이 있습니다. 사용자 인터페이스(그들 중 많은 사람들이 듀얼 코어 프로세서및 GPU) 및 개발자를 위한 표준 SDK를 제공합니다. 이를 통해 FireMonkey에서 장치 지원을 더 쉽게 만들 수 있습니다. 새 장치에 Quartz와 같은 2차원 그래픽용 라이브러리만 있는 경우 FireMonkey에서 이러한 장치를 지원할 수 있지만 이는 약 몇 ​​달이 걸립니다. 그러나 플랫폼에 따라 많은 것이 달라집니다. 모든 플랫폼이 모든 기능을 지원하는 것은 아닙니다. 예를 들어 iOS에는 메뉴와 대화 상자가 없으며 해당 애플리케이션의 형태에 해당 구성 요소를 배치할 수 없습니다.

KP:파트너와의 협력 정책에 변경된 사항이 있나요? 귀하의 제품 사용자 점유율을 높이기 위해 어떤 조치를 취하고 있습니까? 러시아에서는 무슨 일이 벌어지고 있나요?

DI.:당사의 파트너 생태계는 광범위합니다. 당사 제품에는 없는 도구 및 구성 요소를 생산하는 수백 개의 제조업체가 있으며 당사는 기술 파트너십 프로그램을 보유하고 있습니다. 따라서 개발자는 다양한 구성 요소, 기술 및 도구를 사용할 수 있습니다. 그리고 그들이 고객을 위해 만드는 솔루션은 우리 제품만 사용하는 것보다 더 좋습니다. 판매를 위해 당사는 여러 국가, 리셀러 및 유통업체에 사무실을 두고 있습니다.

K.R.:우리에게 중요한 것은 파트너의 수가 아니라 각 파트너의 업무 ​​품질입니다. 현재로서는 파트너 풀이 열려 있지만 기존 파트너와 긴밀하게 협력하는 데 중점을 두고 싶습니다. 우리는 많은 파트너를 보유하고 있으며 기술적인 측면에서 그들을 도와야 합니다. 우리는 개발자와 협력하며 그들은 자신이 원하는 것이 무엇인지, 시장에 무엇이 있는지 알고 있으며 파트너의 역량이 이에 부합해야 합니다.

우리는 비즈니스 라인으로서 Embarcadero에 진지하게 투자한 비즈니스 파트너를 보유하고 있습니다. 그들은 훈련된 전문가, 제품 마케팅, 이 라인을 담당하는 헌신적인 직원, 제품, 가격 목록, 마케팅에 대해 어떤 일이 일어나고 있는지 모니터링하고 있습니다. 당연히 그들은 때때로 우리 제품을 판매하는 회사보다 우리 제품 판매 측면에서 더 성공적입니다.

KP: David, Kirill님, 흥미로운 인터뷰에 응해 주셔서 대단히 감사합니다. 우리 출판물과 독자를 대신하여 귀하의 회사가 개발자에게 꼭 필요한 놀라운 도구를 만드는 데 더 큰 성공을 거두기를 바랍니다!

Natalia Elmanova가 묻는 질문

파이어몽키는 "뉴 델파이"의 핵심 기술입니다. 이 근본적으로 새로운 라이브러리의 목표, 기능 및 기술적 측면에 대해 알려주십시오. 시간이 지나 돌이켜보면, 초인기 VCL의 추가 개발을 거부한 것이 얼마나 어렵고 정당한 일이었나요?

이는 개발자를 급격하게 재교육할 필요 없이 단일 소스 코드 기반을 기반으로 단일 환경에서 멀티 플랫폼 개발이라는 특정 목표를 달성하기 위한 Delphi 기술 개발의 주요 방향으로 선택되었습니다. 이제 고전적이고 매우 인기 있는 VCL의 프레임워크 내에서는 이것이 불가능했습니다. WinAPI와의 연결이 "유전적 수준에서" 너무 가까웠기 때문입니다.

VCL 구성 요소에는 인터페이스 측면의 기능 수준과 이를 표시하는 메커니즘 사이에 "추상" 계층이 없었습니다. 기능적 수준— 컨트롤로서 어떻게 작동하는지, 어떤 이벤트에 반응하는지, 어떤 종류의 사용자 상호 작용을 제공하는지. 표시하다— 래스터 객체와 벡터 프리미티브로 형성된 특정 이미지로 플랫폼 지향 시각화 방법을 호출합니다. 파이어몽키는 처음에 컨트롤을 "행동"과 "시각적"이라는 두 가지 구성 요소로 엄격하게 나누는 원칙을 구현했습니다.


Vsevolod Leonov, Embarcadero Technologies

첫 번째는 일반적으로 VCL의 기본이 아니라 객체 지향 프로그래밍의 본질을 반복합니다. 구성 요소는 클래스입니다. 구성 요소 클래스는 제품군과 모듈을 구별할 수 있는 계층 구조를 형성합니다. 구성 요소의 클래스는 렌더링 방법과 느슨하게 관련되어 있습니다.

시각적인 "그림"은 동적으로 형성되며 구성 요소 클래스에 엄격하게 작성되지 않습니다. FireMonkey의 이미지 또는 "스타일"은 애플리케이션이 시작될 때 구성 요소에 로드됩니다. 우리는 구성 요소에 대한 일종의 기능적 프레임을 가지고 있으며 "스킨"이나 "클래딩"을 변경할 수 있습니다. 그런데 왜 그럴까요? 이는 FireMonkey 애플리케이션이 Windows 7, Windows 8, Mac OS, iOS 및 가까운 미래에는 Android 등 모든 플랫폼에서 진정성 있게 보이도록 하기 위한 것입니다. 이는 VCL의 전통적인 모놀리식 클래스 구조가 제공할 수 없는 것입니다.

여기서는 기술적 접근 방식이 특별한 역할을 합니다. 원칙적으로 VCL 라이브러리를 가져와 WinAPI 및 기타 가능한 모든 플랫폼 호출로 "채울" 수 있습니다. 이 작업은 여전히 ​​매우 제한된 구성 요소 하위 집합에서 수행될 수 있지만 VCL에는 수백 개의 구성 요소가 포함되어 있으므로 이 접근 방식은 단순히 VCL을 "종료"할 수 있습니다. VCL을 건드리지 않고 새로운 플랫폼인 FireMonkey에서 새로운 기능을 개발하기로 결정했습니다. 이 기술특정 플랫폼에 대한 프로젝트를 조립할 때 Delphi IDE는 필요한 컴파일러를 연결하고 인터페이스 구성 요소는 플랫폼 스타일을 수신합니다.

사용자의 경우 이는 마우스 클릭 한 번과 동일한 소스 코드이지만, 델파이의 경우 이러한 다중 플랫폼 라이브러리를 만드는 것은 개발자의 수년 간의 노력입니다.

FireMonkey가 별도의 새로운 플랫폼으로 도입될 것이 분명해졌을 때 올바른 공존 전략을 선택해야 했습니다. Embarcadero는 어떤 방식으로든 VCL 사용자에게 부정적인 영향을 미치고 싶지 않았습니다. 따라서 우리는 다음과 같은 계획을 선택했습니다. VCL은 이념적으로나 구조적으로 안정적인 상태를 유지하여 가능한 최고의 호환성을 보장함으로써 프로젝트를 최신 버전으로 더 쉽게 마이그레이션할 수 있도록 합니다. FireMonkey의 개발은 VCL에 관계없이 자연스럽고 병렬적인 경로를 따릅니다.

이 솔루션의 약점은 동일한 프로젝트 내에서 VCL에서 FireMonkey로 마이그레이션하는 데 다소 문제가 있다는 것입니다. 그러나 새로운 프로젝트의 경우 개발자는 결과 애플리케이션의 다중 플랫폼 특성을 보장하기 위해 FireMonkey를 선택할 수 있습니다. iOS를 지원하는 XE4 출시 이후, 우리는 이미 Delphi의 밝은 경쟁 우위에 대해 이야기할 수 있습니다. 모바일 개발계획된 Android 지원 구현 후 증가할 예정인 기업 환경에서.

따라서 VCL 개발 자체에 대한 명백한 "거부"는 없습니다. 새 버전에서는 Delphi의 VCL 부분도 개발됩니다. 여기에는 64비트 지원, 시각적 구성 요소에 대한 스타일 도입, 유연한 동적 연결 또는 "바인딩"을 위한 메커니즘 구현, VCL 프로젝트의 데이터베이스 작업을 위한 FireDAC 라이브러리 포함이 포함됩니다. 다만 FireMonkey가 이룬 엄청난 질적 도약에 비하면 VCL의 발전은 다소 미흡해 보입니다. 그러나 VCL은 Delphi의 필수적인 부분이며 앞으로도 수년 동안 그대로 유지될 것입니다. 플랫폼의 진화와 OS 분야의 현황이 데스크탑 시스템모바일 장치는 확실히 FireMonkey의 미래가 될 것입니다.

인터뷰에서 우리는 이미 iOS 지원에 대해 논의했습니다. 예를 들어 Windows 8 및 WinRT, 64비트 시스템, MacOS 등과 같은 최신 RAD Studio XE4의 다른 최신 기술에 대한 지원에 대해 독자들에게 이야기해 보겠습니다. 혁신으로 인해 망가진 현대 프로그래머에게 제공할 수 있는 다른 것이 무엇인지 나열할 수 있습니까?

아마도 현대 프로그래머는 혁신에 의해 "버릇 없게"되지 않습니다. 을 위한 주요 프로젝트모든 "혁신"은 종종 엄청난 양의 작업을 초래합니다.

예를 들어, 모두가 오랫동안 기다렸고 많은 사람들이 즉시 코드를 번역하기 위해 달려갔습니다. 새로운 플랫폼. 그러나 매우 전문적인 팀조차도 이에 대한 준비가 되어 있지 않은 것으로 나타났습니다. 64비트 코드를 컴파일한다고 해서 작동한다는 의미는 아닙니다. 예를 들어, 4바이트 주소 크기를 가정한 명령을 사용하여 "젊은이의 죄"가 표면화되기 시작했습니다. 테스트 문화가 부족하고 이 프로세스를 짧은 시간 내에 구현하기 위한 기술적 준비가 부족합니다.

그리고 여기에서 소스 코드 줄 수로 측정되는 프로젝트가 클수록 더 신중하고 균형 잡힌 프로그래머는 인터페이스의 "버튼" 모양부터 "구문 설탕"에 이르기까지 다양한 종류의 혁신을 사용합니다. 컴파일러에서.

이러한 "문제가 있는" 성과 중 하나는 Windows 8의 출시였습니다. 개인적으로 PC 사용자이자 현대 IT 전문가로서 저는 Windows 8에 만족합니다. 그러나 새 OS에서 개발 사양을 갖춘 Windows 8을 실행하는 컴퓨터 배치를 로드로 보낸 개발자의 경우 이는 특정 어려움을 의미합니다.

우리는 이 OS의 새로운 인터페이스에 대한 개발 지원을 최대한 편안하고 고통스럽지 않게 제공하려고 노력했습니다. 따라서 VCL과 FireMonkey 모두에 특별한 스타일이 도입되었으며, 프로그래머는 애플리케이션 인터페이스를 다시 구축하거나 Windows 8용 "기본" 애플리케이션과 구별할 수 없는 새로운 애플리케이션을 생성할 수 있습니다. 모습. 물론 WinRT를 통해 Windows 8에 대한 "기본" 지원이 필요합니다. 그러나 이는 목표의 우선순위에 따라 영향을 받습니다. 현대적인 상황. 가까운 시일 내에 Mac OS, iOS, Android에서는 아직 WinRT에 대한 완전한 지원에 대해 이야기할 수 없습니다.

물론 Embarcadero의 전략적 목표는 멀티 플랫폼입니다. RAD Studio XE4의 출시는 주로 iOS 지원으로 인해 핵심이었습니다. VCL을 사용하는 기존 프로그래머는 몇 시간 안에 iOS용 개발을 시작할 수 있습니다. 심지어 단순하다 모바일 앱기존 인프라 내에서 운영되는 강력한 프로젝트로 즉시 전환될 수 있습니다. 쉽다고 생각하지 마세요 새로운 컴파일러파이어몽키(FireMonkey)와 새로운 스타일 iOS 인터페이스 준수를 보장합니다.

여기에는 새로운 비주얼 디자이너, 다양한 폼 팩터에 대한 내장 지원, 새로운 FireDAC를 포함한 데이터 액세스 라이브러리, 기업 데이터와의 유연하고 동적인 연결을 위한 LiveBindings 기술이 포함됩니다. 이러한 모든 혁신은 Windows, Mac OS 및 iOS에서 동시에 제공됩니다. 운영 체제 Mac OS는 그다지 빠르게 발전하지 않기 때문에 Windows 7에서 Windows 8로 전환하는 등의 문제는 없습니다. 그런데 그들이 나타났어요 레티나 디스플레이, 이는 특별한 주의가 필요했습니다. 이제 Delphi XE4에서 생성된 모든 MacOS 애플리케이션에는 "일반"과 "고화질"이라는 두 가지 스타일이 자동으로 포함됩니다.

저것. 동일한 애플리케이션은 어느 기기에서나 동일한 고품질 "네이티브" 인터페이스를 가질 수 있습니다. 데스크톱 컴퓨터애플에서.

Embarcadero는 새로운 혁신적인 릴리스를 통해 개발자를 "놀라게" 하거나 "놀라게" 하거나 심지어 "즐거움"을 주기를 원하지 않습니다. 오히려 IT 영역은 이미 새로운 장치, 새로운 플랫폼, 새로운 사용자, 새로운 요구 사항, 새로운 상호 작용 시나리오 등 다양한 놀라움으로 가득 차 있습니다. 여기에 새로운 소프트웨어 개발 기술을 추가하면 프로그래머는 새로운 시스템과 기존 시스템을 만들 시간이 없습니다. 그들이 할 일은 한 환경에서 다른 환경으로, 기존 라이브러리에서 새 라이브러리로, 한 언어에서 다른 환경으로 마이그레이션하는 것뿐입니다.

그러나 우리는 새로운 모든 것을 거부한다고 공언하지는 않습니다. 우리는 새로운 플랫폼과 장치가 등장할 때 코드, 인터페이스, 프로젝트, 전문 기술까지 모든 것의 연속성을 보장하고 싶습니다. 우리는 개발 도구에 대한 건전한 보수주의를 통해 새로운 플랫폼에 대한 건전하지 못한 보수주의에 맞서 싸우고 있다고 말할 수 있습니다. Embarcadero의 이국적인 제품, 비표준 프로그래밍 언어 또는 이상한 개발 도구를 기대하지 마십시오.

우리와 함께라면 항상 시각적 개발, 클래식 언어, "네이티브" 코드를 찾을 수 있으며, 입증된 동일한 클래식 방식으로 생성된 애플리케이션의 대상 플랫폼을 새로운 것으로 만들 수 있습니다.




맨 위