Архивы: qt

Почему Ministro нежизнеспособен

Напомню, что Ministro это программа, которая занимается управлением Qt библиотеками на Android. Скачивает нужные, обновляет, устанавливает. Есть ощущение, что эта затея кажется бредовой только мне, потому что периодически читаю множество хвалебных отзывов. Да и вообще факт её появления сам по себе забавное событие.

На мой взгляд решение сделать такую программу было сделано по одной причине, а именно конский размер Qt библиотек и как результат apk файла не очень обрадует будущего пользователя потенциальной программы. А с Ministro получается что вроде как прога маленькая и качается быстро, но:

1. Представьте себя на месте пользователя, который скачал приложение, а оно ему такое: «Дружок, установи ка ещё одно, а?». Такое обычные юзеры не очень понимают;
2. Даже если он установил, то Ministro желает скачать несколько мегабайт библиотек. Что, кто-то будет ждать что ли? Если только программа исключительная и аналогов нет. А сейчас это большаааая редкость;
3. Автоматическое обновление библиотек потенциально может привести к тому, что программа будет неработоспособна. Я не знаю как тщательно проверяется совместимость в Qt, но теоретическая возможность есть;
4. Программа всё равно загружает гигантских размеров библиотеки в память.

С точки зрения программиста Ministro это довольно красивое решение. Когда Necessitas избавится от over 100500 глюков, то возможно даже приживётся в корпоративном сегменте. Но по хорошему развитие должно идти по пути дробления Qt, уменьшения размеров библиотек и т.п.

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 замечательный фреймворк, но уже разжирел настолько, что пора бы не просто садиться на диету, а приступать к активным физическим нагрузкам.