Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

Мой вопрос: исправляю ли я, что если я напишу приложение в QT С++, то он будет работать на следующих платформах: 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 С++. Но я не думаю, что слишком много пользователей будут использовать Windows Mobile сейчас, так как Windows Phone 7 (не поддерживается Qt) - это последний разговор.

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

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

Что касается любого Linux Mobile (Moblin, Maemo и т.д.), то Qt С++ отлично работает на них.

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

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

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

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

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

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

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

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

Ответ 6

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

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

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