단순한 것에서 복잡한 것에 이르기까지 Firemonkey. Delphi, FireMonkey, All-Access 및 기타 즐거운 놀라움

이 블로그의 맥락에서 이 프로젝트는 FireMonkey에서 구현되고 이 플랫폼의 기능에 대한 놀라운 데모이기 때문에 주로 흥미롭습니다. 그래서 바로 지난주에 제품의 공개 베타가 출시되었습니다. 따라서 블로그 독자는 정말 복잡한 파이어몽키부록.

프로그램에 대한 몇 마디. 우선 Sphere의 현재 버전이 약간 다른 위치에 있다는 점에 유의해야 합니다. 예, 가끔 발생합니다...

새로운 스피어라이브이것은 또 다른 메신저가 아닙니다. 먼저 교육과정을 효과적으로 정리할 수 있는 도구입니다. 원격 강의, 개인 상담, 개인 레슨 및 기타 유사한 이벤트를 허용합니다. 동시에 작업에 필요한 거의 모든 것이 갖추어져 있습니다. 고유한 파일 전송 시스템으로 시작하여 강력한 청구 하위 시스템으로 끝납니다.

이 단계에서 제품 사용 가격은 상당히 민주적입니다. 제한된 수의 청취자와 소량의 리소스를 조건으로 제품을 무료로 사용할 수 있습니다.

당연히 Sphere는 주요 이점을 사용합니다. 파이어몽키- 크로스 플랫폼. 이제 응용 프로그램은 Windows 및 MacOS 버전에서 사용할 수 있습니다. 안드로이드 버전나날이 기대됩니다.

그럼에도 불구하고 저에게 SphereLive는 무엇보다도 모든 범위의 독창적인 솔루션을 갖춘 혁신적인 제품으로서 흥미롭습니다. 가끔은 "...와우, 어떻게 그런 짓을 했어?" 수준으로. 그건 그렇고, Sphere의 개발자 중 한 명이 FireMonkey 포럼의 토론에 적극적으로 참여합니다. 이것은 그 자체로 응용 프로그램을 다운로드하고 작성자와 직접 기술 문제를 논의해야 하는 이유가 될 수 있습니다. 나를 믿으십시오. 볼 것이 있고 배울 것이 있습니다.

TListView모바일 애플리케이션 인터페이스를 구축하기 위한 핵심 구성요소 중 하나입니다. 파이어몽키. 이 구성 요소는 사용하기가 가장 쉽지 않고 종종 상당한 양의 코드를 포함하지만 개발자에게 상당한 작업 자유를 제공합니다. 물론 응용 프로그램에서도 사용할 수 있습니다. TListBox모든 것이 훨씬 쉬운 곳. 하지만 TListBox, 고정된 수의 레코드를 표시하는 데 적합하고 데이터 소스의 데이터를 표시하려면 반드시 사용해야 합니다. TListView.

TListView와 TListBox의 주요 차이점은 다음과 같습니다.

  1. TListBox 항목- 제어, TListView 항목- 아니요
  2. 입력 TListBox 항목부모를 사용하여 모든 컨트롤을 추가할 수 있습니다. 입력 TListViewItem- 아니요.
  3. TListViewItem디스플레이 데이터만 저장
  4. TListViewItem자신이 메소드를 통해 저장된 데이터의 렌더링을 수행합니다. 세우다
  5. TListVIewItem의 실제 수동 렌더링으로 인해 속도가 향상되고 메모리 사용량이 줄어듭니다(실제 데이터만 저장).
  6. 나만의 만들기 TListView 항목, 고유한 항목 클래스를 만들고 필요한 데이터(예: 시간)를 구현하고 시간 편집, 등록 등을 위한 내부 편집기를 만들어야 합니다.

그 자체로 성능을 개선하고 메모리 소비를 줄인다는 사실은 사용에 찬성하는 강력한 주장입니다. TListView. 그러나 다른 것도 있습니다.

많은 기계적 인조 인간응용 프로그램에서 다음과 같은 목록 구현을 보았습니다. 목록 항목(항목, 선택한 용어를 고수하면 항목)을 클릭하면 특정 작업이 수행됩니다. 일반적으로 데이터를 편집하기 위해 새 양식이 호출됩니다. 그러나 (긴 탭)을 길게 누르면 완전히 다른 동작이 수행됩니다. 그리고 이러한 이벤트는 교차하지 않습니다. 즉, Android 애플리케이션은 "길게 누르기"와 "보통" 누르기를 명확하게 구분할 수 있습니다. 또한 목록을 스크롤할 때 이러한 이벤트가 트리거되지 않습니다. 좋은 예는 Yandex Mail의 편지 목록입니다.

먼저 지난 연휴에 블로그 독자 여러분께 축하의 인사를 전하고 새해에도 좋은 일만 가득하시길 바랍니다.

