Android Live 🤖
5.8K subscribers
49 photos
763 links
Самые свежие новости, новинки и тренды Android от практикующего разработчика.


Автор: @al_gorshkov,
Чат: @android_live_chat
Личный блог: @al_gorshkov_blog

По рекламе: @ek_gorshkova
Download Telegram
​​Релиз Koin 3.0.1
#koin #kmm

Совсем недавно вышла стабильная версия Koin — 3.0.1. Давайте кратко рассмотрим, что нового там добавилось:

🔸переход на mavenCentral вместо JCenter — это было ожидаемо, и теперь нужно поменять зависимости.
🔸поменялся состав зависимостей. Например, раньше были отдельные зависимости для Android: ViewModel, Scope. Теперь всё это объединили в единую зависимость Android. Кроме того, добавилась зависимость для Jetpack Compose, которая пока находится в нестабильной версии.
🔸стабильная поддержка KMM🎉. Наверное, это самая ожидаемая часть релиза: теперь можно подключать Koin в проекты KMM, что даёт нам ещё один крутой фреимворк для внедрения зависимостей. Проект с примером тут.
🔸правки в API, которые улучшают стабильность фреимворка и дают больше возможностей для улучшений.
🔸AndroidX теперь по умолчанию. Теперь нет поддержки support-библиотек, но я думаю, что вы уже давно мигрировали свои проекты на AndroidX.
🔸интеграция с Jetpack Compose — как уже сказал выше, зависимости выделены в отдельный модуль, но теперь также появилсь возможность использовать Koin в проектах с Jetpack Compose. Примеры приложений можно найти тут.
🔸переделали дизайн сайта с документацией. Ссылка осталась прежней.

Если нужно больше деталей — переходите на статью с анонсом релиза.
​​Популярные библиотеки для KMM
#kmm #kotlin

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

Тут есть краткий, не технический обзор SQLDelight, Decompose, Realm Kotlin Multiplatform SDK, Multiplatform Settings и Ktor.

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

Кроме этого, автор мотивирует нас, разработчиков, делать свой вклад в библиотеки для KMM, так как есть ещё огромное число областей, которые требуют своих библиотек. Если у вас есть мысли о том, чтоб «законтрибьютить» своё решение, вот вам статья для этого.

Ссылка на статью тут.
​​KMM для AppCode
#kmm

Сегодня вышла отличная новость: появился плагин для App Code, который позволяет писать Swift и Kotlin код внутри одной IDE. 🔥

Это очень круто, так как переключение между IDE — не самая удобная штука при написании таких проектов.

В будущем ребята обещают миграцию текущих .xcodeproj и .xcworkspace проектов на Gradle DSL, чтобы сделать возможным лучше соединить текущие проекты на Xcode с KMM и Android.

Звучит очень круто, мне такая кроссплатформа нравится. 💪
​​Выводы о KMM после небольшого приложения
#kmm

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

Автор рекомендуют воспользоваться туториалом от Touchlab, связанным с испльзованием KMM, выглядит действительно здорово: целая коллекция инструментов, которые помогут легче вклиниться в проект.

Ну и далее любопытный список выводов, которые будут полезны, если вы думаете о создании проекта на KMM.
Кстати, если вы хотите мигрировать текущий проект, то вот вам хороший опыт о переезде, ну и описание преимуществ, которые в результате появились. ✌🏻
​​Многопоточность и Kotlin в Яндекс.Картах на iOS
#kotlin #kmm

Тут ребята из Яндекс рассказали о своём опыте работы с Kotlin Multiplatform на примере Яндекс.Карт. Основные проблемы были связаны именно с поддержкой многопоточности на iOS, а с простыми фичами не было никаких проблем.

Узнать о том, как в итоге получилось подружить многопоточность KMM с iOS можно в этой статье.
​​Awesome KMM
#kmm #kotlin

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

Тут и плагины, которые нужны для написания приложений, и библиотеки для сети, логгирования, сохранения данных, авторизации в соц.сетях… в общем, каждый найдёт то, что ему нужно. Ну и можно предложить свою библиотеку в список, если разработчики что-то забыли добавить 😉
​​Kotlin Multiplatform Wizard
#kmm #kotlin

Кроме отличного набора библиотек для KMM, ребята из JetBrains сделали Wizard, где можно быстро создать проект под KMM, выбрав необходимые таргеты и некоторые библиотеки.

В итоге получаем пустой проект с настройками для выбранных платформ, в котором можно быстро начать писать код. Ну или можно просто скопировать настройки build.gradle, чтобы не настраивать его самостоятельно. В общем, добавляйте в закладки, пригодится. 😎
​​Jetpack Compose vs SwiftUI
#compose #kmm

Неплохая статья, где автор делится своими наблюдениями о различиях в Jetpack Compose и SwiftUI.
Кроме того, он поделился двумя версиями одного и того же приложения: под Android и iOS.

Статья будет полезна в случаях, если вы работаете над приложениями под KMM и хотите больше понять особенности работы двух платформ, а также если вы просто хотите разобраться, как работает противоположная платформа и где какие вещи сделать проще и удобнее.
​​DI.kt — фреимворк для KMM
#kmm #library

