Necessitas

Порт Qt на Android раньше назывался Lighthouse, а теперь Necessitas. Чёрт подери, кто придумывал это название, я его не могу не то что набрать, а даже запомнить, особенно в 4 часа утра. Копипастю из статьи с другой вкладки, ну и автодополнение браузера помогает.

Как театр начинается с вешалки, так и программа начинается с установщика. Здесь он сделан типа как в большом брате в виде online installer. Всё бы ничего, но с первой страницы я столкнулся с некоторого рода интересным отказом, а именно инсталлятор просто вылетал.

Эмпирическим путём было выяснено, что делает он это если при вводе пути для установки в текстовом поле нажать Enter, а для корректного продолжения нужно тыкать мышкой на Next.

Установка прошла, впрочем, нормально.

После запуска QtCreator я по старой привычке боялся нажимать лишний раз не на те кнопочки. Здесь я пытаюсь пошутить, но такое дело, что QtCreator от названия-фреймворка-которое-я-не-могу-написать возвёл идею полётов в абсолют и если у вас появилось желание поменять настройки проекта, то будьте уверены, что почувствуете себя сапёром, потому что вылетает и зависает это чудо инженерной мысли практически после нажатия каждого пункта меню. Ну может не буквально каждого, но практически каждого по моему мнению достаточно важного.

После попытки компиляции получаем, конечно же, обломс. Неужели, вы думаете, что сие произведение просто так даст вам что нибудь запустить. Оказалось, что JAVA_HOME была прописана неверно и должна указывать на JDK, а не JRE. О чём, конечно же, меня сигнализировало информативное сообщение об ошибке, типа «ant.exe завершился с кодом -1».

Потом, наконец то, всё скомпилировалось и запустилось.

Теперь, наконец, про недостатки самого фреймфорка. Для начала вкратце расскажу как он работает.

Чтобы программа на фреймворке-с-глупым-названием заработала мы должны сначала установить другую программу, Ministro. Qt-шные библиотеки имеют конский размер: QtCore — 20 Мб, QtGui — 90 Мб и так далее, поэтому деплоить напрямую с приложением довольно накладно. Ministro занимается тем, что скачивает из интернета эти библиотеки по мере надобности, обновляет их и т.п.

Вообще на мой взгляд, это глупая затея. Ну не будет обычный пользователь, после того как установил прогу ставить ещё что-то сверху. Не работают тут PC-шные подходы.

По наивности я было попробовал интегрировать библиотеки в apk файл. Подумал ужмёт мож или чё, но тулсет был суров и непреклонен выдав apk файл размером 45 мегабайт, что вызвало просто нервный смех.

Я так и представил пользователя, который качает из интернета 45-мегабайтный вьюер каких нибудь новостей, или ждёт пока Ministro стянет все зависимости.

А ещё если приложение закрыть и открыть снова, то оно просто зависает.

Ещё вот тут можно почитать.

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

  • Давно уже слежу за проектом этим. Они очень неплохо развиваются, надеюсь и дальше так будет.
    Для альфа версии всё весьма неплохо, но для продакшна очень сыро.
    И установку библиотек бы прозрачную, конечно. что-то вроде кусочка этого министро в каждое приложение добавлять и использовать общее хранилище (если так можно на андроиде)

    • как proof of concept штука интересная да, но не раз встречал призывы опробовать в продакшне. Тот же 2ГИС использует, но у них форк.

  • Аноним

    слушай, а вот если забыть про трудности деплоймента для «обычного юзера» и рассматривать некое корпоративное использование, когда поставить 50мб пакет не проблема — то он как?

    • Нет, для продакшна, я считаю, ещё сыро. Почитай по ссылке статью, но не только её, а каменты тоже. Чувак из 2ГИС рассказывает некоторые детали реализации. Там такие прелести типа «ну что вы хотите, если что-то не работает форкайте и пилите сами, вот мы тоже форкнули». О какой готовности к продакшну может идти речь, если повторное открытие проги ведёт к зависанию? :) 

      • Valeriy

        Написал прогу и использованием sql и TCP, многооконную. Министро быстро все подтянул. Пока все работает, и не вылетает ничего, когда закрываешь и опять открываешь. Сворачивание тоже норм работает. С вводом текста где-то перемудрили, Автоввод глючит неимоверно. Но если использовать обычный ввод, то все опять таки норм. Еще, когда таблицу создаешь, невероятно сложно попасть в линию, чтобы увеличить ширину столбца, например. Из нереализованых библиотек пока только Phonon не нашел, остальные вроде есть..