이해할 수 있는 사정으로 나는 전통적인 새해 보고서를 작성하지 않았고, 한 해의 계획도 세우지 않았습니다. 그럼에도 불구하고 삶은 멈추지 않고 일을 하고 있으며 델파이 세계에서 어떤 사건들이 일어나고 있다. 나는 가까운 장래에 크리스마스 휴가 동안 놓친 "델파이 세계의 뉴스"를 선별하여 출판할 것을 약속합니다. 그동안 제가 구입한 새 기기에 대해 말씀드리겠습니다.

사양은 공식 웹사이트에서 확인할 수 있습니다. 그리고 주관적인 느낌이 아주 좋습니다. 주목할만한 것은 장치가 말 그대로 제조업체의 독점 소프트웨어로 가득 차 있다는 사실입니다. 예, 판매자로부터 인상적인 소프트웨어 세트를 선물로 받았습니다. 작동시 스마트 폰은 충분히 빠르며 비용 (약 $ 200)을 완전히 정당화합니다. 그건 그렇고, 나는 2 년 전에 거의 같은 돈으로 이전 GSmart 1362 전화를 샀습니다. 하지만 아마 짐작하셨겠지만 저에게 가장 큰 관심은 파이어몽키응용 프로그램.

타이머에 대한 이야기를 계속하기 전에 - 두 가지 뉴스.

먼저 첫 번째 XE7 업데이트가 출시되었습니다. 전통적으로 등록된 사용자가 사용할 수 있습니다. 수정된 버그 목록을 찾을 수 있습니다. 업데이트된 환경에서 애플리케이션이 어떻게 작동하는지 확인하고 싶었습니다. 실은 실험의 여지가 남아 있지만 수정을 가할 필요는 없었다.

두 번째 소식입니다. 올해 말까지 연장된 Embarcadero 특별 제안:

글쎄, 이제 게시물의 주제로 직접 이동합니다. 원칙적으로 우리에게 남은 것은 이미 생성된 Android용 애플리케이션을 실행하는 것뿐입니다. 이를 위해 이전 게시물에서 작성한 내용을 사용합니다. 즉, 새로운 것. 이 응용 프로그램을 디버깅했습니다. 넥서스 7, 그에 따라 Android 7″ 태블릿의 보기가 추가되었습니다. 디자인을 약간만 "조정"해야 했습니다.

아마도 게으른 사람들만이 타이머를 쓰지 않았을 것입니다. 그리고 모바일 플랫폼에 대한 개발 지원의 맥락에서 델파이에서 타이머를 작성하는 작업은 일반적으로 컬트 작업으로 간주될 수 있습니다. 그래서 나는 왜 개발의 예가 아닌가 생각했습니다. 파이어몽키응용 프로그램은 타이머를 정확히 구문 분석하지 않습니다. 물론 안드로이드에서요. 물론 이것은 특별히 어렵지는 않지만 여전히 고유한 뉘앙스가 있는 작업에 대한 나의 견해일 것입니다. 의견이나 제안이 있을 수 있습니다. 의견에서 토론하는 것이 좋습니다. 나는 글쓰기 전문가가 결코 아니다. 모바일 애플리케이션따라서 귀하의 의견은 저에게 가치가 있습니다.

우리는 이 용어의 영어 의미에서 정확히 타이머를 개발할 것입니다. 즉, 화면에 "시작", "일시 중지", "중지" 및 "취소"라는 다이얼과 네 개의 버튼이 표시됩니다. 카운트다운이 앞으로 진행됩니다(즉, 시간이 증가함). 시간을 설정하고 카운트다운을 하는 옵션을 영어로 스톱워치라고 하는데 나중에 구현해봐야겠네요. 우리가 다룰 응용 프로그램은 기능면에서 스톱워치에 더 가깝습니다.

Delphi XE7을 사용하면 이제 Win32용 실제 응용 프로그램을 만들고 디버그한 다음 필요한 모바일 장치에 대한 양식 보기를 추가하고 약간 수정한 후 작동하는 모바일을 얻을 수 있기 때문에 개발 프로세스를 크게 단순화할 수 있습니다. 애플리케이션. 사실이라고 하기에는 너무 좋은 것 같나요? 아마도. 그러나 나는 또한 과제를 깨닫고 이 말씀을 확인하고 싶습니다.

동료들에게 개인적인 대화에서 모바일 애플리케이션을 개발할 수 있는지 묻는 질문을 더 자주 받습니다. 파이어몽키아니면 생산 솔루션이 아니라 프로토타입입니까?

이제 나는 완전히 회의론자도 확신할 수 있다고 생각합니다.

내 가슴의 친구이자 동료인 Tagir Yumaguzin은 그가 오래전에 참여했던 프로젝트에 대해 나에게 말했습니다. 이제 이 프로젝트가 시험판 상태에 있을 때 이 설명이 Delphi 커뮤니티에 흥미로울 것이라고 결정했습니다. 본질적으로 이것은 FM으로 구현된 정말 큰 프로젝트입니다. 우리는 Sphere Live 프로젝트에 대해 이야기하고 있습니다. 해당 프로젝트에 대한 작은 기사가 최근 Habrahabr.ru에 게시되었습니다. 개발 부서의 책임자인 Alexey Glyzin은 내 블로그의 청중을 고려하여 프로젝트에 대해 더 자세히 설명하기로 동의했습니다.

