Немультиплатформенные привычки Android-разработки

2024 ж. 14 Мам.
5 780 Рет қаралды

Алексей Панов делится тем, как Android разработчику начать писать на Kotlin Multiplatform и отучиться от платформенных привычек
🔗 Каналы "Android Broadcast" taplink.cc/android_broadcast
✉️ Написать Кирилл kirill@androidbroadcast.dev
🔗 Канал Алексея в TG t.me/+1r1oSeZxPuMxZjE6
🔗 Канал Compose Broadcast в TG t.me/+P5Q4Xrye_uo4NTA6
🔗 Канал Kotlin Broadcast в TG t.me/+nPKsnmtOE6I5N2Iy
#kotlin #multiplatform #androiddev #android #программирование #kotlin #КириллРозов #андроид #androidbroadcast
0:00 Вступление
0:18 Для кого доклад
0:38 План
1:19 Об эксперте
2:35 Важно!
2:46 KMP Стек технологий
11:32 Переход с Java API
18:01 Переход с Android API
29:03 Использование Compose
36:07 Итоговые советы
37:47 Заключение

Пікірлер
  • 🔗 Каналы "Android Broadcast" taplink.cc/android_broadcast 🔗 Канал Compose Broadcast в TG t.me/+P5Q4Xrye_uo4NTA6 🔗 Канал Kotlin Broadcast в TG t.me/+nPKsnmtOE6I5N2Iy

    @AndroidBroadcast@AndroidBroadcastАй бұрын
  • спасибо за весь ваш контент!

    @user-gj5rj2ig6i@user-gj5rj2ig6i27 күн бұрын
  • Алексей, спасибо большое за доклад.

    @dmitriymitroshin7525@dmitriymitroshin7525Ай бұрын
  • Много полезной информации. Спасибо.

    @Libra7by@Libra7byАй бұрын
  • Спасибо за доклад, решил пока не переходить ;)

    @kaisar.yeldes@kaisar.yeldes21 күн бұрын
  • А превью для ImageVector завезли чтобы было приемлемо использовать их?

    @user-zi8zw3yf2t@user-zi8zw3yf2tАй бұрын
    • Ну конкретно для ImageVector нет миниатюры, чтобы сразу посмотреть какая иконка. Но в Compose Preview они вполне себе отображаются

      @AJIEKC96@AJIEKC96Ай бұрын
    • Я подозреваю, что это делает плагин к Идее. При чем тут непосредственно KMP? Можно поставить (наверное, не пробовал) поставить плагин от андроид-студии и получить тот же эффект

      @m0rtis-nwo@m0rtis-nwoАй бұрын
  • А что на счет PreCompose навигации не сказал? Тоже работа с зависимостями, есть viewmodel

    @user-xl5yr1dr4s@user-xl5yr1dr4sАй бұрын
    • Эти навигации появляются как грибы после дождя, не вижу смысла все упоминать, тут насколько вижу просто скопировали API Jetpack Navigation Compose, что не очень хорошо

      @AJIEKC96@AJIEKC96Ай бұрын
    • Навигации всегда так появляются. Кажется сделать простое и универсальное решение невозможно, поэтому и такой лес навигаций

      @AndroidBroadcast@AndroidBroadcastАй бұрын
  • Не в минус, но забавно было слышать про Ktorfit "библиотеку непонятно кто развивает", а в слайде с Decomposе есть упоминание Аркадия, то есть тоже написан одним разработчиком)

    @bulatgalimov7677@bulatgalimov767726 күн бұрын
    • Все так, политика двойных стандартов 😀 Просто Аркадия я знаю, и это не первая его популярная либ, и есть уверенность, что он ее не забросит, но в случае чего я беру на себя эти риски и буду готов самостоятельно поддерживать эту либу, которую я затащил в проект

      @AJIEKC96@AJIEKC9625 күн бұрын
    • Лучше всего смотреть на статистику в Github: активность, когда версии выходили, как много issues и пр

      @AndroidBroadcast@AndroidBroadcast20 күн бұрын
  • В отличии от того же Flutter KMP можно использовать когда в приложении нужны нативные фичи, например работа с блютусом, при этом у KMP высокая производительность. Возникает глупый вопрос, а есть ли кейсы, когда нам подойдёт ИСКЛЮЧИТЕЛЬНО нативная разработка отдельно для iOS и Android вместо KMP? Может ли KMP заменить всю привычную нам сейчас нативную мобильную разработку в будущем ?

    @user-ps6mg2eb8u@user-ps6mg2eb8u10 күн бұрын
    • Выделить общие части всегда можно. Очень сложно выделить общие части при работе с API специфичным под желехо: медиа процессинг, Bluetooth, доступ к чипам и пр.

      @AndroidBroadcast@AndroidBroadcast9 күн бұрын
  • Retrofit -> ktor

    @alexanderchip988@alexanderchip988Ай бұрын
    • Retrofit -> Ktorfit

      @AndroidBroadcast@AndroidBroadcastАй бұрын
  • Про вьюмодель не понятно ничего. Какие-то компоненты, какие-то сторы, какие-то контейнеры.

    @trollberserker1515@trollberserker151528 күн бұрын
    • Почитайте статью на Хабре про "View Model не обязательно наследоваться от ViewModel", там хорошо описан данный способ ухода от наследования

      @AJIEKC96@AJIEKC9628 күн бұрын
    • Так это все еще с ViewModel c Android идет

      @AndroidBroadcast@AndroidBroadcast20 күн бұрын
  • Остаётся вопрос, зачем это всё нужно, если есть Flutter+Dart, который охватывают не только мобильную разработку, но и десктоп. Это не слова в небо, я писал и на java, и на kotlin, пока не появился Flutter. Если сейчас встанет вопрос о написании любого приложения, то только Flutter. Я понимаю, что для разработки плагинов, нужно будет опускаться до нативного кода и писать на swift и kotlin, но только там, и то всё что может пригодиться, уже написано.

    @mrgor4505@mrgor4505Ай бұрын
    • KMP и Compose тоже прекрасно поддерживают десктоп, поддержка WEB также есть и в KMP и Flutter, но везде ужасная. Flutter больше про новые приложения с единым UI здесь и сейчас, а KMP это больше про существующие приложения, в них KMP легко встраивать постепенно в отличие от Flutter, а через годик другой Compose Multiplatform будет ничем не хуже Flutter и тогда уже не понятно, зачем вообще нужен будет Flutter

      @AJIEKC96@AJIEKC96Ай бұрын
    • @@AJIEKC96 Про "годик другой" Алексей Гладков повторяет нам уже как годик другой и все никак. Вот-вот, ща-ща-ща будет, ну вот еще чуть-чуть, допилят то и добавят это и полетим, вот да-да-да уже совсем скоро =) Правда за это время Flutter улетит в космос. А потом, ой, ну не смогла я)

      @Polite_person_@Polite_person_Ай бұрын
    • @@Polite_person_ Ну поживем увидим, с огромной вероятностью все останется на плаву, так и будут запускать проекты на React Native, Flutter, KMP, нативные, поэтому не вижу смысла тут спорить

      @AJIEKC96@AJIEKC96Ай бұрын
    • @@AJIEKC96 Вот это уже более объективно. Вопрос в том, у кого будет самый жирный кусок пирога.

      @Polite_person_@Polite_person_Ай бұрын
    • Кстати, отличное замечание про кусок пирога. Почему-то Дарт и Флаттер этот кусок так и не отхватили, хотя лет им не мало. И почему-то Гугл не делает Дарт основным языком для Андроида, например. В общем, постановка вопроса "зачем нужно вот это, если есть вот это" сама по себе проигрышна. Я, например, в своё время так устал от js, что с огромным нетерпением жду любую технологию, которая позволит ничего не писать на js для браузера. В этом смысле KMP для меня сильно предпочтительнее, потому что я обожаю Котлин и его синтаксический сахар (думаю, у меня уже синтаксический кариес). Дарт пробовал лет пять назад и он мне тогда не очень зашел, да и времени было немного для нормального в него погружения. А на KMP я написал боевое приложение на работе, которое прямо в браузере строит граф. Его можно зумить, перемещать мышкой, перемещать отдельно ноды с сохранением граней и т.д. И мне очень понравилось - и результат, и процесс, и как выглядит код (для меня это важно).

      @m0rtis-nwo@m0rtis-nwoАй бұрын
  • Явным лидером является "Decompose"... ахахахахаах Ага, щяс будем 3-4 класса писать, чтоб только навигация отработала. Из более менее адекватных там только Voyager

    @_velord@_velordАй бұрын
    • Я тоже удивился но решение популярно, хоть и сложное в использовании

      @AndroidBroadcast@AndroidBroadcastАй бұрын
    • Не знаю, я попробовал в одном проекте - мне понрваилось в целом. Там не столько про навигацию, сколько про фича-компонетны и отделение логики от ui.

      @m0rtis-nwo@m0rtis-nwoАй бұрын
    • Сейчас мельком глянул Voyager. Мне кажется, это затаскивание за уши андроидовских ВьюМодели и Активити в мультиплатформу. Почему, если мне нужна только навигация, мне навязывают подход к построению архитектуры в целом? Так себе план.

      @m0rtis-nwo@m0rtis-nwoАй бұрын
  • Актуально ли учить разработку и программирование? Часто слышу в Интернете от различных инженеров-разработчиков и просто людей из индустрии, что не надо на это тратить время, потому что скоро ИИ и нейросети заменят программистов...

    @MainEditor0@MainEditor0Ай бұрын
    • Актуально, никто никого не заменит, а будет больше помощником программиста, но заменит тех, кто не хочет развиваться и меняться в условиях быстро меняющегося мира

      @AJIEKC96@AJIEKC96Ай бұрын
    • @@AJIEKC96 спасибо за ответ, такая позиция помогает сохранять мотивацию во время учёбы!

      @MainEditor0@MainEditor0Ай бұрын
    • Пока они заменят вы успеете отучиться и уже начать зарабатывать, а ИИ еще будут законами вставлять палки в колеса чтобы они не лишали людей работы

      @AndroidBroadcast@AndroidBroadcast20 күн бұрын
  • О боже еще один эксперт со своим экспертным мнением о преимуществах великолепной технологии KMP

    @_velord@_velordАй бұрын
    • Все с нетерпением ждут вашего экспертного мнения на эту тему.

      @m0rtis-nwo@m0rtis-nwoАй бұрын
    • Я так понимаю человек в восторге, даже высшие силы благодарит

      @AndroidBroadcast@AndroidBroadcast20 күн бұрын
  • Очень полезный материал. Спасибо!

    @ruzoompartygmail4273@ruzoompartygmail4273Ай бұрын
KZhead