LINUX.ORG.RU

Сколько весит софт на Qt для Android?

 ,


1

4

Сабж. Не могу найти софта на Qt для андроида, чтобы сравнить/узнать. На нём ведь пишут для андроида, да? :) Про то, что существует возможность подтянуть «расшаренную» версию Qt для всех qt-программ вкурсе, но меня интересует средний вес программ, которые носят Qt с собой. Речь о Qt5.

Перемещено Klymedy из talks



Последнее исправление: cetjs2 (всего исправлений: 1)

Ответ на: комментарий от Iron_Bug

Да я просто в очередной раз задался сакраментальным вопросом «Почему говно побеждает?», и в очередной раз ответ меня не порадовал...

Virtuos86 ★★★★★
()
Ответ на: комментарий от anonymous

Опыт симбиана показал, что без жирненького фреймворка на C++ писать сложно моб. девелоперам, даже не тяжелые игрушки, а прикладное ПО. Хотя я профан, может погромисты такие неумёхи, хотя других-то нет. А на Java наговнякали овердохрена в сопоставимые сроки. Всё-таки инструментарий, наверное, решает.

Virtuos86 ★★★★★
()
Ответ на: комментарий от anonymous

Жабу дёргают конечно. В Qt-приложениях имеется Java-часть. И в неё изредка тоже приходится лазить.

На хабре читал статью/перевод, как Qt для Android Bogdan Vatra портировал. Сейчас чёт найти её не могу. Шизанутые мочераторы хабра выпилили наверное.

EXL ★★★★★
()
Ответ на: комментарий от Iron_Bug

Так берите C/C++ кодера хорошего, на этих языках вполне органично можно писать в .mm файлах, да и ObjC освоит вполне быстро.

Solace ★★
()
Ответ на: комментарий от Solace

У каждого свои взгляды на здравость.

Некоторые не особо видят здоровым писать для андроида на Qt. И что?

Я обязан тебе написать что-то под иОС? Нет не обязан.

Вопрос был про возможность писания на жабе под иОС. Не? Она есть. Всё.

Здравость, для меня, прослеживается только в потерях времени и возможности реализовать нужные функции. Если ты написал мега хрень (например ядро для шахмат, которое «думает» классно) напрмер на жабе/Си/Си++ и потратил на это месяц (год?) и она отлично работает. Зачем писать это же на другом языке, если есть возможность использовать уже написанное?

Serg_HIS
()
Ответ на: комментарий от Iron_Bug

то на андроиде бы можно было хоть в кваку гонять

И так можно, Quake III/Quake II/Quake I/Half-Life и прочее.

но она живёт спокойно без всякой жабы, однозначно

Под Android'ом — нет. Вот этот файлик в любом Qt-приложении под Android имеется: https://github.com/A780/Kinamania/blob/master/android/src/org/qtproject/qt5/a...

EXL ★★★★★
()
Ответ на: комментарий от Serg_HIS

Некоторые не особо видят здоровым писать для андроида на Qt. И что?

Есть очень тонкая ниша во всем этом мобильном секторе: игры. И в них ой как любят использовать всякие C/C++ фреймворки. Сам грешил. На Qt постепенно начинают писать, он вышел из стадии «совсем сырой» совершенно недавно.

Я обязан тебе написать что-то под иОС? Нет не обязан.

Сейчас эксклюзивы под платформы выпускает немного людей. И это в основном iOS. Практически все мобильные разработчики так или иначе выпускают хотя бы iOS/Android. И здесь определенно побеждают C/C++. Под Android легко под JNI писать обертки над родным функционалом, под iOS и того легче. А твой юзкейс скорее вообще относится к любителям, я о них речи не вел.

Solace ★★
()
Ответ на: комментарий от Virtuos86

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от Solace

проблема в том, что сишные кодеры с презрением смотрят на ObjC, в своём большинстве. и я их хорошо понимаю, я видела это поделие огрызков и мне оно даже при беглом просмотре сильно не понравилось. не появилось желания лезть внутрь. потому и искали именно спеца под ObjC, своих сишных и плюсовых программистов у нас было навалом, под кернел фигачили, но в огрызки никто лезть не хотел принципиально.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Solace