A.B.– Alexey, 일반적으로 귀하의 프로젝트는 무엇입니까?

ㅏ.G.: – 아이디어는 한순간에 나타나지 않습니다. 'Sphere' 프로젝트 이전에 우리 팀은 스트리밍 오디오/비디오 기술이 구현된 프로젝트를 진행했습니다. 나중에 우리는 피드백을 포함하여 무제한의 사용자에게 멀티미디어 스트림을 전달할 수 있는 자체 소프트웨어를 만들었습니다. 하지만 청구 기능이 포함되어야 했습니다.
애플리케이션은 여러 요구 사항을 준수해야 했습니다. 첫째, 우리가 예측할 수 없는 양의 회의 또는 참가자에 대한 전송의 구성을 최대한 단순화했습니다. 둘째, 가장 중요한 것은 고객에게 우리의 애플리케이션으로 수익을 올릴 수 있는 기회를 제공하고 시스템의 복잡성, 목표를 달성하는 데 필요한 도구의 양을 줄이는 것입니다. 과정, 웨비나 또는 상담을 쉽게 구성할 수 있습니다.

에 관한 작은 메모리 노치 파이어닥현재 버전에서 델파이 XE6. 그러나 먼저 다음과 관련된 질문에 대한 답변을 찾을 위치에 대한 몇 마디 파이어몽키. 러시아어를 사용하는 사용자는 여기에서 특권적인 위치에 있습니다.

RAD Studio XE5 World Tour의 일환으로 Kharkiv 이벤트를 준비하는 동안 작업하는 데 작은 문제가 발생했습니다. SQLite~을 통해 파이어닥. Windows 응용 프로그램에 채워진 데이터베이스가 응용 프로그램과 함께 이전되는 경우 기계적 인조 인간, 데이터베이스의 키릴 문자를 더 이상 읽을 수 없습니다(문자 대신 물음표가 표시됨). 그러나 모바일 장치에서 직접 데이터베이스를 채우면 러시아어 문자는 매우 올바르게 읽힙니다. 타사 응용 프로그램에 채워진 데이터베이스의 데이터 또는 델파이다른 데이터 액세스 구성 요소를 사용하는 응용 프로그램도 정상적으로 표시됩니다. 집회는 해결책을 찾지 못했고 나는 잘 알려진 우크라이나 축구 전문가의 말을 인용해야 했습니다. "우리가 알아낼 것입니다!"

후자와 달리 나는 설명 된 문제를 처리했습니다. 기본적으로 연결되면 SQLite입력 파이어닥 ANSI 문자열 형식이 사용됩니다.

유니코드를 강제 실행하면 모든 것이 제대로 작동합니다. 그러나 불쾌한 순간도 있습니다. 행의 형식을 변경한 후에는 모든 데이터 세트의 필드 목록을 다시 만들고 데이터 표시 및 입력을 담당하는 구성 요소를 다시 연결해야 합니다. 따라서 인코딩은 즉시 처리하는 것이 좋습니다.

이 미니 시리즈의 이전 부분에서는 데이터베이스, 구조 및 Delphi에서 연결하는 방법을 다루었습니다. 이 부분에서는 가장 간단한 경우부터 시작하여 테이블의 데이터를 표시하는 방법을 제안합니다.

간단한 테이블 데이터 편집기는 일반적으로 복잡한 응용 프로그램의 일부입니다. 표를 편집할 때는 보통 별도의 양식을 사용합니다. 제품 목록부터 시작하겠습니다. 먼저 테이블 데이터에 액세스하기 위해 DataSet을 생성해야 합니다. 우리의 경우 구성 요소를 사용하는 것이 가능합니다. TAD 테이블. DataModule에 넣고 속성 값을 지정합시다. 연결. 속성 편집기에서 테이블 이름우리가 테이블을 선택하는 테이블 목록이 나타납니다 제품. 모든 작업을 올바르게 수행했다면 속성을 할당할 수 있습니다. 활동적인진정한 가치. 구성 요소의 이름을 즉시 바꾸는 것이 좋습니다(예: ADTProduct). 그 후에는 일반적으로 DataSet에 대한 필드 집합을 만듭니다. 필드 편집기를 호출하고(구성 요소를 두 번 클릭) 컨텍스트 메뉴에서 모든 필드 추가 항목을 선택합니다.

