Тёмный

Писать UI для Android на QT 

Android Broadcast. Все об Андроид разработке
Просмотров 18 тыс.
50% 1

Взял интервью у разработчика 2ГИС под Android про особенности создания приложения на QT
Хотите поделиться опытом? Есть готовые темы или разрабатываете что-то нестандартное?
✉️ Пишите на почту kirill@androidbroadcast.dev
🔗 Telegram канал "Android Broadcast" ttttt.me/android_broadcast
💰 Поддержать проект на Boosty boosty.to/androidbroadcast
🔗 Чат сообщества в Telegram ttttt.me/android_broadcast_talks
🔗 Telegram канал "Kotlin Broadcast" ttttt.me/kotlin_broadcast
🔗 Генеральный партнер Android Broadcast - AvitoTech cutt.ly/S0iYpCA
#интервью #qt #androiddev #android #программирование #kotlin #КириллРозов #андроид #AndroidBroadcast
0:00 Введение
2:02 Знакомство
3:35 Что такое QT
6:44 Демо QML с кодингом
47:18 Как работает QT на Android
51:50 Шаринг кода между Android и iOS
53:03 Почему QT
57:19 Чем QT лучше других кроссплатформенных фреймворков
58:09 Стоит ли выбирать QT сегодня
1:02:37 Стек технологий для старта
1:03:44 Инструменты
1:04:32 Поддержка, оптимизация и отладка АПК для разных устройств
1:08:56 Эффект на размер приложения
1:12:06 Особенности архитектуры приложения
1:16:24 Поддержка всех архитектур процессора
1:18:38 Взаимодействие с платформенными api
1:19:27 CI/CD
1:21:20 Поиск разработчиков
1:25:03 Компании с QT
1:27:09 Сложность выбранной технологии
1:31:18 Как дорого стоит команда
1:32:53 Изучение QT
1:34:51 Ответы на Stack Overflow
1:36:37 Готовы решения на QT
1:39:20 Сложность интеграции между QT и нативом
1:42:55 Заключение

Наука

Опубликовано:

 

