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

  Рет қаралды 17,501

Android Broadcast. Все об Андроид разработке

Android Broadcast. Все об Андроид разработке

Күн бұрын

Взял интервью у разработчика 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 Заключение

Пікірлер: 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 8 ай бұрын
Спасибо!
@user-vb4pm9kl5j
@user-vb4pm9kl5j 9 ай бұрын
Откуда-нибудь можно скачать исходники демки?
@botsynth
@botsynth Жыл бұрын
Интересно, на чем сделаны яндекс карты? Такси для ios они, вроде бы, делали на флаттере.
@querylab
@querylab Жыл бұрын
не такси, а приложение для таксистов "разные приложения"
@ari_514
@ari_514 Жыл бұрын
Можно посмотреть приложение для ios / android - Ubego Написано на Qt / QML
@crazy-man
@crazy-man Жыл бұрын
Сколько пользуюсь 2 гис, только заметил язык чтобы поменять применить нужно перезагрузить приложение) это удивляет реально нет метода аюв реальном в ремени менять ? Анимации нету на нажатие кнопок как то сухо или это специально?
@crazy-man
@crazy-man Жыл бұрын
Хотя анимации есть в настройках нету кнопок анимации просто
@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-андроиде тупо ждет пока проект соберется? полдня? во флаттере же быстрее разработка идет.
@lumixbrothers
@lumixbrothers 3 ай бұрын
Люблю QT
@nikson9334
@nikson9334 10 ай бұрын
Композ мне понравился куда больше
@AndroidBroadcast
@AndroidBroadcast 10 ай бұрын
Поддерживаю, но идеи интересные в QT есть
@Polite_person_
@Polite_person_ Жыл бұрын
Прикольное интервью. И технология интересная, но ну на фиг) Кстати хотят я сам топлю за KMM, но хотелось бы интервью с путевым flutter разработчиком, который не будет тупо нахваливать свое болото, а объективно расскажет все плюсы и минусы. Думаю подобный контент будет многим интересен.
@AndroidBroadcast
@AndroidBroadcast Жыл бұрын
Окт
@DaniilK-hq5go
@DaniilK-hq5go Жыл бұрын
Спасибо за выпуск, если бы у собеседуемого был микрофон нормальный было бы вообще огонь.
@AndroidBroadcast
@AndroidBroadcast Жыл бұрын
Не всегда получается сделать все как нужно, но стараемся
@parennasubaru
@parennasubaru Жыл бұрын
Ты опоздал с QT минимум на 5 лет. У меня исторически несколько проектов QT/QML постепенно перевожу клиентов на флаттер повторно оплачивая работы.
@singlebw4065
@singlebw4065 6 ай бұрын
Как спользовать React js + OS Aurora?
@VoroninSergey
@VoroninSergey Жыл бұрын
А что на счет материал дизайна?
@AndroidBroadcast
@AndroidBroadcast Жыл бұрын
Вряд ли он есть в QT
@eukalyptusbonb0n
@eukalyptusbonb0n Жыл бұрын
в qml есть модуль, как надстройка для контроллеров с material дизайном. controls.material
@-31_75
@-31_75 9 ай бұрын
Jetpack Compose чем-то похож на Qt
@AntonKashcheev
@AntonKashcheev Жыл бұрын
Говорите "Qt", в заголовке "QT" (QuickTime) :( UPD. А ещё говорите "КьюТи", хотя правильнее "Кьют".
@user-hl9yr5po5i
@user-hl9yr5po5i 3 ай бұрын
КУ ТЭ :)))), так что Кью ти ещё не самый худший вариант
@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 и интеграцию с ОС.
@user-dq7ld8np1w
@user-dq7ld8np1w Жыл бұрын
Я слышал, что QT более не работает в России... Как с этим ситуация?
@AndroidBroadcast
@AndroidBroadcast Жыл бұрын
Ребята использовали его открытую версию, подробностей не расскажу
@mirzaevtimur4519
@mirzaevtimur4519 Жыл бұрын
VPN в помощь
@silvermedved3562
@silvermedved3562 5 ай бұрын
qt -opensource проект, то что qt ограничили это комерческую лицензию и прекомпилные либы
@terentyeff
@terentyeff 10 ай бұрын
Это он еще в исходниках андроида не копался. Там такой 3,1415926535здец. Особенно после выхода Project Treble(Generic System Image)
@AndroidBroadcast
@AndroidBroadcast 10 ай бұрын
Что именно? Можно здесь или на почту kirill@androidbroadcast.dev
@terentyeff
@terentyeff 10 ай бұрын
@@AndroidBroadcast к примеру, при отключении зависимости в стандартном лаунчере от поискового движка(в AOSP. Там, где даже сервисов Гугла нет, как и поиска тоже), ломало всю сборку напрочь, хотя там ничего такого от него не было. При том, что даже с этой зависимостью не собиралось, ибо нужны были исходники GApps =). Ну или вот, при сборке обычного system.img, если нет в device tree конфига с ядром, то сборка тоже ломалась. Постоянно приходилось зависимости отключать. Благо, потом патчик написали и они до сих пор работали, до выхода Android 13. Сейчас снова приходится лезть ручками и отключать все зависимости =) До версии 8.0 со сборкой проблем вообще не было никаких, максимум, чисто под устройство правки. И то, конфигов в device tree =). Собиралось абсолютно всё.
@lumixbrothers
@lumixbrothers 3 ай бұрын
И да под мобилу на qt написана телега
@Alexey.Lapshin
@Alexey.Lapshin Жыл бұрын
"Ну были значит 1960ые, мы выбрали cobol, потому что никаких си и паскалей ещё не было..."
@AndroidBroadcast
@AndroidBroadcast Жыл бұрын
🥱
@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). Превью больше для хайпа и привлечения внимания
@lolkekadylbek
@lolkekadylbek 7 ай бұрын
Ну всё, перехожу на кьюти. Потому что не надо лазить в стаковерфлоу.
@serhioramires3166
@serhioramires3166 9 ай бұрын
Звук напряг
@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 потому, что так конечному пользователю-кодеру проще, удобнее, комфортнее и быстрее в конечном случае. Для того и делаются разные слои, уровни и каждый инструмент-язык под него.
@user-mp3zd8ob7y
@user-mp3zd8ob7y Жыл бұрын
Я запрещаю ругать flutter
@ddsdcww434-wi4fo
@ddsdcww434-wi4fo Жыл бұрын
лол иди давай со своим этим самым
@hotmule
@hotmule Жыл бұрын
Клуб кроссплатформенного мастерства двумя этажами ниже
@andreyshishkin4958
@andreyshishkin4958 Жыл бұрын
Я запрещаю вам запрещать 🙂
@user-zi8zw3yf2t
@user-zi8zw3yf2t Жыл бұрын
А я расзапрещаю обратно
@andreyshishkin4958
@andreyshishkin4958 Жыл бұрын
@@user-zi8zw3yf2t Все бы ничего, но такого слова нет 🙂
@user-hj6cf8zm2f
@user-hj6cf8zm2f 9 ай бұрын
Qml + qt = прощай лаконичность. Пишу два года на данном стеке. Любое изменение в плюсишной модели - это боль. Qml документация - это боль, сколько не боролся, но излишней информации придостаточно, как сделать то, что тебе никогда не понадобиться и испортит код. С выпуском обновлений для qml новых фич становиться больше, а старые фичи остаются. Разобраться с нагромождением новичку будет очень сложно. А курсов и пособий в инете мало. Если брать чистый qt, то никаких проблем не возникает, документация ок, код работает, ui строиться, но если связать это с qml... моя психика не выдержала, и теперь Я плавно перехожу на android разработку.
@alexeyprokhach5517
@alexeyprokhach5517 Жыл бұрын
Прикольно, чувак пишет на qt, а сам в гноме сидит, который на gtk))
@_plaha_
@_plaha_ Жыл бұрын
Можно и яму палкой выкопать, но зачем?
@AndroidBroadcast
@AndroidBroadcast Жыл бұрын
Когда нет ничего кроме палки, а яма нужна - это неплохой вариант
@_plaha_
@_plaha_ Жыл бұрын
@@AndroidBroadcast только мы не в каменном веке, и инструменты у нас есть
@yetanotherandreyev
@yetanotherandreyev Жыл бұрын
Пробовали Qt/QML? Если нет, рекомендую. Может захотеться называть палками другие проекты, которыми пользовались до этого.
@_plaha_
@_plaha_ Жыл бұрын
@@yetanotherandreyev пробовал Qt. Очень полезная, а главное нужная технология. На город в 3млн целых 0 работ. Даже на compose 30 есть. С этим мусором можно только, ну вы знаете куда, пойти
@yetanotherandreyev
@yetanotherandreyev Жыл бұрын
​@@_plaha_, неплохая попытка поспорить, но с таким же успехом можно искать php-фреймворки и радоваться вакансиям ( ͡° ͜ʖ ͡°)
@Vlad-sw4zd
@Vlad-sw4zd Жыл бұрын
Бля,неужели реально у кого-то принято называть кутэ - кьют?
@AndroidBroadcast
@AndroidBroadcast Жыл бұрын
Все мы начинаем переиначивать слова. Например, говорим софт, а не софтваре. Тот же SQLite мало кто произносит как авторы говорят
@user-sb8de5tz9x
@user-sb8de5tz9x Жыл бұрын
Кьют правильно, много лет назад когда сам писал на нём интересовался и где-то на просторах сети нашёл комментарий от тех кто это название и придумал 😄
@SergeyGalin
@SergeyGalin Жыл бұрын
Qt читается как "cutie" (милашка, красотка)
@IlyaLesnoy
@IlyaLesnoy 13 күн бұрын
Кросс платформа зло. Вы лишаете индустрию сотен человек часов. Зачем писать один раз и будет работать везде (с незначительные правками) когда можно писать отдельное приложение для Андроид, МакОс, АйОс, Виндовс, Линукс и запрашивать у бизнеса за это деньги. Да и по итогу в теории получится шустрее и оптимальнее если нативно все а не через кросплатформ прослойки. Нативно имею ввиду относительно Андроид само собой это Джава и фреймворк для гуев нативный, для Винды ВинАпи, MFC, но никак ни UWP и не Maui. Любите кодить много, пока есть такая возможность (отсылка к ии)
@johnxibai8454
@johnxibai8454 Жыл бұрын
Кто ругает flutter, тот не программист
@user-mp3zd8ob7y
@user-mp3zd8ob7y Жыл бұрын
И того мама не любит
@AndroidBroadcast
@AndroidBroadcast Жыл бұрын
🤪
@johnxibai8454
@johnxibai8454 Жыл бұрын
@@user-mp3zd8ob7y Это комплексы не полноценного программиста, или недопрограммиста, боязнь того что выяснится он дилетант, не знающий что такое .so файлы
Новости мобильной разработки 2024.1
32:17
Android Broadcast. Все об Андроид разработке
Рет қаралды 4,2 М.
Binder - как устроена работа с несколькими процессами в Android
56:44
Android Broadcast. Все об Андроид разработке
Рет қаралды 25 М.
Is it Cake or Fake ? 🍰
00:53
A4
Рет қаралды 17 МЛН
He tried to save his parking spot, instant karma
00:28
Zach King
Рет қаралды 23 МЛН
ТАМАЕВ vs ВЕНГАЛБИ. Самая Быстрая BMW M5 vs CLS 63
1:15:39
Асхаб Тамаев
Рет қаралды 3,5 МЛН
Let's Recreate the Tesla UI in Qt and QML PART 1!
51:16
MontyTheSoftwareEngineer
Рет қаралды 61 М.
Немультиплатформенные привычки Android-разработки
38:43
Android Broadcast. Все об Андроид разработке
Рет қаралды 7 М.
FPGA - это не только FPGA
48:54
Yuri Panchul
Рет қаралды 1,8 М.
Android NDK. Как писать под Android на C++
40:33
Android Broadcast. Все об Андроид разработке
Рет қаралды 19 М.
How Retrofit works. Java Dynamic Proxy. Library architecture [RU]
29:24
Android Broadcast. Все об Андроид разработке
Рет қаралды 19 М.
Новостное приложение: с нуля до публикации в Google Play. Часть 1
2:09:40
Android Broadcast. Все об Андроид разработке
Рет қаралды 22 М.
C++ Builder vs Qt что выбрать и что почитать
17:57
Александр Григорин
Рет қаралды 10 М.
Управляем Arduino с компьютера. Python + PyQt5
1:04:06
Заметки Ардуинщика
Рет қаралды 377 М.
5 НЕЛЕГАЛЬНЫХ гаджетов, за которые вас посадят
0:59
Кибер Андерсон
Рет қаралды 1,5 МЛН
КОПИМ НА АЙФОН В ТГК АРСЕНИЙ СЭДГАПП🛒
0:59
#miniphone
0:16
Miniphone
Рет қаралды 2,8 МЛН