모르시는 분들을 위해 이 수술의 요점을 설명하겠습니다. 여기에서 미리 정의된 DataSet 필드 집합을 만듭니다. 디자인 모드에서 수동으로 수행하지 않으면 원칙적으로 끔찍한 일이 발생하지 않습니다. 런타임 시 이 세트는 자동으로 생성됩니다. 하지만 여전히 수동으로 만드는 것을 선호합니다. 여기에는 몇 가지 이유가 있습니다. 첫째, 디자인 모드에서 추가(계산 또는 조회) 필드를 직접 생성할 수 있기 때문에 필드 집합을 관리하는 것이 더 편리합니다. 필드 자체의 속성을 변경할 수도 있습니다. 게다가, 우리는 TField 구성 요소의 이름으로 코드의 필드를 참조할 수 있는 기회를 얻습니다. 제 생각에 이는 코드 작성을 크게 단순화합니다.

VCL 애플리케이션의 경우와 마찬가지로 구성 요소를 데이터 세트에 연결합니다. TDataSource. 이 구성 요소는 데이터세트와 시각적 컨트롤 간의 링크를 제공합니다. 구성 요소의 DataSet 속성은 데이터 집합(ADTProduct)을 참조해야 합니다. 아래에서 DFM 파일의 일부를 제공합니다.

개체 ADTProduct: TADTable IndexFieldNames = "ID" 연결 = ADConnection UpdateOptions. UpdateTableName = "제품" TableName = "제품" 왼쪽 = 64 상단 = 192 개체 ADTProductID: TADAutoIncField FieldName = "ID" Origin = "ID" ProviderFlags = [pfInWhere, pfInKey] ReadOnly = True 최종 개체 ADTProductTitle: TStringField FieldName = "제목" Origin = "Title" Size = 50 end object dsProduct: TDataSource DataSet = ADTProduct Left = 120 Top = 192 end

한 가지 흥미로운 기능에 주목하십시오. DataModule 양식 파일은 일반 FireMonkey 양식과 같은 FMX 형식이 아니라 VCL과 같은 DFM 형식으로 저장됩니다.

다음 단계는 프로그램이 시작될 때 런타임에 호출해야 하는 데이터 세트를 여는 프로시저를 만드는 것입니다. 동일한 DataModule에서 생성해 보겠습니다. 절차 코드는 매우 간단합니다.

절차 TDM. ConnectToDB ; ADConnection을 시작합니다. 열려있는(); ADT 제품. 열려있는(); 끝 ;

프로시저 호출은 DataModule에 대한 OnCreate 이벤트 핸들러에 배치됩니다.

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

무엇을 고려해야 합니까?

FireMonkey 플랫폼이 3D 애플리케이션 개발을 위한 광범위한 도구를 제공한다는 사실에도 불구하고 게임 엔진으로 간주될 수는 없습니다. FireMonkey는 비즈니스 애플리케이션 개발을 위한 플랫폼으로 정확히 포지셔닝되었습니다.
이제 제품은 진화의 초기 단계에 있습니다. 그리고 파이어몽키의 많은 기능이 질적, 양적 변화를 겪고 있습니다.

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

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

무엇을 볼 것인가?

최신 버전의 델파이에는 제품의 기능과 작업 방법에 대한 비디오 자료가 그 어느 때보다 많이 있습니다. 공식, Embarcadero 및 독립 개발자 모두. YouTube에 FireMonkey에 대한 동영상이 많이 있으므로 검색을 사용하면 됩니다. 이 풍부한 자료 중에서 Marco Cantu - RAD in Action 랜딩 페이지에서 일련의 3개의 비디오를 선택하여 제 연구에 유용한 벡터를 제공할 것입니다.

불 원숭이 란 무엇입니까?


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

특징:

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

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

  • 양식에 구성 요소의 매우 진보된 상대적 배열(20가지 유형)의 존재;

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

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

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

  • FireUI 라이브 미리보기 - 실시간으로 실제 장치에 앱 보기를 표시합니다.

기회:

  • 각 플랫폼의 기본 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에서 새 프로젝트를 작성하는 것은 "안전"하고 유망합니다.

Delphi, C++Builder 및 JBuilder와 같은 세계적으로 유명한 도구와 Interbase DBMS를 만드는 책임이 있는 CodeGear 부서가 데이터베이스 설계 및 관리로 유명한 회사인 Embarcadero Technologies의 일부가 된 지 3년 이상이 지났습니다. tools. , 그리고 우리 잡지의 페이지에서 러시아 개발자들 사이에서 매우 인기 있는 도구 개발에서 기대할 수 있는 것에 대해 논의한 지 2년이 지났습니다. 우리는 Embarcadero Technologies의 개발자 관계 부사장 겸 수석 에반젤리스트인 David Intersimone과 러시아 Embarcadero Technologies 대표 사무소 책임자인 Kirill Rannev에게 질문했습니다. 가장 어린 독자를 위해 David와 Kirill이 ComputerPress에 제공한 첫 번째 인터뷰와는 거리가 멀다는 것을 알려드립니다. 우리의 협력은 20년 동안 계속되었습니다. 그리고 거의 같은 해 동안 우리는 Embarcadero 제품에 많은 관심을 기울인 데이터베이스 관리 도구에 대한 리뷰를 주기적으로 게시합니다.

