В Java 19 появился Project Loom - легковесные (виртуальные) потоки, некий аналог корутин из Kotlin. Автор статьи устроил эксперимент - в качестве CoroutineDispatcher он взял те, что запускают корутину на виртуальных потоках.
В рамках опыта запускается множество корутин с вызовом Thread.sleep(1000), что останавливает выполнение на 1 секунду и сравнивает работы стандарных CoroutineDispatcher с Loom.
Итог - виртуальные потоки позволят без проблем вызывать блокирующий код в неблокирюущем корутин коде вместо ограничений стандартных Dispatcher. Android такого не видать )
#coroutines
В рамках опыта запускается множество корутин с вызовом Thread.sleep(1000), что останавливает выполнение на 1 секунду и сравнивает работы стандарных CoroutineDispatcher с Loom.
Итог - виртуальные потоки позволят без проблем вызывать блокирующий код в неблокирюущем корутин коде вместо ограничений стандартных Dispatcher. Android такого не видать )
#coroutines
😭36👍17🤡10👎4
Инструкция как настроить окружение в Kotlin Multiplatform Mobile в Windows и macOS
👉 установка необходимого софта
👉 Плагины IDE
👉 Kotlin Multiplatform Wizard в IDE
👉 Обзор cгенерированного проекта
👉 Управление зависимостями
#kmm #howto
👉 установка необходимого софта
👉 Плагины IDE
👉 Kotlin Multiplatform Wizard в IDE
👉 Обзор cгенерированного проекта
👉 Управление зависимостями
#kmm #howto
👍26🍾5👎4
Обзор возможностей for (ну а вдруг вы что упустили)
👀19👍13👎5🌚1
Forwarded from Android Broadcast (Кирилл Розов)
Какими площадками с контентом (любого, не только по разработке) вы пользуетесь?
Anonymous Poll
90%
Telegram (каналы и группы)
90%
YouTube
4%
Дзен
2%
RuTube
15%
VK (читаю группы, смотрю видео)
9%
TikTok
8%
Twitch
8%
Другие (делитесь в комментах)
3%
Не участвую в опросе
👎11👍8
В каком из этих мест нельзя объявить extention функцию?
Anonymous Quiz
7%
fun A.b() { ... }
7%
fun b(a: A) { ... }
25%
companion object { ... }
35%
inline fun <reified A> b(a: () -> A) { ... }
26%
Нет правильного ответа
🤔57👎13👍7🤨5
Вышел Kotlin Dataframe 0.9.1
Библиотека для соединения статической типизации Kotlin c динамической природой данных
👉 Поддержка генерации дата схем на основе OpenAPI 3.0 схем
👉 Новые опции при чтении JSON
👉 Улучшена поддержка Apache Arrow files
🛠️ Исправление багов
Библиотека для соединения статической типизации Kotlin c динамической природой данных
👉 Поддержка генерации дата схем на основе OpenAPI 3.0 схем
👉 Новые опции при чтении JSON
👉 Улучшена поддержка Apache Arrow files
🛠️ Исправление багов
🤔14👍4❤3
К релизу готовится kotlinx.serialization 1.5.0
👉 Kotlin 1.8.0
👉 Возможность указании стратегии для всех свойств при конвертации JSON
👉 Новое API
👉 Стабилизация функций
❗ Старое API для полиморфизма теперь помечено как deprecated
👉 ProGuard правила добавлены в JAR сборку
👉 Улучшение скорости работы
🛠️ Исправление багов
👉 Kotlin 1.8.0
👉 Возможность указании стратегии для всех свойств при конвертации JSON
👉 Новое API
JsonUnquotedLiteral
, которое позволяет выводить в JSON строки без кавычек👉 Стабилизация функций
serializer
, serializerOrNull
и SerializersModule.serializer
, SerializersModule.serializerOrNull
❗ Старое API для полиморфизма теперь помечено как deprecated
👉 ProGuard правила добавлены в JAR сборку
👉 Улучшение скорости работы
🛠️ Исправление багов
👍34⚡5🤔2
Forwarded from Mobile Developer (Pavel Kachan)
КАРРИРОВАНИЕ В KOTLIN
https://keygenqt.com/blog/3
Еще помните парня, который сделал кмм приложение на AuroraOS?
Это его статья)
👉 Как выглядят функции двух и более аргументов под капотом
👉 Что такое каррирование
👉 Как и для чего это можно использовать (с примерами)
https://keygenqt.com/blog/3
Еще помните парня, который сделал кмм приложение на AuroraOS?
Это его статья)
👉 Как выглядят функции двух и более аргументов под капотом
👉 Что такое каррирование
👉 Как и для чего это можно использовать (с примерами)
Keygenqt
@keygenqt
Hello! My personal site. Come, I will always be glad!
👍16👎9🌚4
Руководство по настройке KotlinX Serialization для работы с sealed interface для десериализации JSON. Используется поддержка полиморфизма в библиотеке.
⚡29
Вышел Compose Multiplatform 1.3.0
👉 Обновление до последних версий Jetpack Compose
👉 Поддержка Kotlin 1.8
👉 Улучшения на Compose Desktop
🛠️ Исправление багов
👉 Обновление до последних версий Jetpack Compose
👉 Поддержка Kotlin 1.8
👉 Улучшения на Compose Desktop
🛠️ Исправление багов
👍23
Команда Kotlin в ближайшие полгода сосредоточится над улучшением опыта разработчиков сторонних библиотек, а именно:
👉 улучшение документации
👉 стабильный релиз Dokka
👉 руководства по Kotlin API для авторов библиотек
👉 улучшение документации
👉 стабильный релиз Dokka
👉 руководства по Kotlin API для авторов библиотек
👍24⚡1🔥1
Forwarded from Записки разработчицы (Anna Zharkova)
Аркадий Иванов опубликовал твит о выпуске первой релизной версии своего Decompose - библиотеки для общего UI под KMM:
https://github.com/arkivanov/Decompose/releases/tag/1.0.0
Основные фичи:
✅Возможность переиспользовать и тестировать компоненты (RIBs-like)
✅ Разделение UI и не-UI кода
✅Возможность подключать платформоспецифический UI
✅ Собственный DI
✅Мультиплатформенность
✅Поддержка сохранения состояния (Android/JVM/Apple)
✅Используется Compose Android/JVM/iOS/macOS/Web
И еще type-safe мультиплатформенная навигация в KMM
https://github.com/arkivanov/Decompose/releases/tag/1.0.0
Основные фичи:
✅Возможность переиспользовать и тестировать компоненты (RIBs-like)
✅ Разделение UI и не-UI кода
✅Возможность подключать платформоспецифический UI
✅ Собственный DI
✅Мультиплатформенность
✅Поддержка сохранения состояния (Android/JVM/Apple)
✅Используется Compose Android/JVM/iOS/macOS/Web
И еще type-safe мультиплатформенная навигация в KMM
GitHub
Release 1.0.0 · arkivanov/Decompose
Changes since 1.0.0-beta-04
Version updates (#311, #320):
Kotlin 1.8.0
JB Compose 1.3.0
Jetpack Compose compiler 1.4.0
Essenty 1.0.0
parcelize-darwin 0.1.3
Added defaultComponentContext exten...
Version updates (#311, #320):
Kotlin 1.8.0
JB Compose 1.3.0
Jetpack Compose compiler 1.4.0
Essenty 1.0.0
parcelize-darwin 0.1.3
Added defaultComponentContext exten...
👍26🔥12👎1
Завтра буду записывать интервью с командой Kotlin Multiplatofrom Mobile. накидывайте свои вопросы в комментариях
🔥72👍10❤🔥2🍾2
Вышла Kotlin 1.8.20-Beta
👉 Продолжат работать на K2 компилятором
👉 Kotlin Multiplatform теперь поддерживает WebAssembly. Все пока на уровне эксперимента
👉 Новая инкрементальная компиляция в JVM. теперь выключена по умолчанию
👉 Для удаления помечены часть таргетов в Kotlin/Native, а именно iosArm32, watchosX86, wasm32, mingwX86, linuxArm32Hfp, linuxMips32, linuxMipsel32 (подробности тут)
👉 Kotlin Multiplatform поддерживает Gradle composite builds
👉 Поддержка AutoCloseable из Java (экспериментально)
👉 Продолжат работать на K2 компилятором
👉 Kotlin Multiplatform теперь поддерживает WebAssembly. Все пока на уровне эксперимента
👉 Новая инкрементальная компиляция в JVM. теперь выключена по умолчанию
👉 Для удаления помечены часть таргетов в Kotlin/Native, а именно iosArm32, watchosX86, wasm32, mingwX86, linuxArm32Hfp, linuxMips32, linuxMipsel32 (подробности тут)
👉 Kotlin Multiplatform поддерживает Gradle composite builds
👉 Поддержка AutoCloseable из Java (экспериментально)
👍2
🔥 Объявили что с выходом K2 компилятора в stable статус состоится выход Kotlin 2.0. Kotlin 1.10 не планируется и следующим релизом после Kotlin 1.9 будет 2.0. Сменой мажорной версии авторы хотят показать значимость перехода на новый компилятор. Никаких breaking changes не планируется и весь код, написанный ранее останется работать в новой мажорной версии.
K2 компилятор исправит множество багов, откроет дорогу новым фичам и конечно же значимо ускорит работу IDE.
Превью новой версии можно попробовать в Kotlin 1.8.20
K2 компилятор исправит множество багов, откроет дорогу новым фичам и конечно же значимо ускорит работу IDE.
Превью новой версии можно попробовать в Kotlin 1.8.20
❤62🔥21👍1
Какой класс не имеет супертипа в Kotlin?
Anonymous Quiz
13%
Unit
41%
Any
32%
Nothing
13%
Нет правильного ответа
👍58💯1🍾1
В Kotlin заботятся о безопасности. Важным вехой является что любой из нас может собрать тот же самый бинарник Kotlin компилятора, что и выходит в релиз. Kotlin/Native пока еще не покрыт, но будет в ближайшем будущем. Эту фичу активно пропихивала Android команда из Google. Это важно чтобы цепочка инструментов сборки была надежной.
Инструкции и скрипты для сборки последней стабильной версии Kotlin
#security
Инструкции и скрипты для сборки последней стабильной версии Kotlin
#security
👍24👎1
Как тип у переменно a d коде fun a(): String { val a = return "" }? (Kotlin 1.8.0)
Final Results
38%
Код не будет компилироваться
25%
String
7%
Any
22%
Nothing
9%
Нет верного ответа
🤯55🥴23🔥6🤡6
Какой из синтаксисов объявления лямбды НЕвалидный в Kotlin?
data class B(val a: String, val b: String)
data class B(val a: String, val b: String)
Anonymous Quiz
8%
val f1: (B) -> Unit = { (a, _) -> Unit }
63%
val f2: (B) -> Unit = { a, b -> Unit }
6%
val f3: (B) -> Unit = { (a, b) -> Unit }
23%
val f4: (B) -> Unit = { (_, _) -> Unit }
👍55❤1👎1