Android Broadcast
14.6K subscribers
3.8K photos
394 videos
11 files
6.26K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
#Kotlin #InlineClass

Inline Classes and Autoboxing in Kotlin от Dave Leeds

Kotlin 1.3 представил новую экспериментальную функциональность - Inline классы. Суть классов сводится к тому, что в Kotlin вы работает с ними как с обычными классами: объявляете функции, свойства; передаете в функции и пр, но при компиляции они разворачиваются и в итоговом коде вставляется оборачиваемый тип.

Inline классы имеет ряд ограничений, но самое важно понимать что есть случаи когда они остаются обычными классами:
👉 Когда Inline класс передается как объект суперкласса или реализуемого интерфейса
👉 Некоторые случае при autoboxing

За всеми подробностями хитростей работы нового типа классов читайте статью.
#Kotlin #TypeAlias #InlineClass

Kotlin: Type aliases and inline classes

В Kotlin есть функционал, довольно схожий - Type Alias и Inline Class. Подробнее о этих фичах языка и отличиях вы можете узнать из статьи.
#Kotlin #InlineClass

Inline classes, the next level of type safety

Система типа Kotlin замечательна. Она решила проблему null safety, дала нам sealed классы и inline классы. В чем прелесть inline классов? По сути они дают вам нулевую цену за обертку одних объектов в другие.

Но когда это может быть полезно? Подумайте сколько у вас использование Int и String в коде для представления различных наборов значений или кодов. Например, в Android Int используется для представления ресурсов разных типов и единственная защита от ошибки - это аннотации, которые проверяет Android Lint.

В статье разбирается как inline класс улучшает разграничение типов
#Kotlin #InlineClass

Low-overhead wrappers using inline classes

Как много применений имеют значения типа Int в Android приложениях? Это и id, и разные типы ресурсов, и пр. Очень легко ошибиться и промахнуться с типом ресурсов. Это позволяет избегать классы-обертки, но их проблема в том, что они создают новые объекты в памяти и заставят работать GC активнее.

Kotlin Inline классы - это то что совмещает в себе удобство Wrapper классов и вам не придется платить цену за создание доп. объектов, так как их не будет.