컴퓨터프레스: David, 당신의 부서는 이제 3년 동안 Embarcadero의 일부였습니다. 2년 전, 당신은 목적과 정신이 당신과 가까운 회사의 일원이 되었다는 사실에 열광했습니다. 그동안 달라진 게 있나요? 당신과 당신의 동료들은 같은 열정을 느끼고 있습니까?

예, 여전히 열정적입니다. Embarcadero 회사의 일원이 된 후 일어난 주요 변화는 Delphi 개발에 많은 투자가 있었다는 것입니다. 개발 도구를 작업하는 직원의 수가 증가했고, 개발하거나 필요한 경우 획득할 수 있는 기술의 수도 증가했습니다.

모스크바에서 시연할 예정인 RAD Studio XE 2의 출시는 방대한 기능과 큰 금액 16비트 버전의 Windows용으로 생성된 Delphi의 첫 번째 버전 이후로 지원되는 플랫폼과 구성 요소 접근 방식과 컴파일을 네이티브 코드로 결합한 이전의 혁신적인 제품입니다. 이제 웹 개발 및 모바일 장치용 응용 프로그램 생성은 말할 것도 없고 Windows뿐만 아니라 Macintosh용 개발을 지원하며 이러한 다른 플랫폼용 응용 프로그램은 단일 코드를 가질 수 있습니다.

새로운 개발 플랫폼인 파이어몽키(FireMonkey)는 엠바카데로(Embarcadero)와 최근에 인수한 러시아 기업인 울란우데(Ulan-Ude), 벡터 그래픽, DirectX 및 OpenGL, 그래픽 효과 기술 및 델파이 구성 요소 PixelShader 2.0과 함께 GPU 사용. 우리는 1년 전에 회사 KSDev(ksdev.ru 참조)를 인수했고, 애플리케이션 사용자 인터페이스를 생성하기 위한 Delphi 및 C ++ Buider용 구성 요소로 FireMonkey 애플리케이션을 개발하기 위한 플랫폼을 포함하는 다중 플랫폼 개발 도구를 만들기 위해 협력하기 시작했습니다. 데이터베이스, 그래픽 프로세서를 사용한 그래픽 처리 및 운영 체제와의 통합.

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

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

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

KP:지난 2년 동안 두 회사의 도구를 통합하는 데 어떤 진전이 있었습니까? 이 분야에서 Embarcadero의 향후 계획은 무엇입니까?

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

에서 만든 iPhone 앱(iOS)
파이어몽키 플랫폼 사용

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

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

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

KP:현대 사용자는 더 이상 Windows 플랫폼 단독 사용자가 아닙니다. 우리는 신청 모바일 기기, 아이폰, 아이패드, 안드로이드 기기. 즉, 개발자는 교육에 대한 투자를 크게 늘리지 않고 다양한 플랫폼을 대상으로 시작해야 합니다. 즉, 범용 도구가 필요합니다. 분명히 플랫폼 제조업체에서 범용 도구의 출현을 기대하는 것은 비현실적이며 이 문제에서 우리는 독립적인 도구 제조업체에만 의존할 수 있습니다. Embarcadero를 어디에서 신뢰할 수 있습니까?

디.:플랫폼 지원 분야에서는 아직 할 일이 많습니다. 오늘 우리는 iPhone 및 iPad용 iOS 플랫폼에 대한 지원을 소개하고 Android, Windows 7 및 Blackberry 스마트폰에 대한 지원을 소개합니다. RAD Studio XE 2에서 우리는 iOS용 FireMonkey 플랫폼을 구축하는 것으로 시작했으며 나중에 FireMonkey를 다른 플랫폼으로 포팅할 것입니다.

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

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

Microsoft는 최근 Windows 8에 대한 세부 정보를 발표했으며, 이는 1년 안에 출시될 예정입니다. 우리는 VCL 라이브러리와 FireMonkey 플랫폼에서 이러한 혁신을 지원할 것입니다. 하지만 델파이는 윈도우 뿐만 아니라 매킨토시, 아이폰, 아이패드용으로 설계된 개발 도구입니다. 또한 PHP 제품을 개발하고 jQuery Mobile을 지원하며 iOS API를 사용하여 모바일 클라이언트 애플리케이션을 개발하고 마법사와 도구를 사용하여 클라이언트 측 JavaScript, HTML 및 Cascading Style Sheets를 생성하는 서버 측 PHP 애플리케이션을 만듭니다. 클라이언트가 PHP 서버와 통신하여 PHP 애플리케이션과 iPhone iOS 기본 클라이언트 애플리케이션을 패키징할 수 있습니다. 그리고 이는 차례로 데이터베이스 서버 및 웹 서비스와 통신하며 비즈니스에 필요한 모든 것을 제공합니다.

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

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

