Мне нужно выбрать платформу для нашего продукта. Мне нужно выбрать между Qt Framework и Adobe AIR. Я хорошо разбираюсь в Qt, поскольку работал последние два года. Я заглянул на сайт Adobe, но вся информация о гибкости, флэш-памяти и возможности кодирования в HTML / ActionScript ошеломляет и сбивает с толку. Я не могу понять следующее об экосистеме Adobe.
У меня есть следующие вопросы по Adobe AIR:
На каком языке я пишу свое приложение? (не только определение внешнего вида пользовательского интерфейса)
Как и в Qt, я использую C++. Это ActionScript?
Можно ли сказать, что AIR предназначен только для создания пользовательского интерфейса для приложений.
Где находится документация по служебным классам вместе с AIR?
например http://qt-project.org/doc/ для Qt
Qt поставляется с огромным набором готовых виджетов, которые можно использовать. Поставляется ли Adobe с такими наборами виджетов, и если да, то где я могу увидеть их в URL-адресе?
Я так понимаю, что flex SDK - это открытый исходный код. Могу ли я создавать коммерческие приложения и отправлять их? Поставляет ли Flex SDK все (компилятор, служебные классы / виджеты)
Сколько стоит AIR с точки зрения лицензирования?
Есть ли что-то в AIR, эквивалентное QGraphicsView QT?





