В 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
  Вебинары по Kotlin - это отличный способ прокачать свои навыки в Kotlin и изучить возможности различных инструментов разработчика! В ближайшие 2 недели пройдет несколько вебинаров:
❗ Advanced Kotlin Techniques for Spring Developers (14 февраля)
Все кто использует Spring и пишет на Kotlin смогут прокачать свои опыт использования фреймворка на следующий уровень!
👉 Регистрация
❗ Graceful Resource Handling Using Structured Concurrency in Kotlin (16 февраля)
Узнаете про использование Arrow Resource DSL чтобы ваши ресурсы не утекали по аналогии со structured concurrency в корутинах
👉 Регистрация
❗ Creative Coding With Kotlin and OPENRNDR (22 февраля)
Креативное программирование — это когда задача состоит в создании не функционального, а выразительного продукта. На вебинаре вы познакомитесь с библиотекой OPENRNDR и узнаете, как с помощью нее создавать потрясающие визуальные произведения искусства 🎨
👉 Регистрация
❗ Advanced Kotlin Techniques for Spring Developers (14 февраля)
Все кто использует Spring и пишет на Kotlin смогут прокачать свои опыт использования фреймворка на следующий уровень!
👉 Регистрация
❗ Graceful Resource Handling Using Structured Concurrency in Kotlin (16 февраля)
Узнаете про использование Arrow Resource DSL чтобы ваши ресурсы не утекали по аналогии со structured concurrency в корутинах
👉 Регистрация
❗ Creative Coding With Kotlin and OPENRNDR (22 февраля)
Креативное программирование — это когда задача состоит в создании не функционального, а выразительного продукта. На вебинаре вы познакомитесь с библиотекой OPENRNDR и узнаете, как с помощью нее создавать потрясающие визуальные произведения искусства 🎨
👉 Регистрация
👍10🔥5👎1