А твой юзкейс скорее вообще относится к любителям

Мой вариант(юзкейс) используется большими компаниями десятки лет. Потому жаба и существует.

Я не особый почитатель жабы, просто выбора нет особого для реальной кросплатформенности. И когда нужно быть впереди планеты всей тут выбора вообще нет. К тому же найти адекватных спецов, которые умеют не только кнопки рисовать (таких к стати тоже не так уж и много как я ожидал), а и программировать в именно понятии алгоритмистики, очень трудно. Тут либо используешь отлаженный код, либо тратишь овердофига ресурсов на отладку кода для другой платформы.

Serg_HIS
()
Ответ на: комментарий от Virtuos86

Там QML/Javascript, а не С++/QtWidgets. Что тормознее, QML или Java, это весьма сложный вопрос.

EXL ★★★★★
()
Ответ на: комментарий от anonymous

Таки Qt всё же дёргает жабу:

Which brings us to the “Java Native Interface” (or JNI for short). This is the communication layer between Java and C, and is used by Qt when passing data back and forth between the operating system and the platform plugin. In Qt, we are working on some convenience APIs around the JNI APIs to help you combine Qt code with JNI code if you would like your code to interoperate with Java.

https://blog.qt.io/blog/2013/07/23/anatomy-of-a-qt-5-for-android-application/

anonymous
()
Ответ на: комментарий от Iron_Bug

Да, на сях там жизнь есть, но с ограничениями. Во-первых там бионик вместо либс. Камрад crystax может рассказать чем это чревато для портирования сишного кода. Во-вторых гугл позиционирует NDK, как дыру для разработки исключительно низкоуровневых библиотек. Т е те части, которые нужны большей частью аппликухам в NDK не входят.
Доки там есть только на документированный API, сорри за тавтологию. А вот все остальное... К примеру TI имеет свой репозиторий с андроидом для своих же камней с бордами. И правок там достаточно много. Сборку на этом коде можно сертифицировать у гугла, как андроид. Но вот если нативная аппликуха будет дергать некий API от TI, то она будет работать только на TI.

AF ★★★
()
Ответ на: комментарий от Virtuos86

ну, плюсы, собственно, не заточены под веб. хотя есть разные фреймворки, разной степени жирности. но программистов сишных действительно мало. честно говоря, я вопросы веб-фреймворков особо не углублялась, я в основном железом и бэкендами занимаюсь. сижу в кернеле, мне там хорошо, тепло и уютно. спрос есть, работа непыльная, зарплата хорошая, юзеры не теребят. я веб вижу с другой стороны: со стороны TCP/IP стека, со стороны дров и ядра. там тоже есть свои тараканы, но они даже симпатичные :) я знаю, сколько работы производит кернел и меня удивляет, почему юзерспейс при такой слабой нагрузке и уже пережёванных готовеньких данных умудряется так тормозить. это как раз и есть ответ к вопросу о говнокоде и почему он побеждает. в кернеле есть Торвальдс, который устраивает разносы. и то я вижу там и сям ляпы и потенциальные баги в отдельных дровах. даже там есть говнокодерство, только в меньшем масштабе. а вот в андроиде оно развернулось по полной.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от anonymous

Возможно, я не проверял. Слышал, что оно может задействовать для него системный JS движок, мол не надо тащить его ещё с собой.

Виджеты-то легче, но по их состоянию на каждую версию(даже на Linux) заметно, как у разработчиков прогрессирует веб головного мозга. Печально это всё.

a1batross ★★★★★
()
Ответ на: комментарий от AF

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от Solace

Особенно под Android.

Про фиксы эпичных багов на том же GNU/Linux, вроде блёклых шрифтов (фиксили 2 года, пофикшено совсем недавно) или горячих клавиш в русской раскладке клавиатуры, которые фиксят с самого начала Qt 5.0.0 и до сих пор — я просто промолчу.