KP:파이어몽키 플랫폼에 대해 더 자세히 설명해 주시겠습니까?

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

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

데이터가 있는 회전하는 큐브를 포함하는 응용 프로그램,
가장자리에 배치

또는 처음부터 3D 모양을 만들고 카메라와 조명을 사용하여 사용자 인터페이스의 일부를 비추고 회전할 수 있습니다. 양식 디자이너는 이미 디자인 타임에 3D 사용자 인터페이스를 직접 지원하는 기본 제공 환경을 가지고 있습니다.

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

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

FireMonkey 프레임워크는 사용자 인터페이스 요소를 애니메이션화하기 위한 완전한 시스템과 함께 제공됩니다. 확실히 포괄적인 Pixar 스타일 애니메이션 시스템은 아니지만 비트맵 애니메이션, 사용자 인터페이스 요소의 초점 강조 표시, 벡터 그래픽 작업과 같은 효과를 적용할 수 있습니다. 개발자는 50개 이상의 시각 효과: 흐림, 흑백, 디졸브, 전환, 반사, 음영 - 현재 거의 모든 컴퓨터에 있는 최신 그래픽 프로세서에서 사용할 수 있는 모든 유형의 효과. 파이어몽키 플랫폼을 사용하여 구축된 애플리케이션은 그래픽을 표시하고 사용자 인터페이스를 만드는 모든 작업을 수행하는 GPU에 명령을 보냅니다. 동시에 중앙 프로세서는 계산과 운영 체제에 대한 액세스가 자유롭습니다. 개발자는 구성 요소를 올바르게 배치하기만 하면 됩니다.

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

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

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

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

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

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

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

또한 응용 프로그램을 만들 때 기성품 3D 모델을 로드하여 사용할 수 있습니다. 이러한 기능은 종종 비즈니스 및 엔지니어링 응용 프로그램 모두에서 필요합니다. 물류 애플리케이션을 만드는 클라이언트가 있습니다. 그들은 델파이로 구축된 정보 시스템과 그 안에 계획을 세우고 데이터 소스의 정보를 표시하는 애플리케이션을 가지고 있었습니다. 그들은 최근에 흥미로운 일을 했습니다. AutoCAD에서 완전 자동화된 3D 창고를 그렸고, 그들의 응용 프로그램을 통해 자동 로더가 창고를 이동하고 상품을 선반에 놓는 방법을 볼 수 있습니다. 그리고 해당 이미지에 소스의 데이터를 배치합니다.

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

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

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

KP:어떤 다른 형식이 추가될 예정입니까?

디.: 3DS(3D Studio MAX), SVG(일반적으로 이 형식은 2D 벡터 그래픽에 사용되지만 때로는 3D에도 사용됨), Google SketchUp을 추가할 예정입니다. 다른 형식도 지원할 수 있습니다.

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

디.:아니오, 그렇지 않습니다. 우리가 하는 일은 모델 파일을 읽는 것뿐입니다. 모델을 가져오지만 내보내지는 않습니다(물론 모델을 고유한 형식으로 저장하는 응용 프로그램을 작성할 수는 있지만). 우리는 3D 모델링 도구의 제조업체라고 주장하지 않습니다. 이를 위해 AutoCAD, 3D Studio Max, Maya 또는 기타 3D 모델링 도구를 사용하고 생성된 모델을 당사 응용 프로그램으로 가져올 수 있습니다.

KP:최신 하드웨어 플랫폼에서 파이어몽키로 구축된 애플리케이션의 성능은 어느 정도입니까?

디.:성능이 상당히 높습니다. 예를 들어, 세 개의 구체와 세 개의 조명이 있는 3D 모양은 MacBook Pro에서 초당 100프레임으로 렌더링될 수 있습니다. 그리고 그것은 600에 도달할 수 있습니다. 그것은 우리가 정확히 무엇을 하고 있는지에 달려 있습니다. 다시 말하지만, 모든 것은 GPU의 성능에 달려 있습니다.

KP:이것은 FireMonkey의 도움으로 현대적인 요구 사항을 충족하는 게임을 만들 수 있다는 것을 의미합니까?

디.:우리는 개발 도구를 게임용 도구로 포지셔닝하지 않습니다. 그러나 사용 고성능최신 그래픽 프로세서를 사용하면 FireMonkey로 게임을 만들 수도 있습니다. 결국 Direct3D 또는 OpenGL을 사용하여 게임을 만들 수 있습니다.

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

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

Fast Reports, Inc.의 이사인 Mikhail Filippenko는

K.R.:우리는 이미 FireMonkey 기술이 러시아에 뿌리를 두고 있다고 말했습니다. 그 기초는 우리나라에서 만들어졌고 기술 자체와 개발자는 Embarcadero에 병합되었습니다. 일반적으로 RAD Studio 및 Delphi에서 러시아어 구성 요소의 성장을 보는 것은 기쁘게 생각합니다. 이것은 상트페테르부르크에 있는 우리 개발 센터의 활동이며 독립 러시아 개발자의 기여입니다. 예를 들어, Rad Studio XE2에는 전 세계적으로 알려져 있고 우리나라에서 매우 인기 있는 FastReport 보고서 생성기가 포함되어 있습니다. 그는 로스토프나도누 출신입니다.

