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

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 ก.ค. 2024
  • Взял интервью у разработчика 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

  • @sovrinfo
    @sovrinfo ปีที่แล้ว

    Спасибо за видео. Коммент в поддержку!

  • @BeDb_MeDb
    @BeDb_MeDb ปีที่แล้ว +1

    Спасибо за выпуск. Интересное видео)

  • @vladimirmartynov4747
    @vladimirmartynov4747 9 หลายเดือนก่อน

    Спасибо!

  • @user-vb4pm9kl5j
    @user-vb4pm9kl5j 9 หลายเดือนก่อน

    Откуда-нибудь можно скачать исходники демки?

  • @lumixbrothers
    @lumixbrothers 3 หลายเดือนก่อน

    Люблю QT

  • @SUPERPUPERDRONCHIK
    @SUPERPUPERDRONCHIK ปีที่แล้ว +4

    Кирилл, уж пригласил бы flutter разработчика. Тех же ребят из Surf иля Яндекс. Пока как-то в интервью обходите стороной эту технологию.

    • @AndroidBroadcast
      @AndroidBroadcast  ปีที่แล้ว

      Так оно и не про кроссплатформу и Flutter

    • @SUPERPUPERDRONCHIK
      @SUPERPUPERDRONCHIK ปีที่แล้ว +1

      Прошу прощения за не совсем корректный первоначальный комментарий. Я имел ввиду интервью во множественном числе. В ваших интервью лишь вскользь упоминается Flutter. Хотя сейчас это, пожалуй, самое популярное кроссплатформенное решение, позволяющее шарить не только бизнес-логику, но и UI. Я понимаю, вам нравится больше KMM. Но не рассказывая о возможностях Flutter, на мой взгляд, не доносите общую картину мобильной индустрии.

    • @AndroidBroadcast
      @AndroidBroadcast  ปีที่แล้ว

      @@SUPERPUPERDRONCHIK что-то путаете вы с журналистким каналом и расследованиями. Я не гонюсь сравнить все. Никто вам нигде не даст объективной точки зрения, а выразит свою позицию. Мне Flutter не заходит, желания в нем разбираться нет

    • @user-jf3iu8vi7k
      @user-jf3iu8vi7k ปีที่แล้ว +1

      @@AndroidBroadcast а ты попробуй разберись. и не тормози всех за собой своим нативным андроидом. ты уже про непопулярный и C++ ный QT заговорил... тебе уже нечего рассказывать, ну присмотрись ты к тому что предлагает текущее время!

    • @user-jf3iu8vi7k
      @user-jf3iu8vi7k ปีที่แล้ว

      Да кстати... сколько разработчик на kotlin/java-андроиде тупо ждет пока проект соберется? полдня? во флаттере же быстрее разработка идет.

  • @parennasubaru
    @parennasubaru ปีที่แล้ว

    Ты опоздал с QT минимум на 5 лет. У меня исторически несколько проектов QT/QML постепенно перевожу клиентов на флаттер повторно оплачивая работы.

  • @ari_514
    @ari_514 ปีที่แล้ว

    Можно посмотреть приложение для ios / android - Ubego
    Написано на Qt / QML

  • @Polite_person_
    @Polite_person_ ปีที่แล้ว +10

    Прикольное интервью. И технология интересная, но ну на фиг) Кстати хотят я сам топлю за KMM, но хотелось бы интервью с путевым flutter разработчиком, который не будет тупо нахваливать свое болото, а объективно расскажет все плюсы и минусы. Думаю подобный контент будет многим интересен.

  • @botsynth
    @botsynth ปีที่แล้ว +2

    Интересно, на чем сделаны яндекс карты? Такси для ios они, вроде бы, делали на флаттере.

    • @querylab
      @querylab ปีที่แล้ว

      не такси, а приложение для таксистов "разные приложения"

  • @DaniilK-hq5go
    @DaniilK-hq5go ปีที่แล้ว +8

    Спасибо за выпуск, если бы у собеседуемого был микрофон нормальный было бы вообще огонь.

    • @AndroidBroadcast
      @AndroidBroadcast  ปีที่แล้ว +4

      Не всегда получается сделать все как нужно, но стараемся

  • @AntonKashcheev
    @AntonKashcheev ปีที่แล้ว +1

    Говорите "Qt", в заголовке "QT" (QuickTime) :(
    UPD. А ещё говорите "КьюТи", хотя правильнее "Кьют".

    • @user-hl9yr5po5i
      @user-hl9yr5po5i 4 หลายเดือนก่อน

      КУ ТЭ :)))), так что Кью ти ещё не самый худший вариант

  • @nikson9334
    @nikson9334 11 หลายเดือนก่อน

    Композ мне понравился куда больше

    • @AndroidBroadcast
      @AndroidBroadcast  11 หลายเดือนก่อน

      Поддерживаю, но идеи интересные в QT есть

  • @-31_75
    @-31_75 10 หลายเดือนก่อน

    Jetpack Compose чем-то похож на Qt

  • @crazy-man
    @crazy-man ปีที่แล้ว +1

    Сколько пользуюсь 2 гис, только заметил язык чтобы поменять применить нужно перезагрузить приложение) это удивляет реально нет метода аюв реальном в ремени менять ? Анимации нету на нажатие кнопок как то сухо или это специально?

    • @crazy-man
      @crazy-man ปีที่แล้ว

      Хотя анимации есть в настройках нету кнопок анимации просто

  • @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 =). Собиралось абсолютно всё.

  • @VoroninSergey
    @VoroninSergey ปีที่แล้ว

    А что на счет материал дизайна?

    • @AndroidBroadcast
      @AndroidBroadcast  ปีที่แล้ว

      Вряд ли он есть в QT

    • @eukalyptusbonb0n
      @eukalyptusbonb0n ปีที่แล้ว +2

      в qml есть модуль, как надстройка для контроллеров с material дизайном. controls.material

  • @user-dq7ld8np1w
    @user-dq7ld8np1w ปีที่แล้ว

    Я слышал, что QT более не работает в России... Как с этим ситуация?

    • @AndroidBroadcast
      @AndroidBroadcast  ปีที่แล้ว

      Ребята использовали его открытую версию, подробностей не расскажу

    • @mirzaevtimur4519
      @mirzaevtimur4519 ปีที่แล้ว

      VPN в помощь

    • @silvermedved3562
      @silvermedved3562 5 หลายเดือนก่อน

      qt -opensource проект, то что qt ограничили это комерческую лицензию и прекомпилные либы

  • @duoduoo6732
    @duoduoo6732 ปีที่แล้ว

    какие еще есть способы писать на нативном C++ андройд приложения? кроме Qt

    • @AndroidBroadcast
      @AndroidBroadcast  ปีที่แล้ว +1

      Android NDK

    • @duoduoo6732
      @duoduoo6732 ปีที่แล้ว

      @@AndroidBroadcast а в unity3d например можно писать на си шарп. Он в итоге код превращает в яву и выполняется не как .so а как Ява обычная?

    • @AndroidBroadcast
      @AndroidBroadcast  ปีที่แล้ว +1

      @@duoduoo6732 насколько знаю нет. Там своя виртуальная машина для выполнения C# скриптов

    • @SergeyGalin
      @SergeyGalin ปีที่แล้ว

      @@duoduoo6732 емнип, он тащит в APK рантайм для шарпов.

    • @SergeyGalin
      @SergeyGalin ปีที่แล้ว

      @@AndroidBroadcast Это немного про разное, NDK это набор компилятора, системных библиотек и тд (которым, в том числе, собирается приложение на Qt), а сам Qt про UI и интеграцию с ОС.

  • @Alexey.Lapshin
    @Alexey.Lapshin ปีที่แล้ว

    "Ну были значит 1960ые, мы выбрали cobol, потому что никаких си и паскалей ещё не было..."

  • @lumixbrothers
    @lumixbrothers 3 หลายเดือนก่อน

    И да под мобилу на qt написана телега

  • @singlebw4065
    @singlebw4065 7 หลายเดือนก่อน

    Как спользовать React js + OS Aurora?

  • @stspvs
    @stspvs ปีที่แล้ว +1

    Одним из препятствий разработки на Qt явплатный QtCreator, который из России сейчас и не купишь

    • @AndroidBroadcast
      @AndroidBroadcast  ปีที่แล้ว

      Ребята собирают свою сборку и можно пользоваться

    • @yetanotherandreyev
      @yetanotherandreyev ปีที่แล้ว +1

      Исходный код Qt и Qt Creator открытый и никуда не делся. Например, готовые бинарники как были доступны в линукс-дистрибутивах, так и остались. Но, да, коммерческая европейская компания Qt Company сейчас не заключает договора в России и не пускает к своим сборкам с российских адресов.

    • @SergeyGalin
      @SergeyGalin ปีที่แล้ว

      QtCreator платный не нужен. Ценные платные вещи это Quick Compiler и возможность статической линковки.

  • @lolkekadylbek
    @lolkekadylbek 8 หลายเดือนก่อน

    Ну всё, перехожу на кьюти. Потому что не надо лазить в стаковерфлоу.

  • @vodnickk3134
    @vodnickk3134 ปีที่แล้ว +1

    Да почему такой постоянный хейт Flutter со стороны Android разработчиков? Что вам плохого сделала данная технология? Просто убила надпись в превью Flutter больше не нужен, как будто это что-то плохое... Вот уже как 4-ый месяц пришел на Flutter с нативного Android и не хочу обратно и не хочу делать какой-то хейт в сторону нативной разработки

    • @sauvignonblanc5086
      @sauvignonblanc5086 ปีที่แล้ว

      Обычные токсики) Не обращай внимания)

    • @AndroidBroadcast
      @AndroidBroadcast  ปีที่แล้ว

      Я против Flutter ничего не имею. Технология справляется со своей задачей, но лично у меня предпочтения другие (явно не QT). Превью больше для хайпа и привлечения внимания

  • @bulsond
    @bulsond ปีที่แล้ว +8

    Йо. Писать на языке без сборщика мусора еще то удовольствие. Плюсы годятся для написания систем, драйверов. Для прикладных задач есть языки с более комфортной работой. Да и синтаксис плюсовый в 21 веке уже выглядит старомодно. А так то можно упороться и на GO с Fyne писать под мобилки.
    С Flutterом сравнивать смешно. Во флаттере запускаешь один раз эмулятор, и редактируешь UI и тут же видишь результат, а не как в этой демке: две строчки добавил -> запускаешь на выполнение, останавливаешь, меняешь в коде еще пару строк -> опять запускаешь, смотришь, убиваешь, снова правишь и т.д. Как в старые добрые времена лет 20 назад ага? И это еще быстро собирается, а если нужно ждать перед каждым запуском по 3-4мин? Еще то удовольствие будет.

    • @Alexey.Lapshin
      @Alexey.Lapshin ปีที่แล้ว +3

      Там вроде смарт-поинтеры есть.
      Тут скорее вопрос больше к тому, насколько все будет лагать и тормозить на мобиле среднестатистического пользователя с использование не "старомодных синтаксисов" (вообще это крайне упоротый критерий, как определять новомодность, старомодность и на что это влияет?)

    • @bulsond
      @bulsond ปีที่แล้ว

      @@Alexey.Lapshin "вообще это крайне упоротый критерий, как определять новомодность, старомодность и на что это влияет?" А я вам скажу на что влияет. На читаемость и понимаемость кода, а значит на поддерживаемость.
      А про лаги и тормоза излюбленная тема, да, тех кто к месту и не к месту пропагандирует использование языков предназначенных прежде всего для системного программирования, а не прикладного каковым является написание обычных мобильных приложений. Давайте выйграем еще пару десятков наносекунд на выполнении этого участка кода написав его на ассемблере! Только вот обычная среднестатестическая мобильная аппликуха, ничего не вычисляет, а только бегает в сеть к бэкенду и отображает данные полученные с него и вообщем то больше ничего не делает, может еще в локальную БД что-то записывает. Таким образом плюсы здесь вряд ли дадут хоть какое-то ощутимое преимущество, а вот сложности в разработке добавять без сомнения.
      Я конечно не знаю, почему 2гис выбрала такую платформу для своего приложения, видимо это было оправданно какими-то весомыми соображениями. Ну, ОК тогда.

    • @yetanotherandreyev
      @yetanotherandreyev ปีที่แล้ว +1

      @@bulsond, в ответ на ваше исходное сообщение:
      Сборщик мусора имеется для декларативной среды, где обрабатывается QML и JS (ECMAScript). Одно из отличий по сравнению со средой браузеров в том, что нет объекта window или DOM API.
      Для обновления декларативной разметки на ходу есть проект QML Live (Luxoft). Также лайвкодинг прямо в браузере (webasm) можно попробовать в проекте QML Online (KDE).
      С Flutter сравнивать смешно, но для меня по другой причине. Гугл продает то, что уже работает много лет, но, как обычно, имеет "фатальный недостаток". И, если что, библиотека графики флаттера, как и хрома -- это skia, она на плюсах.
      Так что не вижу причин холиварить на пустом месте

    • @Alexey.Lapshin
      @Alexey.Lapshin ปีที่แล้ว +7

      @@bulsond не, ну если вы не умеете в плюсы, это не значит что все не умеют, и это будет тяжело поддерживать

    • @bulsond
      @bulsond ปีที่แล้ว

      @@yetanotherandreyev Архитектура Flutter как раз и подтверждает мою мысль. В основе база написанная на языке системного уровня - на C++. А сверху прикладной уровень написанный на дарте. И пользователь фреймворка пишет на языке прикладном, на Dart потому, что так конечному пользователю-кодеру проще, удобнее, комфортнее и быстрее в конечном случае. Для того и делаются разные слои, уровни и каждый инструмент-язык под него.

  • @serhioramires3166
    @serhioramires3166 9 หลายเดือนก่อน

    Звук напряг

  • @Vlad-sw4zd
    @Vlad-sw4zd ปีที่แล้ว

    Бля,неужели реально у кого-то принято называть кутэ - кьют?

    • @AndroidBroadcast
      @AndroidBroadcast  ปีที่แล้ว

      Все мы начинаем переиначивать слова. Например, говорим софт, а не софтваре. Тот же SQLite мало кто произносит как авторы говорят

    • @user-sb8de5tz9x
      @user-sb8de5tz9x ปีที่แล้ว

      Кьют правильно, много лет назад когда сам писал на нём интересовался и где-то на просторах сети нашёл комментарий от тех кто это название и придумал 😄

    • @SergeyGalin
      @SergeyGalin ปีที่แล้ว

      Qt читается как "cutie" (милашка, красотка)

  • @user-hj6cf8zm2f
    @user-hj6cf8zm2f 9 หลายเดือนก่อน +1

    Qml + qt = прощай лаконичность. Пишу два года на данном стеке. Любое изменение в плюсишной модели - это боль. Qml документация - это боль, сколько не боролся, но излишней информации придостаточно, как сделать то, что тебе никогда не понадобиться и испортит код. С выпуском обновлений для qml новых фич становиться больше, а старые фичи остаются. Разобраться с нагромождением новичку будет очень сложно. А курсов и пособий в инете мало. Если брать чистый qt, то никаких проблем не возникает, документация ок, код работает, ui строиться, но если связать это с qml... моя психика не выдержала, и теперь Я плавно перехожу на android разработку.

  • @IlyaLesnoy
    @IlyaLesnoy หลายเดือนก่อน

    Кросс платформа зло. Вы лишаете индустрию сотен человек часов. Зачем писать один раз и будет работать везде (с незначительные правками) когда можно писать отдельное приложение для Андроид, МакОс, АйОс, Виндовс, Линукс и запрашивать у бизнеса за это деньги. Да и по итогу в теории получится шустрее и оптимальнее если нативно все а не через кросплатформ прослойки. Нативно имею ввиду относительно Андроид само собой это Джава и фреймворк для гуев нативный, для Винды ВинАпи, MFC, но никак ни UWP и не Maui. Любите кодить много, пока есть такая возможность (отсылка к ии)

  • @alexeyprokhach5517
    @alexeyprokhach5517 ปีที่แล้ว +4

    Прикольно, чувак пишет на qt, а сам в гноме сидит, который на gtk))

  • @user-mp3zd8ob7y
    @user-mp3zd8ob7y ปีที่แล้ว +19

    Я запрещаю ругать flutter

    • @ddsdcww434-wi4fo
      @ddsdcww434-wi4fo ปีที่แล้ว +4

      лол
      иди давай со своим этим самым

    • @hotmule
      @hotmule ปีที่แล้ว +5

      Клуб кроссплатформенного мастерства двумя этажами ниже

    • @andreyshishkin4958
      @andreyshishkin4958 ปีที่แล้ว +2

      Я запрещаю вам запрещать 🙂

    • @user-zi8zw3yf2t
      @user-zi8zw3yf2t ปีที่แล้ว +1

      А я расзапрещаю обратно

    • @andreyshishkin4958
      @andreyshishkin4958 ปีที่แล้ว

      @@user-zi8zw3yf2t Все бы ничего, но такого слова нет 🙂

  • @_plaha_
    @_plaha_ ปีที่แล้ว +3

    Можно и яму палкой выкопать, но зачем?

    • @AndroidBroadcast
      @AndroidBroadcast  ปีที่แล้ว

      Когда нет ничего кроме палки, а яма нужна - это неплохой вариант

    • @_plaha_
      @_plaha_ ปีที่แล้ว

      @@AndroidBroadcast только мы не в каменном веке, и инструменты у нас есть

    • @yetanotherandreyev
      @yetanotherandreyev ปีที่แล้ว +2

      Пробовали Qt/QML? Если нет, рекомендую. Может захотеться называть палками другие проекты, которыми пользовались до этого.

    • @_plaha_
      @_plaha_ ปีที่แล้ว +1

      @@yetanotherandreyev пробовал Qt. Очень полезная, а главное нужная технология. На город в 3млн целых 0 работ. Даже на compose 30 есть. С этим мусором можно только, ну вы знаете куда, пойти

    • @yetanotherandreyev
      @yetanotherandreyev ปีที่แล้ว

      ​@@_plaha_, неплохая попытка поспорить, но с таким же успехом можно искать php-фреймворки и радоваться вакансиям ( ͡° ͜ʖ ͡°)

  • @johnxibai8454
    @johnxibai8454 ปีที่แล้ว +11

    Кто ругает flutter, тот не программист

    • @user-mp3zd8ob7y
      @user-mp3zd8ob7y ปีที่แล้ว +3

      И того мама не любит

    • @AndroidBroadcast
      @AndroidBroadcast  ปีที่แล้ว +1

      🤪

    • @johnxibai8454
      @johnxibai8454 ปีที่แล้ว +1

      @@user-mp3zd8ob7y Это комплексы не полноценного программиста, или недопрограммиста, боязнь того что выяснится он дилетант, не знающий что такое .so файлы