Реалии использования QT C ++ для написания приложения для кросс-платформенных телефонов

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

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

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

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

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

Solutions Collecting From Web of "Реалии использования QT C ++ для написания приложения для кросс-платформенных телефонов"

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

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

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

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

Вы хорошо согласны с 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 из Болота сказал, что они пошлют его как можно скорее. Существует большое сообщество 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 ++ отлично работает на них.

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

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

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

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

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

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

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

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

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

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

symbian { SOURCES += symbian_file_handler.cpp LIBS += -llibcryto } 

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

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

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