C++/Qt와 Adobe AIR




flex (5)

우리 제품에 대한 플랫폼을 선택해야합니다. Qt Framework와 Adobe의 AIR 사이를 결정해야합니다. 나는 지난 2 년간 일한 것처럼 Qt에 정통합니다. 나는 어도비의 사이트를 보았지만 플렉스, 플래시, HTML / ActionScript로 코딩하는 능력에 관한 모든 정보는 압도적이며 혼란 스럽다. Adobe 에코 시스템에 대한 다음 내용을 이해할 수 없습니다.

Adobe AIR에 대해 다음과 같은 질문이 있습니다.

  1. 내 애플리케이션을 코딩 할 때 어떤 언어를 사용해야합니까? (UI의 외양을 정의하는 것뿐만 아니라)
    Qt에서와 마찬가지로 저는 C ++을 사용합니다. 그것은 액션 스크립트인가?

  2. 우리는 AIR이 앱용 UI를 만들기위한 것이라고 말할 수 있습니까?

  3. AIR와 함께 유틸리티 클래스의 문서는 어디에 있습니까?
    예 : Qt에 대한 http://qt-project.org/doc/

  4. Qt에는 사용할 수있는 거대한 미리 만들어진 위젯이 함께 제공됩니다. Adobe는 이러한 위젯 세트를 제공합니까? 그렇다면 어디에서 URL로 볼 수 있습니까?

  5. 나는 플렉스 SDK가 오픈 소스라는 것을 알고있다. 상업용 앱을 만들어서 배송 할 수 있습니까? Flex SDK는 모든 것을 제공합니까 (컴파일러, 유틸리티 클래스 / 위젯)

  6. 라이선스 비용면에서 AIR 비용은 얼마입니까?

  7. AIR에서 QT의 QGraphicsView와 동일한 항목이 있습니까?


Flex는 오픈 소스이며 무료로 SDK를 다운로드 할 수 있습니다. 라이센스 비용은 없습니다. ( FAQ 참조)

그들은 '플렉스 빌더 (flex builder)'를 출시한다.이 플렉스 빌더는 내가 생각하기에 사용자 정의 Eclipse이고, 비용이 들지만, 그것 없이는 완벽하게 작업 할 수있다.

docs는 adobe의 livedoc 페이지에서 찾을 수 있습니다. (어떤 사람들에게는 어도비를 싫어하는 데 충분한 이유가있다.))

QT에 정통한 사람이라면 왜 다른 것을 고려하고 있습니까? AIR가 QT에 비해 어떤 이점을 제공 할 것으로 기대하십니까?

나는 QT와 플렉스 모두에 대해 약간의 경험이 있지만, 한 가지와 다른 것을 비교할만큼 충분히 중요하지는 않다. QT / C ++가 Flex / ActionScript보다 훨씬 성숙하다는 것을 알고 있습니다.

QT를 이미 알고 있다면, 나는 새로운 프레임 워크 (그리고 프로그래밍 언어)를 배울 시간이 정직해질만큼 충분한 시간을 가질 것이라고 생각하지 않는다.


많은 네이티브 라이브러리에 액세스해야하는 경우 QT 환경에 있어야합니다. AIR은 단일 스레드이며 Flash Player (원래 프레임 기반 애니메이션 용으로 설계된 것)에서 실행됩니다. 그러나 빌드중인 응용 프로그램의 스타일에 따라 AIR는 잘 맞는 것일 수 있습니다.

AIR 응용 프로그램을 만드는 데는 1) html / javascript 및 AIR SDK 사용, 2) Flash / Actionscript 사용, 3) Flex SDK 및 / 또는 Flex 빌더 사용과 같은 몇 가지 개발자 경로가 있기 때문에 혼동을 야기 할 수 있습니다. 마지막 하나는 전통적인 데스크톱 개발 배경에서 가장 유능한 것입니다.

웹 서비스에 연결하기위한 웹 2.0 인 작은 응용 프로그램은 AIR 응용 프로그램에 적합한 후보입니다. IM 클라이언트 Digsby와 같은 것들이 훌륭 할 것입니다. 지금까지 본 내가 좋아하는 AIR 응용 프로그램은 Basamiq Mockups입니다. 다른 유용한 응용 프로그램은 TweetDeck입니다. 이것은 AIR로 해결하기에 적합한 유형의 좋은 예입니다.

