Вышла kotlinx.serialization 1.4.0
👉 Поддержка Kotlin 1.7.10
👉 Поддержка Okio
👉 Стабильная поддержка inline классов и unsigned чисел
👉 Часть иерархии SerializationException стала публичной
👉 Аннотация
👉 Документация переехала с Github pages на kotlinlang.org
👉 Различные улучшения и исправления багов
👉 Поддержка Kotlin 1.7.10
👉 Поддержка Okio
👉 Стабильная поддержка inline классов и unsigned чисел
👉 Часть иерархии SerializationException стала публичной
👉 Аннотация
@MetaSerializable
, которая дает пользовательским аннотациям такое же поведение при компиляции как и аннотация @Serializable
👉 Документация переехала с Github pages на kotlinlang.org
👉 Различные улучшения и исправления багов
👍23👎2🔥1
👍11👎6
🔥 Touchlab сделал мобильное приложение для Droidcon NYC на Android и iOS, использую Compose для каждой из платформ 😮
Это первый production на Compose iOS, который сделали еще даже до появления dev preview Compose iOS
iPhone у меня нет чтобы оценить приложения, но может вы сможете когда оно опубликуется (на момент выхода поста проходит ревью)
👉 Исходники приложения на GitHub
Это первый production на Compose iOS, который сделали еще даже до появления dev preview Compose iOS
iPhone у меня нет чтобы оценить приложения, но может вы сможете когда оно опубликуется (на момент выхода поста проходит ревью)
👉 Исходники приложения на GitHub
🔥21👎2
Lambda expressions
Разбор лямбд в Kotlin: синтаксис, параметры, лямбда вне параметров функции, результат
Разбор лямбд в Kotlin: синтаксис, параметры, лямбда вне параметров функции, результат
🔥12👎1
Forwarded from iOS Broadcast (Розалия Амирова)
Danger. Автоматизируем ревью на CI и пишем свой плагин
Лучше автоматизировать все, что можно автоматизировать. Поэтому проверку кодстайла и MR тоже делегируем 🤖
О том, как реализовать свой плагин для Danger на Kotlin DSL, читайте в статье
#tools
Лучше автоматизировать все, что можно автоматизировать. Поэтому проверку кодстайла и MR тоже делегируем 🤖
О том, как реализовать свой плагин для Danger на Kotlin DSL, читайте в статье
#tools
👍9👎1
Apollo Kotlin: New Multiplatform Memory Manager
Apollo интегрировали новую модель памяти в Kotlin/Native и делятся своим опытом
#native
Apollo интегрировали новую модель памяти в Kotlin/Native и делятся своим опытом
#native
🔥15👎2
Легкая автоматизация кроссплатформенных тестов с Kotlin DSL
Команда Мир Plat.Form (НСПК) делится опытом в создании и развитии фреймворка для автоматизации тестов на Appium: зачем, что, итоги
#testing
Команда Мир Plat.Form (НСПК) делится опытом в создании и развитии фреймворка для автоматизации тестов на Appium: зачем, что, итоги
#testing
👎5👍2
Forwarded from Android Broadcast (Кирилл Розов)
Kotlin Algorithms and Design Patterns
Примеры реализации различных архитектурных шаблон , аглоритмов и структур данных на Kotlin
Примеры реализации различных архитектурных шаблон , аглоритмов и структур данных на Kotlin
👍17🔥6👎4
Collection processing in Kotlin: Windowing, zipping and chunking
Разбор как работают операторы windowed, zip и chunked, которые позволяют разбить коллекцию на группы элементов
Разбор как работают операторы windowed, zip и chunked, которые позволяют разбить коллекцию на группы элементов
👍34👎2
Что такое Kotlin SAM? [EN]
Single Abstract Method (SAM) или функциональный интерфейс - это когда ваш тип может передаваться как лямбда, но под капотом конвертируется в нужный интерфейс.
#functional
Single Abstract Method (SAM) или функциональный интерфейс - это когда ваш тип может передаваться как лямбда, но под капотом конвертируется в нужный интерфейс.
#functional
🔥17👍6👎5
Знаете для чего нужны Nothing и Unit?
Anonymous Poll
54%
Однозначно да!
32%
Не уверен(а)
7%
Нет
3%
Что это?
4%
Не участвую в опросе
👍7👎6🤔4
DSL type-safe builders
Разбор что такое Domain Specific Language (DSL) и как реализовать его с помощью Kotlin
Разбор что такое Domain Specific Language (DSL) и как реализовать его с помощью Kotlin
👍16👎2
Forwarded from Kotlin Multiplatform (Kostya)
Зарелизили Kotlin Multiplatform Mobile плагин 0.3.4 для Android Studio!
🚀 Android приложение теперь на Compose
🤌 Билд скрипты переехали на plugins блок
🧑💻 Исправили досадный баг с ран кофигурациями на М1
🤠 Выпустили версию для Canary AS
😊 И много прочих улучшений
🚀 Android приложение теперь на Compose
🤌 Билд скрипты переехали на plugins блок
🧑💻 Исправили досадный баг с ран кофигурациями на М1
🤠 Выпустили версию для Canary AS
😊 И много прочих улучшений
👍19🔥5👎2
Где нельзя расположить подклассы sealed класса (Kotlin 1.7)?
Final Results
8%
В теле sealed класса
3%
В kt файле где объявлен sealed класс
9%
В пакете где объявлен sealed класс
45%
В Gradle модуле где объявлен sealed класс
34%
Нет правильного ответа
🔥18🤔11👎9
Kotlin Multiplatform Broadcast
Где нельзя расположить подклассы sealed класса (Kotlin 1.7)?
Правильный ответ: "В Gradle модуле, где объявлен sealed класс"
Sealed class - это класс с ограниченной иерархией наследования, подклассы которого известны заранее и других быть не может. Поэтому нужны ограничения на определение подклассов. Изначально подклассы могли располагаться в теле sealed класса или в том же файле где описан sealed класс. В Kotlin 1.5 места объявления подклассов были расширены и добавили возможность объявлять их в одном пакете с sealed классом.
Важно! Иерархия директорий в сырцах в Kotlin не связана с пакетами, поэтому в любом месте сырцов можно определить подкласс sealed класса, главное указать нужный пакет.
Важно! Иерархия директорий в сырцах в Kotlin не связана с пакетами, поэтому в любом месте сырцов можно определить подкласс sealed класса, главное указать нужный пакет.
👍60🔥9👎6🥰2
Какую конструкцию нельзя объявить в Kotlin?
Final Results
1%
val a: String = b
84%
val a: String! = b
12%
val a: String = b!!
3%
val a: String? = b
👍26🤔22👎4👏3
Forwarded from Android Broadcast (Кирилл Розов)
Советы по использованию программирования "Code With Me" что прокачать ваши Kotlin навыки
Разбор различных сценариев использования Code With Me для парного программирования в обучении и менторинге
📺 Видео версия (1 час)
Разбор различных сценариев использования Code With Me для парного программирования в обучении и менторинге
📺 Видео версия (1 час)
👎10
Kotlin Multiplatform Broadcast
Какую конструкцию нельзя объявить в Kotlin?
Правильный ответ "val a: String! = b"
Помимо Nullable (?) и Non-Nullable типов в Kotlin есть специальный тип - Platform Type (!). Он предназначен для типа который приходит из другого языка и невозможно определить Nullable и Non-Nullable (например, нет аннотацией с пометкой про nullability). Переменную такого типа можно только получить, но объявить нельзя. С переменной такого типа можно работать как с Nullable и Non-Nullable типом и компилятор не будет предупреждать вас.
Цель типа - обеспечить совместимость с кодом на другом языке.
Рекомендация - при получение такого типа и сохранение его в переменную обязательно явно указывайте тип переменной, чтобы не полагаться на механизм работы с null как в Java.
👉 Nullable types and non-null types
👉 Null-safety and platform types
Цель типа - обеспечить совместимость с кодом на другом языке.
Рекомендация - при получение такого типа и сохранение его в переменную обязательно явно указывайте тип переменной, чтобы не полагаться на механизм работы с null как в Java.
👉 Nullable types and non-null types
👉 Null-safety and platform types
👍57🔥10❤1👏1
Design of Kotlin Coroutines (15 мин)
👉 Разбор того как работают корутины под капотом
👉 Чем suspend функции отличаются от обычных
👉 Continuation Passing Style
👉 State машина корутины
#coroutines
👉 Разбор того как работают корутины под капотом
👉 Чем suspend функции отличаются от обычных
👉 Continuation Passing Style
👉 State машина корутины
#coroutines
❤15👍5🤔4
Почему исключения в Kotlin Coroutines это сложно и как с этим жить?
Обработать ошибку в корутинах не так очевидно и просто порой как это описывают авторы. В статье разбираются
👉 разные примеры запуска корутин и обработка ошибок в них
👉 что будет происходить из-за structured concurrency
👉 CoroutineExceptionHandler
👉 Ключевые особенности обработки
Обработать ошибку в корутинах не так очевидно и просто порой как это описывают авторы. В статье разбираются
👉 разные примеры запуска корутин и обработка ошибок в них
👉 что будет происходить из-за structured concurrency
👉 CoroutineExceptionHandler
👉 Ключевые особенности обработки
🔥25🤔3❤1👍1