Реалии использования QT C ++ для написания кроссплатформенного приложения для телефона - PullRequest
16 голосов
/ 19 февраля 2011

Я пытаюсь продолжить разработку приложений для смартфонов (у меня небольшой опыт работы с Android).Я провел глубокое исследование и решил начать создавать приложения в Qt C ++.

Причина, по которой я это делаю, заключается в том, что из моих исследований мне кажется, что я могу написать приложение один раз в Qt, а затемвсе, что мне нужно сделать, это скомпилировать его на IPhone, Android, Symbian и Windows Mobile, и тогда у меня будет приложение, которое будет работать на ALL этих платформах.

У меня такой вопрос: Правильно ли я понимаю, что если я напишу приложение на Qt C ++, оно будет работать на следующих платформах: Android, IPhone, Symbian и Windows Mobile?

IЯ знаю, что это довольно наивный вопрос («Какой API я могу использовать для работы на всех платформах»), но я много исследовал, и все они, похоже, говорят, что Qt может работать на всех этих платформах.

PS Есть ли минусы в использовании Qt для написания кроссплатформенного приложения для телефона?Сложно ли компилировать код приложения Qt на каждой платформе?

Ответы [ 6 ]

11 голосов
/ 16 февраля 2014

Этот вопрос задавался очень давно, и с тех пор многое изменилось. Для тех, кто задает себе тот же вопрос сегодня (начало 2014 года), мой личный ответ таков: Qt работает на iPhone на 99%.

В настоящее время я разрабатываю приложение, которое использует QSensors, QNetworkAccessManager и OpenGL ES, и у меня не возникло никаких проблем в OSX, iOS, Windows и Linux. Думаю о портировании на Android в ближайшее время.

Единственной проблемой, с которой я столкнулся, был модуль QtPosition (GPS), который еще не поддерживается для iOS, но обходной путь очень прост, и я бы не стал считать это проблемой. Это, вероятно, будет работать позже в этом году. Также из-за некоторых ограничений iOS, QtWebKit недоступен. Остальное работает как шарм! Отличная работа сделана.

Я не тестировал себя на Android, но из того, что я прочитал, Qt также должен работать над этим.

8 голосов
/ 13 декабря 2011

Вы можете использовать Qt C ++ (и совсем недавно QML) для разработки мобильных телефонов.

У меня вопрос: правильно ли я, что если я напишу приложение на QT C ++, оно будет работать на следующих платформах: Android, IPhone, Symbian и Windows Mobile?

Да, он отлично работает на Android, Symbian, Windows Mobile, Meego, Maemo, Moblin.

Я разработчик Qt, и я использовал его для разработки для Symbian, Meego, Maemo и Android. Поскольку Symbian, Meego, Maemo официально поддерживаются, они отлично работают на 99,99% на этих платформах.

Но в Android он работает на 95% нормально, но вам требуется очень мало тренировок. Насколько я знаю, QtMultimedia Kit не поддерживается на Android (доступны некоторые пути). Но участник порта Android Bog сказал, что они тоже будут портировать его как можно скорее. За Qt стоит большое сообщество, а также за Qt для Android. Вы также можете использовать API Mobility, как вы используете в Symbian и Meego. Мобильные приложения Qt уже опубликованы на рынке Android без каких-либо проблем.

Что касается Windows Mobile, официально упоминается, что даже Qt Mobility можно использовать с этим телефоном, и он поддерживает чистый код Qt C ++. Но я не думаю, что слишком много пользователей будут использовать Windows Mobile сейчас, так как Windows Phone 7 (не поддерживаемый Qt) - последний доклад.

Что касается порта iPhone, да, есть сообщества экспериментальных портов. Думаю, скоро будет доступно несколько примеров. Я видел несколько видео на Youtube, демонстрирующих работу Qt и Qt Mobility на iPhone.

Недавно RIM заявил, что их платформа BBQ (Blackberry Tablet OS) будет иметь официальный порт для Qt.

Относительно любого Linux Mobile (Moblin, Maemo и т. Д.), Да, Qt C ++ прекрасно работает на них.

Что касается Desktop, Qt C ++ / QML работает почти на всех платформах Desktop.

Я не понимаю, что кто-то вроде CommonsWare с 145 тыс. Повторений только что вышел и сказал буквально, что Qt не будет работать ни на одной из мобильных платформ. Но, по его словам, если вы собираетесь выбирать API на основе HTML, например PhoneGap, я бы рекомендовал Qt 100 раз. Потому что Qt может работать лучше, чем HTML5 во всех отношениях. Он может справляться с некоторыми проблемами comlpex, такими как 3D, openGL и т. Д., Намного лучше и эффективнее, чем HTML5.

Прочитав все приведенные выше ответы, я разочаровываюсь, говоря, что вам лучше не верить этим ответам и пойти присоединиться к этому месту Qt Labs , где вы увидите и насладитесь настоящей силой Qt.

В последнее время Qt стал открытым руководством, где каждый модуль Qt будет разрабатываться и обслуживаться в соответствии с общественными интересами. В дальнейшем Trolltech, KDE и Nokia разрабатывают его по коммерческим причинам. Так что никогда не теряйте Qt из-за плохого совета, попробуйте сами, а потом решайте сами.

5 голосов
/ 18 марта 2011

Поддержка iOS и Android является экспериментальной, к сожалению. И Nokia поддерживает только более новые версии Symbian. Так что Qt является кроссплатформенным только для рабочего стола, и здесь он действительно отлично работает ----> Linux, Windows, ** BSD, MacOSX, OS / 2, Amiga OS4 ....

Обидно, что Nokia начала создавать Windows Phone. Если бы они придерживались meemo и symbian, по крайней мере, Qt был бы активно разработан.

1 голос
/ 19 февраля 2011

Я не верю, что Qt сработает для той цели, которую вы описываете.К сожалению, я не думаю, что что-то еще будет.Android в основном просто поддерживает Java.NDK позволит вам писать части приложения на C ++, но все еще требует Java для отдельных частей.

Новая версия Windows Mobile поддерживает только приложения .NET (и я вполне уверен, что другие телефоны не поддерживаютПриложения .NET вообще ...)

0 голосов
/ 27 октября 2014

Основная часть фреймворка Qt, на который ответили все остальные, будет работать на всех платформах, хорошо, если не все в данный момент, то скоро это будет.Плюс Qt растет не только в его фреймворке, но и в плане поддержки и пользователей.

Единственная трудность, с которой вы столкнетесь, - это когда вам нужно использовать внешнюю библиотеку для запуска на всех платформах.Например, я работаю с ffmpeg, и мой файл .pro в настоящее время только настроен для Windows и Android, но он работает.

Компиляция кода Qt для каждой платформы - пустяк.Настройка внешних библиотек - сложная задача.

0 голосов
/ 19 февраля 2011

Это не совсем так.Если для данной функции характерна конкретная платформа, то такие конструкции необходимо заключить в фигурные скобки этого имени платформы в файле .pro.

например, для symbian:

symbian {
SOURCES += symbian_file_handler.cpp
LIBS += -llibcryto
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...