Kotlin Multiplatform Broadcast
9.47K subscribers
838 photos
53 videos
1.13K links
Новости и фичи Kotlin, а также Kotlin Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Compose Multiplatform @compose_broadcast
iOS разработка @ios_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
Forwarded from Android Broadcast (Кирилл Розов)
На моём Boosty вы сможете найти лучшие практики и лайфхаки по использованию разных API:
👉 Как ускорить получение зависимостей из Dagger графа
👉 Делегаты классов в Kotlin при миграции между разными API
👉 Как не дать запуститься Coroutine больше одного раза. Решение в лоб и красиво

Все это доступно по подписке за 300 рублей в месяц и даже больше контента: База Знаний, эксклюзивные видео, ранний доступ, закрытый чат и много других преимуществ!

#AndroidBroadcast #Boosty
👍5🤯2🔥1
Forwarded from Android Broadcast (Кирилл Розов)
Написал статью о том почему плохо использовать подобный подход с when и как провести его правильный рефакторинг.

#AndroidBroadcast #лучшиепрактики #архитектура
🤯24👍121💯1
Forwarded from Android Broadcast
Написал разбор, что такое иммутабельный тип, как написать свой и какое важное применение он имеет в программировании. Прочитать статью можно тут, а что ссылка открылась нужно получить доступ к Базе Знаний Android разработчика.

Сделать это можно через Boosty или Telegram

#хакаемсобес #AndroidBroadcast
👍14🤯6
Forwarded from Android Broadcast
Media is too big
VIEW IN TELEGRAM
📱 За что я ненавижу Koin или чего стоит избегать при его использовании (20 мин)

Я использую Koin еще с самой первой версии, он неплохо справляется с небольшими проектами, но дальше требует работы как самурай. В видео для патронов рассказываю, что не так с Koin, как этого избегаю и какой DI нужен для KMP.

Видео доступно
на Boosty и по подписке в Telegram.

#AndroidBroadcast #koin #di #kmp #android
Please open Telegram to view this post
VIEW IN TELEGRAM
👎58👍24🔥3🤔1
Forwarded from Android Broadcast
Media is too big
VIEW IN TELEGRAM
📺 Почему вам не нужен Kotlin Multiplatform (21 мин)

01:02 Отсутствие полноценной поддержки Kotlin Multiplatform в iOS
04:36 Поиск альтернатив для библиотек и технологий
06:37 Авторы Compose Multiplatform не заботятся о поддержке UI Kit платформы
09:01 Kotlin Multiplatform не позволит значительно сэкономить во времени разработки/деньгах
14:22 Сложно убедить бизнес использовать технологию
19:02 Заключение

Смотрите видео на разных площадках:
📱 YouTube
📱 VK Video
📺 RuTube

#AndroidBroadcast
Please open Telegram to view this post
VIEW IN TELEGRAM
👎52👍29🤔5👌3
Forwarded from Android Broadcast
Media is too big
VIEW IN TELEGRAM
Новый формат собеседований под угрозой ‼️‼️‼️ Я конечно преувеличил и привлек ваше внимание. Очень важно чтобы я мог получать от вас вопросы а не просто делал постанову. Задайте свои вопрос по Kotlin что вас интересуют в https://forms.gle/D1GYYhZg7qoaqYZP8 чтобы в формате собеседования получить на них ответы

#AndroidBroadcast #собес
👍27👎14🤬10🔥3
Forwarded from Android Broadcast
Media is too big
VIEW IN TELEGRAM
📺 Организация кода в проекте | В какой пакет положить Kotlin класс (17 мин)

1:16 Куда можно класть Kotlin файлы
3:39 Как разделить код по Gradle модулям
6:23 Несколько папок с исходным кодом
7:42 Пакеты с кодом
14:03 Выделение кода в AAR/JAR библиотеки
15:37 Заключение

Смотрите видео на разных площадках:
📱 YouTube 📱 VK Video 📺 RuTube

#AndroidBroadcast #видео #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29👎7🔥5
Forwarded from Android Broadcast
This media is not supported in your browser
VIEW IN TELEGRAM
📺 Заработок на Open Source. Decompose. Будущее KMP. Аркадий Иванов (1 час 22 мин)

Интервью с Аркадием Ивановым, автором популярных библиотек Decompose и MVIKotlin, про open source, жизнь в Англии, будущее Kotlin Multiplatform.

#AndroidBroadcast #видео #kmp #decompose #mvikotlin #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43👍7👎2
Forwarded from Android Broadcast
📹 Демонстрация настройки публикации Android и KMP библиотеки (36 минут)

В новом видео показываю как настроить публикации для Android и Kotlin Multiplatform библиотеки в Gradle с новым механизмом подписи артефактов для Maven Central в 2024

#AndroidBroadcast #видео #gradle #maven #kmp #android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍4
Чтоб скрыть детали реализации внутри библиотеки, иногда авторы используют классы с внутренней реализацией. Я такой подход использовал в ViewBindingPropertyDelegate для сокрытия реализации и отказа от if:

public object ViewBindingCache {

private var impl: ViewBindingCacheImpl = ViewBindingCacheImpl.Noop

internal fun <T : ViewBinding> getInflateWithLayoutInflater(
viewBindingClass: Class<T>
): InflateViewBinding<T> {
return impl.getInflateWithLayoutInflater(viewBindingClass)
}

internal fun <T : ViewBinding> getBind(
viewBindingClass: Class<T>
): BindViewBinding<T> {
return impl.getBind(viewBindingClass)
}

public fun clear() {
impl.clear()
}

public fun setEnabled(enabled: Boolean) {
impl = if (enabled) ViewBindingCacheImpl.Default() else ViewBindingCacheImpl.Noop
}
}

private sealed interface ViewBindingCacheImpl {
class Default : ViewBindingCacheImpl { ... }
data object Noop : ViewBindingCacheImpl
}


Если бы я не использовал внутреннюю реализацию, то подход был бы такой:
public object ViewBindingCache {

private var cacheEnabled = false
private val cache = mutableMapOf<...>()

internal fun <T : ViewBinding> getInflateWithLayoutInflater(
viewBindingClass: Class<T>
): InflateViewBinding<T> {
if (cacheEnabled) {
return ...
} else {
return ...
}
}

internal fun <T : ViewBinding> getBind(
viewBindingClass: Class<T>
): BindViewBinding<T> {
if (cacheEnabled) {
return ...
} else {
return ...
}
}

public fun clear() {
...
}

public fun setEnabled(enabled: Boolean) {
cache.clear()
this.cacheEnabled = enabled
}
}


Подобный подход используют в KMP, например Jetpack ViewModel. Также скрываются реализации различных lazy делегатов в Kotlin, но через фасад метода с параметром
fun <T> lazy(mode: LazyThreadSafetyMode, initializer: () -> T): Lazy<T>


#kotlin #AndroidBroadcast #БазаЗнаний
🔥12👍7