Кроссплатформенность была бы на много круче, если максимум что нужно было сделать это выбрать среду, для которой компилировать приложение. Но до таких технологий пока вроде как не дошли. Спасибо за статью было интересно.
В Qt дошли. Причём давно. Можно просто из среды разработки выбирать для какой платформы собирать и тут же запускать в эмуляторе или на устройстве. Гляньте например сюда: habrahabr.ru/blogs/qt_software/120966/
По моему для разработчика 300-400$ в год это не такая и большая сумма.
Хотя если вы преследуете целью не результат, а процесс, то вылепливание велосипеда — то что доктор прописал.
При использовании самого популярного и удобного решения, Necessitas — не работает. Вот issue, будем надеяться, что в недалеком будущем пофиксят. Жаль, что у главного разработчика нет мотивации реализовать это самому, возможно найдется кто-то другой.
На самом деле там есть экспериментальные версии. И Томас — не главный. Главного как такового нет, но негласно главным считается все же Богдан (который начал порт). Томас присоединился чуть позже и в основном ОГЛем и занимается.
Там вроде есть egl full screen версия, видел вполне рабочую и быструю демку на ведроидных планшетах. Но всё равно я не слишком верю, что возможно с кривой архитектурой Андроида получить порт production качества.
Да, я про нее и говорю.
Начиная с 2.3 стало попроще с архитектурой вроде для реализации целей, необходимых нецесситасу. Но полностью переход на 2.3+ сейчас невозможен из за большого количества аппаратов на 2.2
Всё круто, но получается, что искусственно ограничиваем себя только Chrome'ом. Ежели хотим обрадовать нашим творением всех пользователей и-нета, то натыкаемся на проблемы с другими браузерами.
Версии под все заявленные платформы можете собрать сами, вот исходники. Игра имеет размер 320х480, разве это много? Возможно частота перерисовки HTML5 Canvas примерно в 60 fps на вашем оборудовании создает дрожание, я у себя не замечал.
При попытке получения кроссплатформенности на мобильных устройствах как ни крути всегда получаешь один минус: приходится забивать на всяческие интерфейс-гайды платформ, а они у тех же iOS/Android/WinPhone очень сильно разнятся
Я с вами согласен, но подумайте вот о чем: Angry birds следуют этим гайдам? Это им сильно мешает?
В играх интерфейс-гайды не столь важны, это больше касается других программ.
Основа — это чистый С++, без Qt. Я использовал Qt для того, чтобы игра работала на десктопе и телефонах Nokia. Objective-C можно использовать для того, чтобы портировать игру на iOS. Причем весь существующий С++-код не нужно будет переписывать на Objective-C, в этом большой плюс.
Как-то один человек, сведущий в HTML5 рассказывал, что по его опыту попытка сделать приложение под все мобильные платформы на HTML5 для заказчика заканчивается разработкой отдельных приложений под каждую платформу на радном языке/платформе.
Хотя данный пост и обогнал меня на конкурсе и мне это очень обидно, я не могу не отметить профессионализм автора и тот факт, что пост полезный и в теме конкурса — получившийся софт работает с использованием Qt и может запускаться на нокиевских телефонах. Так что всё ок, мне кажется.
Во-первых, это тоже вполне себе подходит под «мобильную разработку», во-вторых, никто в здравом умен не будет писать на Qt приложение «только под нокие», если его столь небольшими усилиями можно выпустить везде.
теми же небольшими силами можно написать приложение на Qt, которое будет работать на симбе, миго, дроиде, будущем блекберри и (в будущем) иосе. Но при этом это будет одно цельное приложение с использованием ОДНОГО инструмента.
И код будет куда более прозрачным для редактирования и расширения. Причем на BB и Вебось Qt вполне официально портировали. А QtComponents'ы позволяют делать само приложения по гайдлайнам целевой платформы.
Я очень надеюсь, что это будущее наступит скоро. Когда это случится, я смогу отказаться от поддержки кода, специфичного для Android и iOS. Пока, увы, я не могу этого сделать.
Так а зачем? В Qt специфичный код для Android и iOS вполне себе может жить внутри соответствующих реализаций QtComponents'ов, а все элементы управления смогут рисоваться нативными методами.
Не уверен, что полностью понимаю вас. Разработка для Android и iOS с использованием библиотеки Qt — пока что скорее сказка, чем реальность, а QtComponents — часть библиотеки Qt.
Можно перефразировать ваш вопрос так: «Автор, как насчет портировать Qt Lighthouse на Android, iOS, Native Client, или изучить и допилить имеющиеся порты в сети и потом со спокойной душой пользоваться QtComponents»?
Или существует способ использовать QtComponents без портирования Qt на эти платформы?
э, при чем здесь полноценное портирование? пишете, то чего недостает вам например в андроиде (при желании реквестите мерж в нецесситас) на уровне далвика или ndk (как вам больше нравится) и используете это у себя в проекте на qt
Я вас понял. К сожалению, опыт работы с платформой Android у меня небольшой и ограничивается использованием библиотеки libgdx. То же самое можно сказать про iOS и Native Client. Я не могу назвать себя специалистом по OpenGL, я предпочитаю избегать прямого взаимодействия с ней. Поэтому я не могу позволить себе пойти на такой отвественный шаг, к тому же мной отчасти двигает лень, я свято верю, что есть люди, которые сделают это вместо меня, и надеюсь, что это будет скоро.
Кроссплатформенность — это круто