KP:컴파일러에 대해 이야기하고 싶습니다. iOS 앱을 만드는 데 사용되는 컴파일러는 무엇입니까?

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

KP:그리고 지난 2년 동안 컴파일러 개발 분야에서 어떤 일이 있었습니까?

디.: Windows 및 Mac OS용 32비트 및 64비트 Delphi 컴파일러가 있습니다. 그리고 우리는 새로운 세대의 델파이 및 C++ 컴파일러를 개발하고 있습니다. 이에 대한 작업은 여전히 ​​진행 중이지만 완료되면 ARM 프로세서, Android 플랫폼, Linux 등을 위한 Delphi 컴파일러를 갖게 될 것입니다. 그리고 우리는 ISO에서 방금 채택한 최신 C++ 언어 표준과 호환되는 Windows 및 기타 플랫폼용 64비트 C++ 컴파일러를 갖게 될 것입니다.

KP:오늘날 Embarcadero 개발 도구의 클라우드 컴퓨팅 지원은 어떻게 됩니까?

디.: RAD Studio XE 2에서는 Platform Assistant를 사용하여 Microsoft Azure 또는 Amazon EC2 클라우드로의 애플리케이션 마이그레이션을 지원합니다. 그리고 테이블, 바이너리 데이터, 메시지 대기열을 저장하기 위한 Azure 및 Amazon S3용 Cloud Storage용 서버 구성 요소가 있습니다. 이전 버전의 RAD Studio XE에서는 Amazon EC2에 애플리케이션 배포도 지원했지만 스토리지는 지원하지 않았습니다.

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

KP: 2년 전 당신은 새로운 All-Access 솔루션에 대해 이야기했습니다. 얼마나 수요가 많았습니까? 시스템 통합자와 개발자에게 어떤 이점이 있습니까?

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

K.R.:시장은 매우 다양하고 사용자도 너무 다르기 때문에 하나의 솔루션으로 모든 요구 사항을 충족할 수 없습니다. 따라서 우리는 다양한 "패키징" 솔루션을 위해 노력합니다. 라이선스, 라이선스 관리 및 제품 설치를 통합하기 위해 많은 작업을 수행했습니다. 이 솔루션 라인에는 Embarcadero 제품뿐만 아니라 회사 내부 개발을 포함한 다른 모든 제품에 대한 라이선스 및 액세스 관리 도구가 포함됩니다.

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

따라서 All-Access는 대가족의 머리입니다. 다른 세트제품.

KP:비밀이 아니라면 러시아에서 누가 올 액세스를 사용합니까?

K.R.:델파이 기반 올액세스를 구매한 고객이 있습니다. 그들 중 많은 사람들이 SQL Server 및 Oracle을 사용하여 복잡한 클라이언트-서버 시스템을 구축하고 있으며 우리의 크로스 플랫폼 데이터베이스 툴킷을 즉시 좋아했습니다. 첫 번째 버전부터 Delphi와 함께 작업하고 1년 전에 Delphi에서 All-Access로 이전한 클라이언트 회사가 있습니다. 이 회사의 모든 개발자가 사용할 수 있는 두 가지 도구는 Delphi와 DBArtisan입니다. 그리고 데이터베이스 쪽에서 올액세스를 찾아온 고객도 있습니다. 그들의 주요 업무는 데이터베이스를 관리하는 것이지만 때때로 응용 프로그램을 개발하기도 합니다. All-Access를 사용하는 클라이언트에는 미디어 회사, 기계 제조업체 및 기타 산업이 포함됩니다.

이와는 별도로 소규모 회사에 대해 이야기하고 싶습니다. 종종 소규모 팀에서 개발자가 모든 작업을 수행하며 그러한 회사는 때때로 한두 명의 개발자를 위해 대규모 All-Access 식품 패키지를 구입합니다. 예를 들어 대규모 팀에서는 개발자가 데이터베이스 관리자의 역할을 수행하는 것을 권장하지 않으므로 소규모 식품 패키지가 일반적으로 인기가 있으며 소규모 회사에서는 이러한 업무 조합이 상당히 수용 가능합니다.

Delphi Architect는 모델링 및 프로그래밍 도구를 포함하는 대대적인 마케팅 제품입니다. 그러나 판매된 사본의 수는 Delphi Enterprise 버전보다 적지만 대량입니다. 모든 국가가 위기에서 살아남았다는 사실에도 불구하고 2010년에 우리는 매출 측면에서 최고의 국가였습니다. 이러한 성장은 경제적인 요인이 아니라 2009년 말에 출시된 RAD Studio XE 버전의 수요가 많았기 때문입니다. 그리고 우리는 판매의 추가 성장을 기대합니다.

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

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