29 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 104   
@AndroidBroadcast
@AndroidBroadcast Год назад
🔗 Telegram канал "Android Broadcast" ttttt.me/android_broadcast 💰 Поддержать проект на Boosty boosty.to/androidbroadcast 🔗 Чат сообщества в Telegram ttttt.me/android_broadcast_talks 🔗 Telegram канал "Kotlin Broadcast" ttttt.me/kotlin_broadcast
@BeDb_MeDb
@BeDb_MeDb Год назад
Спасибо за выпуск. Интересное видео)
@sovrinfo
@sovrinfo Год назад
Спасибо за видео. Коммент в поддержку!
@vladimirmartynov4747
@vladimirmartynov4747 9 месяцев назад
Спасибо!
@ari_514
@ari_514 Год назад
Можно посмотреть приложение для ios / android - Ubego Написано на Qt / QML
@lumixbrothers
@lumixbrothers 3 месяца назад
Люблю QT
@DaniilK-hq5go
@DaniilK-hq5go Год назад
Спасибо за выпуск, если бы у собеседуемого был микрофон нормальный было бы вообще огонь.
@AndroidBroadcast
@AndroidBroadcast Год назад
Не всегда получается сделать все как нужно, но стараемся
@SUPERPUPERDRONCHIK
@SUPERPUPERDRONCHIK Год назад
Кирилл, уж пригласил бы flutter разработчика. Тех же ребят из Surf иля Яндекс. Пока как-то в интервью обходите стороной эту технологию.
@AndroidBroadcast
@AndroidBroadcast Год назад
Так оно и не про кроссплатформу и Flutter
@SUPERPUPERDRONCHIK
@SUPERPUPERDRONCHIK Год назад
Прошу прощения за не совсем корректный первоначальный комментарий. Я имел ввиду интервью во множественном числе. В ваших интервью лишь вскользь упоминается Flutter. Хотя сейчас это, пожалуй, самое популярное кроссплатформенное решение, позволяющее шарить не только бизнес-логику, но и UI. Я понимаю, вам нравится больше KMM. Но не рассказывая о возможностях Flutter, на мой взгляд, не доносите общую картину мобильной индустрии.
@AndroidBroadcast
@AndroidBroadcast Год назад
@@SUPERPUPERDRONCHIK что-то путаете вы с журналистким каналом и расследованиями. Я не гонюсь сравнить все. Никто вам нигде не даст объективной точки зрения, а выразит свою позицию. Мне Flutter не заходит, желания в нем разбираться нет
@user-jf3iu8vi7k
@user-jf3iu8vi7k Год назад
@@AndroidBroadcast а ты попробуй разберись. и не тормози всех за собой своим нативным андроидом. ты уже про непопулярный и C++ ный QT заговорил... тебе уже нечего рассказывать, ну присмотрись ты к тому что предлагает текущее время!
@user-jf3iu8vi7k
@user-jf3iu8vi7k Год назад
Да кстати... сколько разработчик на kotlin/java-андроиде тупо ждет пока проект соберется? полдня? во флаттере же быстрее разработка идет.
@botsynth
@botsynth Год назад
Интересно, на чем сделаны яндекс карты? Такси для ios они, вроде бы, делали на флаттере.
@querylab
@querylab Год назад
не такси, а приложение для таксистов "разные приложения"
@user-vb4pm9kl5j
@user-vb4pm9kl5j 9 месяцев назад
Откуда-нибудь можно скачать исходники демки?
@Polite_person_
@Polite_person_ Год назад
Прикольное интервью. И технология интересная, но ну на фиг) Кстати хотят я сам топлю за KMM, но хотелось бы интервью с путевым flutter разработчиком, который не будет тупо нахваливать свое болото, а объективно расскажет все плюсы и минусы. Думаю подобный контент будет многим интересен.
@AndroidBroadcast
@AndroidBroadcast Год назад
Окт
@AntonKashcheev
@AntonKashcheev Год назад
Говорите "Qt", в заголовке "QT" (QuickTime) :( UPD. А ещё говорите "КьюТи", хотя правильнее "Кьют".
@user-hl9yr5po5i
@user-hl9yr5po5i 3 месяца назад
КУ ТЭ :)))), так что Кью ти ещё не самый худший вариант
@nikson9334
@nikson9334 11 месяцев назад
Композ мне понравился куда больше
@AndroidBroadcast
@AndroidBroadcast 10 месяцев назад
Поддерживаю, но идеи интересные в QT есть
@parennasubaru
@parennasubaru Год назад
Ты опоздал с QT минимум на 5 лет. У меня исторически несколько проектов QT/QML постепенно перевожу клиентов на флаттер повторно оплачивая работы.
@crazy-man
@crazy-man Год назад
Сколько пользуюсь 2 гис, только заметил язык чтобы поменять применить нужно перезагрузить приложение) это удивляет реально нет метода аюв реальном в ремени менять ? Анимации нету на нажатие кнопок как то сухо или это специально?
@crazy-man
@crazy-man Год назад
Хотя анимации есть в настройках нету кнопок анимации просто
@-31_75
@-31_75 10 месяцев назад
Jetpack Compose чем-то похож на Qt
@terentyeff
@terentyeff 11 месяцев назад
Это он еще в исходниках андроида не копался. Там такой 3,1415926535здец. Особенно после выхода Project Treble(Generic System Image)
@AndroidBroadcast
@AndroidBroadcast 11 месяцев назад
Что именно? Можно здесь или на почту kirill@androidbroadcast.dev
@terentyeff
@terentyeff 11 месяцев назад
@@AndroidBroadcast к примеру, при отключении зависимости в стандартном лаунчере от поискового движка(в AOSP. Там, где даже сервисов Гугла нет, как и поиска тоже), ломало всю сборку напрочь, хотя там ничего такого от него не было. При том, что даже с этой зависимостью не собиралось, ибо нужны были исходники GApps =). Ну или вот, при сборке обычного system.img, если нет в device tree конфига с ядром, то сборка тоже ломалась. Постоянно приходилось зависимости отключать. Благо, потом патчик написали и они до сих пор работали, до выхода Android 13. Сейчас снова приходится лезть ручками и отключать все зависимости =) До версии 8.0 со сборкой проблем вообще не было никаких, максимум, чисто под устройство правки. И то, конфигов в device tree =). Собиралось абсолютно всё.
@duoduoo6732
@duoduoo6732 Год назад
какие еще есть способы писать на нативном C++ андройд приложения? кроме Qt
@AndroidBroadcast
@AndroidBroadcast Год назад
Android NDK
@duoduoo6732
@duoduoo6732 Год назад
@@AndroidBroadcast а в unity3d например можно писать на си шарп. Он в итоге код превращает в яву и выполняется не как .so а как Ява обычная?
@AndroidBroadcast
@AndroidBroadcast Год назад
@@duoduoo6732 насколько знаю нет. Там своя виртуальная машина для выполнения C# скриптов
@SergeyGalin
@SergeyGalin Год назад
@@duoduoo6732 емнип, он тащит в APK рантайм для шарпов.
@SergeyGalin
@SergeyGalin Год назад
@@AndroidBroadcast Это немного про разное, NDK это набор компилятора, системных библиотек и тд (которым, в том числе, собирается приложение на Qt), а сам Qt про UI и интеграцию с ОС.
@VoroninSergey
@VoroninSergey Год назад
А что на счет материал дизайна?
@AndroidBroadcast
@AndroidBroadcast Год назад
Вряд ли он есть в QT
@eukalyptusbonb0n
@eukalyptusbonb0n Год назад
в qml есть модуль, как надстройка для контроллеров с material дизайном. controls.material
@Alexey.Lapshin
@Alexey.Lapshin Год назад
"Ну были значит 1960ые, мы выбрали cobol, потому что никаких си и паскалей ещё не было..."
@AndroidBroadcast
@AndroidBroadcast Год назад
🥱
@lumixbrothers
@lumixbrothers 3 месяца назад
И да под мобилу на qt написана телега
@user-dq7ld8np1w
@user-dq7ld8np1w Год назад
Я слышал, что QT более не работает в России... Как с этим ситуация?
@AndroidBroadcast
@AndroidBroadcast Год назад
Ребята использовали его открытую версию, подробностей не расскажу
@mirzaevtimur4519
@mirzaevtimur4519 Год назад
VPN в помощь
@silvermedved3562
@silvermedved3562 5 месяцев назад
qt -opensource проект, то что qt ограничили это комерческую лицензию и прекомпилные либы
@lolkekadylbek
@lolkekadylbek 8 месяцев назад
Ну всё, перехожу на кьюти. Потому что не надо лазить в стаковерфлоу.
@stspvs
@stspvs Год назад
Одним из препятствий разработки на Qt явплатный QtCreator, который из России сейчас и не купишь
@AndroidBroadcast
@AndroidBroadcast Год назад
Ребята собирают свою сборку и можно пользоваться
@yetanotherandreyev
@yetanotherandreyev Год назад
Исходный код Qt и Qt Creator открытый и никуда не делся. Например, готовые бинарники как были доступны в линукс-дистрибутивах, так и остались. Но, да, коммерческая европейская компания Qt Company сейчас не заключает договора в России и не пускает к своим сборкам с российских адресов.
@SergeyGalin
@SergeyGalin Год назад
QtCreator платный не нужен. Ценные платные вещи это Quick Compiler и возможность статической линковки.
@vodnickk3134
@vodnickk3134 Год назад
Да почему такой постоянный хейт Flutter со стороны Android разработчиков? Что вам плохого сделала данная технология? Просто убила надпись в превью Flutter больше не нужен, как будто это что-то плохое... Вот уже как 4-ый месяц пришел на Flutter с нативного Android и не хочу обратно и не хочу делать какой-то хейт в сторону нативной разработки
@sauvignonblanc5086
@sauvignonblanc5086 Год назад
Обычные токсики) Не обращай внимания)
@AndroidBroadcast
@AndroidBroadcast Год назад
Я против Flutter ничего не имею. Технология справляется со своей задачей, но лично у меня предпочтения другие (явно не QT). Превью больше для хайпа и привлечения внимания
@singlebw4065
@singlebw4065 7 месяцев назад
Как спользовать React js + OS Aurora?
@bulsond
@bulsond Год назад
Йо. Писать на языке без сборщика мусора еще то удовольствие. Плюсы годятся для написания систем, драйверов. Для прикладных задач есть языки с более комфортной работой. Да и синтаксис плюсовый в 21 веке уже выглядит старомодно. А так то можно упороться и на GO с Fyne писать под мобилки. С Flutterом сравнивать смешно. Во флаттере запускаешь один раз эмулятор, и редактируешь UI и тут же видишь результат, а не как в этой демке: две строчки добавил -> запускаешь на выполнение, останавливаешь, меняешь в коде еще пару строк -> опять запускаешь, смотришь, убиваешь, снова правишь и т.д. Как в старые добрые времена лет 20 назад ага? И это еще быстро собирается, а если нужно ждать перед каждым запуском по 3-4мин? Еще то удовольствие будет.
@Alexey.Lapshin
@Alexey.Lapshin Год назад
Там вроде смарт-поинтеры есть. Тут скорее вопрос больше к тому, насколько все будет лагать и тормозить на мобиле среднестатистического пользователя с использование не "старомодных синтаксисов" (вообще это крайне упоротый критерий, как определять новомодность, старомодность и на что это влияет?)
@bulsond
@bulsond Год назад
@@Alexey.Lapshin "вообще это крайне упоротый критерий, как определять новомодность, старомодность и на что это влияет?" А я вам скажу на что влияет. На читаемость и понимаемость кода, а значит на поддерживаемость. А про лаги и тормоза излюбленная тема, да, тех кто к месту и не к месту пропагандирует использование языков предназначенных прежде всего для системного программирования, а не прикладного каковым является написание обычных мобильных приложений. Давайте выйграем еще пару десятков наносекунд на выполнении этого участка кода написав его на ассемблере! Только вот обычная среднестатестическая мобильная аппликуха, ничего не вычисляет, а только бегает в сеть к бэкенду и отображает данные полученные с него и вообщем то больше ничего не делает, может еще в локальную БД что-то записывает. Таким образом плюсы здесь вряд ли дадут хоть какое-то ощутимое преимущество, а вот сложности в разработке добавять без сомнения. Я конечно не знаю, почему 2гис выбрала такую платформу для своего приложения, видимо это было оправданно какими-то весомыми соображениями. Ну, ОК тогда.
@yetanotherandreyev
@yetanotherandreyev Год назад
@@bulsond, в ответ на ваше исходное сообщение: Сборщик мусора имеется для декларативной среды, где обрабатывается QML и JS (ECMAScript). Одно из отличий по сравнению со средой браузеров в том, что нет объекта window или DOM API. Для обновления декларативной разметки на ходу есть проект QML Live (Luxoft). Также лайвкодинг прямо в браузере (webasm) можно попробовать в проекте QML Online (KDE). С Flutter сравнивать смешно, но для меня по другой причине. Гугл продает то, что уже работает много лет, но, как обычно, имеет "фатальный недостаток". И, если что, библиотека графики флаттера, как и хрома -- это skia, она на плюсах. Так что не вижу причин холиварить на пустом месте
@Alexey.Lapshin
@Alexey.Lapshin Год назад
@@bulsond не, ну если вы не умеете в плюсы, это не значит что все не умеют, и это будет тяжело поддерживать
@bulsond
@bulsond Год назад
@@yetanotherandreyev Архитектура Flutter как раз и подтверждает мою мысль. В основе база написанная на языке системного уровня - на C++. А сверху прикладной уровень написанный на дарте. И пользователь фреймворка пишет на языке прикладном, на Dart потому, что так конечному пользователю-кодеру проще, удобнее, комфортнее и быстрее в конечном случае. Для того и делаются разные слои, уровни и каждый инструмент-язык под него.
@serhioramires3166
@serhioramires3166 9 месяцев назад
Звук напряг
@user-hj6cf8zm2f
@user-hj6cf8zm2f 9 месяцев назад
Qml + qt = прощай лаконичность. Пишу два года на данном стеке. Любое изменение в плюсишной модели - это боль. Qml документация - это боль, сколько не боролся, но излишней информации придостаточно, как сделать то, что тебе никогда не понадобиться и испортит код. С выпуском обновлений для qml новых фич становиться больше, а старые фичи остаются. Разобраться с нагромождением новичку будет очень сложно. А курсов и пособий в инете мало. Если брать чистый qt, то никаких проблем не возникает, документация ок, код работает, ui строиться, но если связать это с qml... моя психика не выдержала, и теперь Я плавно перехожу на android разработку.
@IlyaLesnoy
@IlyaLesnoy 28 дней назад
Кросс платформа зло. Вы лишаете индустрию сотен человек часов. Зачем писать один раз и будет работать везде (с незначительные правками) когда можно писать отдельное приложение для Андроид, МакОс, АйОс, Виндовс, Линукс и запрашивать у бизнеса за это деньги. Да и по итогу в теории получится шустрее и оптимальнее если нативно все а не через кросплатформ прослойки. Нативно имею ввиду относительно Андроид само собой это Джава и фреймворк для гуев нативный, для Винды ВинАпи, MFC, но никак ни UWP и не Maui. Любите кодить много, пока есть такая возможность (отсылка к ии)
@alexeyprokhach5517
@alexeyprokhach5517 Год назад
Прикольно, чувак пишет на qt, а сам в гноме сидит, который на gtk))
@user-mp3zd8ob7y
@user-mp3zd8ob7y Год назад
Я запрещаю ругать flutter
@ddsdcww434-wi4fo
@ddsdcww434-wi4fo Год назад
лол иди давай со своим этим самым
@hotmule
@hotmule Год назад
Клуб кроссплатформенного мастерства двумя этажами ниже
@andreyshishkin4958
@andreyshishkin4958 Год назад
Я запрещаю вам запрещать 🙂
@user-zi8zw3yf2t
@user-zi8zw3yf2t Год назад
А я расзапрещаю обратно
@andreyshishkin4958
@andreyshishkin4958 Год назад
@@user-zi8zw3yf2t Все бы ничего, но такого слова нет 🙂
@Vlad-sw4zd
@Vlad-sw4zd Год назад
Бля,неужели реально у кого-то принято называть кутэ - кьют?
@AndroidBroadcast
@AndroidBroadcast Год назад
Все мы начинаем переиначивать слова. Например, говорим софт, а не софтваре. Тот же SQLite мало кто произносит как авторы говорят
@user-sb8de5tz9x
@user-sb8de5tz9x Год назад
Кьют правильно, много лет назад когда сам писал на нём интересовался и где-то на просторах сети нашёл комментарий от тех кто это название и придумал 😄
@SergeyGalin
@SergeyGalin Год назад
Qt читается как "cutie" (милашка, красотка)
@_plaha_
@_plaha_ Год назад
Можно и яму палкой выкопать, но зачем?
@AndroidBroadcast
@AndroidBroadcast Год назад
Когда нет ничего кроме палки, а яма нужна - это неплохой вариант
@_plaha_
@_plaha_ Год назад
@@AndroidBroadcast только мы не в каменном веке, и инструменты у нас есть
@yetanotherandreyev
@yetanotherandreyev Год назад
Пробовали Qt/QML? Если нет, рекомендую. Может захотеться называть палками другие проекты, которыми пользовались до этого.
@_plaha_
@_plaha_ Год назад
@@yetanotherandreyev пробовал Qt. Очень полезная, а главное нужная технология. На город в 3млн целых 0 работ. Даже на compose 30 есть. С этим мусором можно только, ну вы знаете куда, пойти
@yetanotherandreyev
@yetanotherandreyev Год назад
​@@_plaha_, неплохая попытка поспорить, но с таким же успехом можно искать php-фреймворки и радоваться вакансиям ( ͡° ͜ʖ ͡°)
@johnxibai8454
@johnxibai8454 Год назад
Кто ругает flutter, тот не программист
@user-mp3zd8ob7y
@user-mp3zd8ob7y Год назад
И того мама не любит
@AndroidBroadcast
@AndroidBroadcast Год назад
🤪
@johnxibai8454
@johnxibai8454 Год назад
@@user-mp3zd8ob7y Это комплексы не полноценного программиста, или недопрограммиста, боязнь того что выяснится он дилетант, не знающий что такое .so файлы
Далее
АСЛАН, АВИ, АНЯ
00:12
Просмотров 1,4 млн
Recycled Car Tyres Get a Second Life! ♻️
00:58
ВСЁ О РУССКИХ ЛИНУКСАХ (2023)
15:42
Will the battery emit smoke if it rotates rapidly?
0:11