Adobe Showcase를 방문하여 다음 응용 프로그램을 살펴보십시오. http://www.adobe.com/products/air/showcase/

또한, C ++ 게임에서 벗어나고 싶다면, QT에 자바 바인딩이있다는 것을 믿습니다 ... 또한 파이썬 바인딩을 기억합니다. 그러나 결코 저 자신을 보지 마십시오.

QGraphicsView까지 사람들은 Flex에서 비슷한 일을했습니다. 지금 인터넷 검색을 시도했지만 처음에는 찾을 수 없었지만 사람들은 큰 이미지와 같은 것을 가져 와서 창에 현재 영역 만 표시했습니다. 또한 Flex의 다음 버전에서는 공식 ViewPort 구성 요소를 구축하고 있습니다.
http://opensource.adobe.com/wiki/display/flexsdk/Gumbo+Viewport


Qt 및 SVG를 사용하여 "재미있는"UI의 몇 가지 예를 찾고 있다면 KDEGames [1] [2] 및 KDEEdu [3] [4] 프로젝트를 살펴보십시오. QGraphicsView와 SVG를 사용하여 확장 가능한 인터페이스를 만드는 멋진 코드가 많이 있습니다. 물론 그것이 GPL이기 때문에 앱이 그렇지 않다면 "빌려주는"것에 조심해야합니다.

[1] http://games.kde.org/

[2] http://websvn.kde.org/trunk/KDE/kdegames/

[3] http://edu.kde.org/

[4] http://websvn.kde.org/trunk/KDE/kdeedu/


이 AIR 응용 프로그램에서 시간을 보내고 Adobe Flex 및 AIR이 마스터 링에 시간을 투자 할 가치가 있는지 자문 해보십시오 (C ++ / QT 등의 유사한 제품이 왜 존재하지 않는지 자문 할 준비를하십시오).

투르 드 플렉스

Tour de Flex는 핵심 Flex 구성 요소, Adobe AIR 및 데이터 통합은 물론 타사 구성 요소, 효과, 스킨 등 다양한 Flex 기능 및 리소스를 탐색 할 수있는 데스크톱 응용 프로그램입니다.

몇 가지 질문 :

  • Flex는 MXML 및 ActionScript3로 코딩 할 수 있습니다. AIR은 Webkit HTML 렌더링 엔진이 AIR 런타임에 내장되어 있으므로 HTML / DOM / JavaScript 프로그래밍을 추가로 지원합니다.
  • MXML은 ActionScript3 명령형 코드로 컴파일 된 XML 선언 DSL입니다. 하지만 UI의 그래픽 형식 (즉, MVC 패턴의 뷰)을 선언적으로 코딩하는 것이 좋습니다.
  • ActionScript3는 자바 스크립트를 기반으로하는 헤라쥬지를 가지고 있지만 자바 또는 C #과 매우 흡사합니다. 패키지 네임 스페이스, 상속 클래스, 클래스 멤버 액세스 보호 키워드, 생성자, 정적 멤버 및 Java에 대한 몇 가지 멋진 추가 기능 (속성, 이벤트, 데이터 바인딩 및 클로저)이 있습니다.

Flex 스타일 프로그래밍은 비동기 I / O 상호 작용에 의존하는 단일 스레드 모델이기도합니다. 이것은 멀티 스레드 Java Swing 또는 C # .NET Winform 응용 프로그램보다 간단한 모델이지만 프로그램 동작과 동일한 결과를 얻을 수 있습니다. 나는 여기에 그것을 자세히 설명한다.

Flex Async I / O와 Java 및 C # 명시 적 스레딩


두 번째 @ Pieter 의 의견 - QT를 이미 알고 있다면 완전히 새로운 환경으로 이동하는 것이 더 오래 걸릴 것입니다.

QT는 플랫폼 간, 매우 성숙한 장점을 가지고 있습니다. Windows, Linux 및 Mac OS X 용 라이브러리가 있습니다. Adobe에서 알 수있는 것 이상으로 AIR에 익숙하지는 않지만 제품 사이트에서는 리치 인터넷 앱 ( http://www.adobe.com/products/air/ ). 그렇다면 데스크탑 애플리케이션을 개발할 때 QT가 훨씬 더 나은 선택이 될 것입니다.





air