KP: Embarcadero 커뮤니티의 현재 상태를 어떻게 평가합니까?

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

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

KP:회사에서 새 장치를 만들고 이에 대한 FireMonkey 지원을 원하면 가능합니까?

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

모든 최신 기기에는 일반적으로 그래픽 사용자 인터페이스(대부분 듀얼 코어 프로세서와 GPU가 있음)와 개발자용 표준 SDK가 있습니다. 이 모든 것이 FireMonkey에서 장치 지원 생성을 단순화합니다. 새 장치에 Quartz와 같은 2D 그래픽용 라이브러리만 있는 경우 FireMonkey에서 이러한 장치를 지원할 수 있지만 여기에는 약 몇 ​​개월이 소요됩니다. 그러나 많은 것은 플랫폼에 따라 다릅니다. 모든 플랫폼이 모든 기능을 지원하는 것은 아닙니다. 예를 들어 iOS에는 메뉴와 대화 상자가 없으며 해당 구성 요소를 이러한 응용 프로그램의 형태에 배치할 수 없습니다.

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

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

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

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

KP: David, Kirill, 흥미로운 인터뷰에 감사드립니다. 우리 출판물과 독자들을 대신하여 귀사가 개발자에게 꼭 필요한 놀라운 도구를 만드는 데 계속 성공하기를 바랍니다!

Natalia Elmanova가 질문을 했습니다

트리플이펙트시각적 개체의 질감에 파도의 잔물결을 중첩하는 효과를 만들기 위한 클래스입니다.

리플의 중심은 속성에 지정됩니다. 센터. 리플의 다른 측면은 속성을 사용하여 사용자 정의할 수 있습니다. 진폭(진폭), 종횡비, 그리고 단계(단계). 잔물결의 수는 속성에 의해 결정됩니다. 빈도(빈도).

다음 표는 영향 결과를 보여줍니다 트리플이펙트PNG 이미지개체를 사용하여 양식에 배치합니다. 잔물결의 중심은 이미지의 중앙에 있습니다. 기타 속성 트리플이펙트기본값과 함께 사용됩니다( 진폭 = 0,1, 종횡비 = 1,5, 빈도 = 70, 단계 = 0).

이 튜토리얼에서는 파이어몽키 애플리케이션에서 몇 가지 기본 이미지 효과를 사용할 것입니다.

1단계: 이미지에 효과를 적용합니다.

파이어몽키에서 이미지 효과를 이미지에 적용하는 것은 간단한 과정입니다. 이미지를 포함할 수 있는 구성 요소를 만든 다음 이미지 효과 중 하나를 적용하기만 하면 됩니다.

    새 파이어몽키 애플리케이션 생성( 파일 > 새로 만들기 > 파이어몽키 데스크탑 애플리케이션 > HD 파이어몽키 애플리케이션).

    구성 요소를 양식에 배치합니다.

도구 모음에서 구성 요소를 선택합니다.

생성자의 양식에 TImage를 배치합니다.

    컴포넌트가 폼 디자이너의 중앙에 배치되지 않은 것을 볼 수 있습니다. 그림과 같이 이미지 영역의 크기는 최대한 커야 합니다. 이렇게 하려면 디자이너 양식에서 구성 요소를 선택한 다음 속성을 변경합니다. 맞추다입력 알클라이언트구성 요소의 크기가 양식 영역의 클라이언트 크기와 같도록 Object Inspector에서

    효과를 적용할 이미지를 선택합니다. 구성 요소는 속성에 그림을 저장합니다. 비트맵. 속성 선택 비트맵개체 검사기에서 사용 편집하다...이미지를 선택합니다.

  1. 이제 이미지의 효과를 선택할 수 있습니다. 도구 팔레트에서 트리플이펙트.

지금 파급 효과창에 표시 구조.

효과를 적용하려면 다른 구성 요소의 자식으로 정의해야 합니다. 이 경우, 리플 이펙트1어린이로 정의해야 합니다. 이미지1. 이렇게 하려면 드래그 리플 이펙트1그리고 그것을 놓으십시오 이미지1구조 패널에서.

  1. 이제 당신은 그것을 볼 수 있습니다 파급 효과이미 Form Designer에서 작업 중입니다.

  1. 속성 변경 빈도20 .

2단계: RippleEffect에 애니메이션 효과를 적용합니다.

    가장 밝은 부분 파급 효과패널에 구조.

    속성 강조 표시 단계 Object Inspector에서 명령을 실행하십시오. 새 TFloatAnimation 만들기드롭다운 메뉴에서.

확인 플로트애니메이션1자식 요소로 정의 리플 이펙트1.

    속성 변경 플로트애니메이션1아래:

마지막으로 이벤트 프로시저를 추가해 보겠습니다. OnMouseMove에게 .

공유하다