#JVM
Tonnes of fun with Kotlin
Kotlin упростил жизнь разработчиков, закрыв множество кода от глаз, генерируя его. Но не всегда так очевидно и нужно быть внимательным:
👉 Extention функции не всегда статические методы
👉 Inline классы не всегда встраиваются в код, а используются как обычные классы
👉 Неочевидное перекрытие имен c extention функциями и обычными
👉 Особенности работы методов по умолчанию в интерфейсах неочевидны в каждом случае
Tonnes of fun with Kotlin
Kotlin упростил жизнь разработчиков, закрыв множество кода от глаз, генерируя его. Но не всегда так очевидно и нужно быть внимательным:
👉 Extention функции не всегда статические методы
👉 Inline классы не всегда встраиваются в код, а используются как обычные классы
👉 Неочевидное перекрытие имен c extention функциями и обычными
👉 Особенности работы методов по умолчанию в интерфейсах неочевидны в каждом случае
👍1
Вышла Zipline 1.0 - библиотека для исполнения Kotlin/JS в Kotlin/JVM и Kotlin/Native с помощью движка QuickJS. Это позволяет придать динамику статическому коду.
#js #jvm #native
#js #jvm #native
❤12👎11👀7👍1
Kotlin's JDK release compatibility flag - статья о том как можно спокнуться о том как если не проставить везде правильную версию JDK (
Рекомендация - используйте Gradle Toolchain (спорно, и ждем пояснений в следующей статье)
#jvm
-source
, -target
, и -bootclasspath
), то можно получить креш в проде.Рекомендация - используйте Gradle Toolchain (спорно, и ждем пояснений в следующей статье)
#jvm
❤12👍2
KStore - простая KMP библиотека, которая помогает сохранять и восстанавливать объекты с/на диск с использованием kotlinx.coroutines, kotlinx.serialization and Okio
#android #ios #desktop #jvm #js
// Описываем сериализуемый объект
@Serializable data class Pet(val name: String, val age: Int)
// Создаёте хранилище
val store: KStore<Pet> = storeOf(file = "path/to/my_cats.json".toPath())
// Делаем операции
val mylo: Pet? = store.get()
store.set(mylo)
store.update { pet: Pet? ->
pet?.copy(age = pet.age + 1)
}
store.delete()
// Получаем обновления
val pets: Flow<Pet?> = store.updates
#android #ios #desktop #jvm #js
🔥30👍4
Вышла первая стабильная версия приложения TiVi. Важным является что это пример KMP проекта для Android, Desktop (JVM) и iOS с применением Compose Multiplatform. Автор Chris Banes - работал в Google, а теперь в Twitter.
Все исходники открыты на GitHub.
Само приложение можно скачать в Google Play и AppStore
#kmp #compose #android #desktop #jvm #ios #пример
Все исходники открыты на GitHub.
Само приложение можно скачать в Google Play и AppStore
#kmp #compose #android #desktop #jvm #ios #пример
🔥13🤬4👍1
Как проверять изменения API между версиями библиотеки (EN,9м)
В статье рассказывается как библиотека должна следить за изменениями API, чтобы была совместимость между версиями и упростить миграцию пользотвалям. Приводится пример использования утилиты Binary Compatibility Validator для автоматизации проверки API совместимости
#kotlin #инструменты #jvm
В статье рассказывается как библиотека должна следить за изменениями API, чтобы была совместимость между версиями и упростить миграцию пользотвалям. Приводится пример использования утилиты Binary Compatibility Validator для автоматизации проверки API совместимости
#kotlin #инструменты #jvm
👍19🔥2
EitherNet - KMP библиотека для удобной работы с ответами из сети, когда нужно обработать различные типы ответов и не хочется всё это ловить через NetworkException.
Очень давно я делал видео (доступно на YouTube) как сделать такую же обёртку и зачем это нужно
#kotlin #kmp #jvm #android #ios #wasm #js
Очень давно я делал видео (доступно на YouTube) как сделать такую же обёртку и зачем это нужно
#kotlin #kmp #jvm #android #ios #wasm #js
👍28
Концепция строится вокруг модульной структуры для разделения API и реализации. Для DI по умолчанию используется kotlin-inject-anvil, для Presenter - Molecule, но можно заменить. UI слой может быть написан на удобном для вас UI фреймворке.
Для настройки требуется подключение Gradle плагина
На момент написания поста доступна версия 0.0.1
#kotlin #kmp #android #ios #web #desktop #jvm #native
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25
Azul — компания, которая разрабатывает собственные высокопроизводительные версии JVM. Они известны Azul Zulu — OpenJDK-сборкой с расширенной поддержкой, и Azul Prime — JVM с улучшенной производительностью и снижением пауз GC.
#kotlin #jvm #производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43👍6❤3