Особенно забавно было, как эти дятлы из Digia 3 года в сборках Qt 5 под Windows тянули зависимостью к QtCore библиотеку ICU весом 30МБ. В итоге любое приложение-Helloworld с одной кнопкой весило > 50МБ, если ты с этим был несогласен — enjoy Qt recompilation on MS Windows и красные глаза. Только недавно убрали зависимость эту, она оказалась багом сборочной фермы (!!!) они вообще не тестят релизы свои походу.

EXL ★★★★★
()
Ответ на: комментарий от EXL

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

a1batross ★★★★★
()
Ответ на: комментарий от EXL

Под Android'ом — нет. Вот этот файлик в любом Qt-приложении под Android имеется

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

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от anonymous

с QML оно будет весить больше, потому что притарабанит туеву хучу всяккой херни. Виджеты легче.

Я выше писал про QML приложения, спокойно в 15-20 мегабайт вписываются.

CrossFire ★★★★★
()
Ответ на: комментарий от EXL

Не вышел.

Да ладно, на 5.5.1 уже все очень прилично.

CrossFire ★★★★★
()
Ответ на: комментарий от Iron_Bug

Системные либы — это какие? Вообще Qt на Android работает через нативное NDK, но если мы работаем с интерфейсом, хотим работать поддерживаемо и расширяемо — то написание своей Activity стандартным образом через Java выглядит необходимым.

CrossFire ★★★★★
()
Ответ на: комментарий от CrossFire

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

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 2)
Ответ на: комментарий от Iron_Bug

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

Согласен. А кто сказал, что Qt использует Java для работы с железом?

CrossFire ★★★★★
()
Ответ на: комментарий от Iron_Bug

Android — это отдельное государство, там еще куча всего, не связанного с железом, и вероятно реализованного на Java.

CrossFire ★★★★★
()
Ответ на: комментарий от Iron_Bug

я видела это поделие огрызков

При чем тут эпол? Objective C разработан в компании Stepstone, а эпол его просто использует.

andreyu ★★★★★
()
Ответ на: комментарий от CrossFire

Согласен. А кто сказал, что Qt использует Java для работы с железом?

А как мимо жабы получить доступ к, скажем, usb или камере на нерутованном девайсе?

anonymous
()

В андроид-разработке как и везде поддерживается культура нашпиговывания продукта всем что нравится ведущему разработчику, и как результат раздутие «бинарника» до 40Мб это норма, причем и без Qt'шных блобов.

JN
()
Ответ на: комментарий от Serg_HIS

Кому «лучше писать на жабе»? ТС-у, твоей бабушке или кому? т.е. для всех ОС сделал на Qt и писать отдельно на жабе? Ну и где теперь твое лучше?

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Был вопрос про писание под ведроид. Для него нативно — это на жабе. Если ничего сверхестественного делать не нужно. А какие нить крестики нолики и если автор в Си, как в тарелке супа ложкой? То пусть Куте. За пару деньков накропал и идешь другое кропать за следующие 2-3 дня.

А если ковыряния с Куте занимают год и получается кривобагое нечто, вместо крестикоф ноликоф. То лучше таки взять жабу и правильные средства разработки. За пару месяцев руки отрастут ровными к жабе и будут вылетать прямые проги как пирожки с пекарни.

Serg_HIS
()

10 метров, полгода назад собирал.

BruteForce ★★★
()
Ответ на: комментарий от Serg_HIS

Не нервничай, малыш, никто не отнимет у тебя твою любимую жабку :-) Главное дыши спокойно :-)

anonymous
()
Ответ на: комментарий от andreyu

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от JN

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от Serg_HIS

То пусть Куте. За пару деньков накропал и идешь другое кропать за следующие 2-3 дня.

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

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от anonymous

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

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

В моем посте было ключевым: если автор в Си, как в тарелке супа ложкой. Если не понятно — это я перефразировал народную поговорку «как рыба в воде».

Это означает, что за спиной не один крупный проект на Си/Си++ (если что).

Вроде ничего в поддержку говнокодеров не писал.

Serg_HIS
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.