Flex является открытым исходным кодом, вы можете скачать SDK бесплатно, с ним не связано никаких затрат на лицензирование. (см. их Часто задаваемые вопросы)
Они действительно поставляют «гибкий конструктор», который, я думаю, представляет собой некий специальный Eclipse, который стоит денег, но вы можете отлично работать и без него.
Документы можно найти на страницах Adobe Liveoc. (который некоторым, сам по себе достаточный повод не любить Adobe;))
Мне действительно интересно, если вы хорошо разбираетесь в QT, почему вы рассматриваете что-то еще? Какие преимущества вы ожидаете от AIR перед QT?
У меня есть некоторый опыт работы с QT и Flex, но его недостаточно, чтобы сравнить одно с другим. Я знаю, что QT / C++ намного более зрелый, чем Flex / ActionScript.
Если вы уже знаете QT, я не думаю, что время, потраченное на изучение нового фреймворка (и языка программирования), принесет вам достаточно, чтобы быть честным ...
Ах да, QT стоит денег для коммерческих приложений, хороший момент :)
это не так уж и дорого, однако они больше не публикуют фактические цены на общедоступном веб-сайте (trolltech.com/products/appdev/pricing)
Я должен оценить и отправить отчет об AIR vs Qt руководству. :-)
электронное письмо их группе продаж должно прояснить это :) plu, s Я уверен, что они скорее потратят даже пару тысяч на Qt, чем теряют ваше время (и любые другие разработчики) на несколько месяцев, пока вы изучаете другую среду
Теперь Qt бесплатен для коммерческих приложений. Поскольку Qt4.5 выпущен на условиях LGPL
Я второй комментарий @ Питер - если вы уже знаете QT, переход в совершенно новую среду займет НАМНОГО больше времени.
Преимущество QT в том, что он кроссплатформенный и очень зрелый: существуют библиотеки для Windows, Linux и Mac OS X. Я не очень хорошо знаком с AIR, кроме того, что знаю, что он от Adobe, но на сайте продукта, похоже, указано, что это для многофункциональных интернет-приложений (http://www.adobe.com/products/air/). Если это правда, то QT будет гораздо лучшим выбором, если вы разрабатываете настольное приложение.
Я использовал QT и Flex (хотя и не столько сам Air) и обнаружил, что Flex быстрее запускает и запускает приложения, а также модифицирует, в то время как QT дает вам больше контроля, особенно в установщике. Установщик приложения Air довольно неудобен, по крайней мере, когда я его пробовал, хотя с тех пор он, возможно, был улучшен.
Большим преимуществом Air является то, что большую часть кода для него можно запускать во Flash на веб-страницах. Вы не можете получить доступ к локальной файловой системе и т. д. Из Интернета по соображениям безопасности, но почти все остальное переносимо.
Если вам нужно получить доступ к большому количеству нативных библиотек, вам нужно оставаться в своей среде QT. Имейте в виду, что AIR является однопоточным и запускается во Flash Player (изначально предназначенном для покадровой анимации). Однако, в зависимости от стиля создаваемого приложения, AIR может вам подойти.
Помните, что AIR может сбивать с толку, поскольку существует несколько разных способов создания приложений AIR для разработчиков: 1) с использованием html / javascript и AIR SDK, 2) с использованием Flash / Actionscript и 3) с использованием Flex SDK и / или Flex Builder. Последний из них наиболее эффективен, поскольку исходит из традиционного опыта разработки настольных компьютеров.
Небольшие приложения Web 2.0 для подключения к веб-службам являются хорошими кандидатами для приложений AIR. Такие вещи, как клиент обмена мгновенными сообщениями Digsby, были бы замечательными. Мое любимое приложение AIR, которое я видел до сих пор, - это Basamiq Mockups. Другие полезные приложения - TweetDeck. Это хорошие примеры задач, которые хорошо подходят для решения с помощью AIR.
Вам следует посетить Adobe Showcase и посмотреть некоторые приложения: http://www.adobe.com/products/air/showcase/
Кроме того, если вы хотите просто выйти из игры на C++, я считаю, что QT теперь имеет некоторые привязки java ... также я помню некоторые привязки python, но сам никогда не смотрю на них.
Что касается QGraphicsView, люди делали то же самое в Flex. Я пробовал поискать в Google прямо сейчас, но сначала не смог их найти, но люди брали такие вещи, как большое изображение, а затем отображали только текущую область в окне. Кроме того, в следующей версии Flex создается официальный компонент ViewPort:
.
http://opensource.adobe.com/wiki/display/flexsdk/Gumbo+Viewport
Спасибо. мы делаем что-то для детей, скажем, на языке визуального программирования. Нам нужен красивый графический интерфейс. Я думаю, что лучше придерживаться QT и использовать SVG для внешнего вида.
Если вы ищете несколько примеров «забавных» пользовательских интерфейсов с использованием Qt и SVG, взгляните на проекты KDEGames [1] [2] и KDEEdu [3] [4]. Там много хорошего кода, который использует QGraphicsView и SVG для создания масштабируемых интерфейсов. Конечно, обратите внимание, что это GPL, так что будьте осторожны с тем, что вы «заимствуете», если ваше приложение не является.
Потратьте некоторое время на это приложение AIR, а затем спросите себя, стоит ли тратить время на освоение Adobe Flex и AIR (будьте готовы спросить себя, почему не существует чего-то сопоставимого для подобных C++ / QT):
Tour de Flex is a desktop application for exploring Flex capabilities and resources, including the core Flex components, Adobe AIR and data integration, as well as a variety of third-party components, effects, skins, and more.
Некоторые из ваших вопросов:
Программирование в стиле Flex также является однопоточной моделью, основанной на асинхронных взаимодействиях ввода-вывода. Это более простая модель для программирования, чем многопоточные приложения Java Swing или C# .NET Winform, но позволяет достичь тех же чистых результатов поведения программы. Я уточняю это здесь:
Асинхронный ввод-вывод Flex против явной потоковой передачи в Java и C#
Действительно, компоненты Qt бедны по сравнению с Flash. Не знаю почему.
Я сделал противоположный ход. Я начал работать над материалами Adobe и перешел на QT. Основная причина этого заключалась в ограничениях фреймворка Adobe. Когда вы используете материалы Adobe, вы ограничены инструментами, которые они производят, сложно вводить внешние фреймворки или библиотеки, если вы не можете делать то, что хотите, с материалами Adobe. Обычно решение для этого - использование сокетов, которые преобразуют предполагаемое «автономное» приложение в архитектуру клиент-сервер. Кроме того, если вы используете много внешних устройств, может быть сложно управлять таким количеством разных клиентов. Используя QT, вы можете писать код на C++ и добавлять любые внешние фреймворки или библиотеки. Хотя иногда бывает непросто его закодировать, это выполнимо и без "странной" системной архитектуры.
«Мне действительно интересно, если вы хорошо разбираетесь в QT, почему вы рассматриваете что-то еще? Какие преимущества вы ожидаете от AIR перед QT?» Можно ли использовать только гибкий SDK, который является OSS, и бесплатно отправлять коммерческое приложение?