Тут ребята из Wrike выложили один из первых DI-фреимворков для KMMDI.kt.
Если вы не понимаете, зачем нужна ещё одна библиотека для DI (ведь есть Koin или Kodein), то ответ — отсутствие compile-time валидации, ведь текущие библиотеки представляют из себя service locators.

Для имногих подобная валидация является критически важной, поэтому можно рассмотреть эту библиотеку в будущих проектах.
Да, пока она alpha, поэтому стоит пользоваться ей только в своих проектах.

Ссылка на то, как её использовать тут, API выглядит простым. 🤞🏻
​​Делаем свою библиотеку под KMM
#kmm

Хороший доклад с прошедшего droidcon, где автор Kodein делится опытом для создания своей библиотеки под KMM.

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

Возможно, этот доклад будет хорошим стартом для того, чтобы начать писать свою библиотеку и заработать кучу звёзд в GitHub. 🤞
​​Kotlin Multiplatform Wizard
#kmm

Тут обновился Kotlin Multiplatform Wizard, и теперь тут стало ещё больше плюшек: можно выбрать нужные для проекта таргеты, настроить основные библиотеки для проекта, package name и прочее. Очень удобная штука, поэтому если начинаете свои проекты на KMM, то самое время сохранить страничку в закладки.

Кстати, авторы не против новых изменений от вас, так что если чего-то нет, то создавайте свои PR.🤘
​​Kermit and Crashlytics
#kmm

Полезная статья, которая рассказывает о том, как собирать краши на iOS и Android в KMM-приложениях при помощи Kermit.

На практике, сохранение стектрейса при падении приложения на iOS — не самая простая задача, если вы хотите также видеть место в Kotlin-коде, которое связано с падением. При помощи описанного логгера получается сохранить стектрейс, но только в качестве отдельного non-fatal краша.

Лучше, чем ничего: тем более, что каких-то других минусов в библиотеке не обнаружено.
​​Kotlin Multiplatform — ATOM
#kmm

Тут ребята из Jetbrains сделали новый подскаст, где будут делиться последними новостями из мира KMM.
Обещают, что выпуски будут появляться раз в месяц, и уже доступен первый из них.

Обсуждают изменения в KMM за последний год, Compose, планы по выходу в бета и другие фичи, так что выглядит весьма здоровски.
​​KMM — UI State management
#kmm

Классный цикл статей, где автор рассматривает управление состоянием View при помощи архитектуры MVI, причём и на iOS и на Android при помощи KMM.

В первой статье автор рассказывает о базовых принципах MVI и вводит те понятия, которые там используются: State, Event, SideEffect, а также делает базовую инмплементацию на примере простенького приложения. Будет полезно, если вы не очень хорошо знакомы с MVI.

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

Код супер простой и понятный, что будет полезно новичкам, которые только изучают KMM. 🤓
​​Kotlin-Swift interopedia
#kmm

Полезнейшая таблица, которая показывает совместимость между методами в Kotlin и методами в Swift.
Подобная табличка есть также и в доке от Jetbrains, но лучше использовать обе.

Будет супер-полезно, если вы разрабатываете совместное API с iOS разработчиками и договариваетесь об использовании каких-то нужных вам фич.

👨‍💻 Ну и примеры кода для каждого кейса тоже очень радуют.
​​KMM в Beta
#kmm

Отличные новости. Пару дней назад, команда Kotlin официально перевела KMM в Beta. А это значит, что теперь не будет фундаментальных изменений в самом фреймворке, ребята работают над улучшением стабильности текущих фич.

А тут ещё Google подоспел с официальным апдейтом некоторых мультиплатформенных Jetpack-библиотек, начали с Collections и DataStore, уверен, что скоро подоспеют и другие. Вдруг мы увидим мультиплатформенный Room 😁.

Ну а я очень верю в KMM и желаю команде успехов. 😉
​​KMM Knowledge Base
#kmm #kotlin

Не могу не поделиться 🔝 ресурсом, если вы работаете с KMMKMM Knowledge base.

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

Точно в закладки, чтобы не потерять! 👍
​​Compose Multiplatform Wizard
#kmm

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

Поддерживается Android, iOS, Desktop и Web. После генерации запускаете ./gradlew run и готово. 🚀

Люблю инструменты, которые упрощают жизнь, так что срочно сохраняйте в закладки.
KMMBridge
#kmm #kotlin

Наткнулся на полезный инструмент, который поможет вам в использовании KMM между iOS и Android — KMMBridge.

Он позволяет вам компилировать Kotlin-код в Xcode Framework binaries и публиковать его в публичные или приватные репозитории. По сути, можно взять часть KMM-кода, а дальше передать его своим коллегам с iOS команды.

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

Будет здорово, если поделитесь своим опытом внедрения KMM в своей команде в комментах. 🧐
Please open Telegram to view this post
VIEW IN TELEGRAM
Getting to Know Koin Annotations
#koin #kmm

Полезная статья-справочник по аннотациям в моём любимом DI-фреймворке — Koin.

Тут и про Koin DSL, и про Constructor DSL, и про аннотации. А ещё — как всё же проверять зависимости в compile time.

Кстати, Koin отлично себя показывает в мультиплатформе. 😇

Использовали в своих проектах? Как вам?
Please open Telegram to view this post
VIEW IN TELEGRAM