#KSP
So, how do I write a Kotlin Symbol Processor (KSP)?
Не так давно Google представила своё собственное решение Kotlin Symbol Processing, которая призвана стать заменой KAPT и ускорить процессинг аннотаций на 30-50%. Автор статьи делится своим опытом написания процессора на новой технологии.
So, how do I write a Kotlin Symbol Processor (KSP)?
Не так давно Google представила своё собственное решение Kotlin Symbol Processing, которая призвана стать заменой KAPT и ускорить процессинг аннотаций на 30-50%. Автор статьи делится своим опытом написания процессора на новой технологии.
Keeping public API in check with the Kotlin binary validator plugin
История применения Kotlin Binary compatibility validator, который форсирует проверку изменений в публичном API библиотеки, чтобы разработчики всегда знали о них
История применения Kotlin Binary compatibility validator, который форсирует проверку изменений в публичном API библиотеки, чтобы разработчики всегда знали о них
Forwarded from Android Broadcast
#Jetpack #Compose
Вышел Jetpack Compose 1.0, момент после которого уже нет отмазок и после которого Android разработка начнёт меняться.
Вышел Jetpack Compose 1.0, момент после которого уже нет отмазок и после которого Android разработка начнёт меняться.
Optimizing Your Kotlin Build
Kotlin везде, но скорость разработки с ним печалит. В статье рассказывается как то исправить и ускорить время ожидания билда
Kotlin везде, но скорость разработки с ним печалит. В статье рассказывается как то исправить и ускорить время ожидания билда
#KMM
Вышел KMM плагин для Android Studio 0.2.7
В новой версии плагина проделали много работы для улучшения работы с iOS, добавили поддержку Apple M1 симуляторов и исправили баги
Вышел KMM плагин для Android Studio 0.2.7
В новой версии плагина проделали много работы для улучшения работы с iOS, добавили поддержку Apple M1 симуляторов и исправили баги
#coroutines #flow
Atomic Updates on MutableStateFlow
Разбор атомарных обновление StateFlow, которые появились в Coroutines 1.5.1. Новая функция compareAndSet, которая позволит избежать проблем при параллельной модификации
Atomic Updates on MutableStateFlow
Разбор атомарных обновление StateFlow, которые появились в Coroutines 1.5.1. Новая функция compareAndSet, которая позволит избежать проблем при параллельной модификации
MutableSharedFlow
10 лет моему любимому языку - Kotlin! Всей команде языка и сообществу спасибо за эту технологию, ведь благодаря ей мы уменьшили объём кода и получили Compose.
📺 Смотрите документальный фильм о Kotlin!!!
📺 Смотрите документальный фильм о Kotlin!!!
#compose
Compose Multiplatform goes Alpha, unifying Desktop, Web, and Android UIs
👉 Compose Desktop и Web перешли в альфу
👉 Унификация разработки Desktop, Web и Android UI
👉 Релиз 1.0 собираются сделать в этом (2021) году
👉 Новые плагины для IDEA и Android Studio для Compose Multiplatform
Что нового в Compose Desktop:
👉 Composable Window APIs теперь используется по умолчанию
👉 Адаптивный размер окна
👉 Новые фичи для меню окон
👉 Поддержка контекстных меню
👉 Изменение поведения курсор и API для иконки курсора
👉 Модификатор Mouse Clickable
👉 Унификация ресурсов графики
👉 Поддержка Linux ARM64
Compose Multiplatform goes Alpha, unifying Desktop, Web, and Android UIs
👉 Compose Desktop и Web перешли в альфу
👉 Унификация разработки Desktop, Web и Android UI
👉 Релиз 1.0 собираются сделать в этом (2021) году
👉 Новые плагины для IDEA и Android Studio для Compose Multiplatform
Что нового в Compose Desktop:
👉 Composable Window APIs теперь используется по умолчанию
👉 Адаптивный размер окна
👉 Новые фичи для меню окон
👉 Поддержка контекстных меню
👉 Изменение поведения курсор и API для иконки курсора
👉 Модификатор Mouse Clickable
👉 Унификация ресурсов графики
👉 Поддержка Linux ARM64
Вышел Kotlin 1.5.30-RC
👉 Изменение в поведение
👉 ЭКСПЕРИМЕНТ: Возможность создания экземпляра аннотаций. Будет в Kotlin 1.6
👉 JS IR compiler backend в Beta
👉 Поддержка Java toolchain и JVM опций в Kotlin демоне в Gradle билд скриптах
👉 Новое экспериментальное API для Regex и Duration
👉 Изменение в поведение
@OptIn
: обязательно использовать opt-in на всех помеченных API, запрещено использовать во множестве мест и другие ограничения👉 ЭКСПЕРИМЕНТ: Возможность создания экземпляра аннотаций. Будет в Kotlin 1.6
👉 JS IR compiler backend в Beta
👉 Поддержка Java toolchain и JVM опций в Kotlin демоне в Gradle билд скриптах
👉 Новое экспериментальное API для Regex и Duration
#kmm #swift
Как сделать Swift-friendly API с Kotlin Multiplatform Mobile
Kotlin не имеет интеропа со Swift, а только Obj-C, но вот современные iOS проекты его не используют. Обеспечить удобное API из Kotlin всё равно нужно. Этому и посвящена статья
Как сделать Swift-friendly API с Kotlin Multiplatform Mobile
Kotlin не имеет интеропа со Swift, а только Obj-C, но вот современные iOS проекты его не используют. Обеспечить удобное API из Kotlin всё равно нужно. Этому и посвящена статья
Вышел Timber 5.0
Популярная библиотека для логирования получила новую мажорную версию. Её переписали на Kotlin и оставили обратную бинарную совместимость с версией 4. В будущем планируется поддержка Kotlin Multiplatform.
Помимо этого теперь минимальное Android API стало 14, а Gradle - 7.0
Популярная библиотека для логирования получила новую мажорную версию. Её переписали на Kotlin и оставили обратную бинарную совместимость с версией 4. В будущем планируется поддержка Kotlin Multiplatform.
Помимо этого теперь минимальное Android API стало 14, а Gradle - 7.0
#codequality
Вышел Detekt 1.18
👉 Новые правила
👉 Поддержка Kotlin 1.5.21
👉 Исправление багов
👉 Шаблон для авторов правил detekt-custom-rule-template
👉 Необходима миграция при использовании Gradle Detekt плагина
Вышел Detekt 1.18
👉 Новые правила
👉 Поддержка Kotlin 1.5.21
👉 Исправление багов
👉 Шаблон для авторов правил detekt-custom-rule-template
👉 Необходима миграция при использовании Gradle Detekt плагина
#kmm
Try Kotlin Multiplatform Mobile in AppCode for Free!
Попробуйте KMM плагин в AppCode на 4 месяца со вей IDE вместе бесплатно!
Try Kotlin Multiplatform Mobile in AppCode for Free!
Попробуйте KMM плагин в AppCode на 4 месяца со вей IDE вместе бесплатно!
#coroutines
📺 Kotlin Coroutines: Important Answers from The Kotlin Team (7 мин)
Рассказ про что нас ждёт в Coroutines:
👉 Поддержка Project Loom
👉 Улучшение тестирования кода с Coroutine - Coroutines Testing Framework в 1.6
👉 Улучшения Flow
👉 Coroutine в Kotlin/Native с новой моделью памяти
📺 Kotlin Coroutines: Important Answers from The Kotlin Team (7 мин)
Рассказ про что нас ждёт в Coroutines:
👉 Поддержка Project Loom
👉 Улучшение тестирования кода с Coroutine - Coroutines Testing Framework в 1.6
👉 Улучшения Flow
👉 Coroutine в Kotlin/Native с новой моделью памяти
Вышел Kotlin 1.5.30
🏗️ sealed when - ошибка компилятора, если пропустите значение enum или возможный подкласс sealed класс (будет в 1.6, но тестировать можно уже сейчас)
🏗️ [ЭКСПЕРЕМЕНТАЛЬНАЯ] Поддержка использовать suspend функций в качестве супертипа
🏗️ [ЭКСПЕРЕМЕНТАЛЬНАЯ] Улучшение работы с рекурсивными Generic типами
🏗️ [ЭКСПЕРЕМЕНТАЛЬНАЯ] Изменения в требованиях к использованию opt-in аннотации
👉 Поддержка создания экземпляра класса-аннотации в Kotlin/JVM
👉 Убраны ограничения выведения типа в build функциях (например buildList)
👉 Улучшения работы с nullablity - теперь можно выбирать будет ли у вас ошибка или предупреждение от компилятора
👉 Kotlin Multiplatform: Новые настройки публикации Android артефактов
👉 Поддержка Apple Silicon в Kotlin/Native
🏗️ [ЭКСПЕРЕМЕНТАЛЬНАЯ] Интероп с Swift 5.5 async/await
👉 JS IR compiler backend в Beta
👉 Gradle: поддержка Java toolchain
👉 Улучшения Duration & Regex API
🏗️ sealed when - ошибка компилятора, если пропустите значение enum или возможный подкласс sealed класс (будет в 1.6, но тестировать можно уже сейчас)
🏗️ [ЭКСПЕРЕМЕНТАЛЬНАЯ] Поддержка использовать suspend функций в качестве супертипа
🏗️ [ЭКСПЕРЕМЕНТАЛЬНАЯ] Улучшение работы с рекурсивными Generic типами
🏗️ [ЭКСПЕРЕМЕНТАЛЬНАЯ] Изменения в требованиях к использованию opt-in аннотации
👉 Поддержка создания экземпляра класса-аннотации в Kotlin/JVM
👉 Убраны ограничения выведения типа в build функциях (например buildList)
👉 Улучшения работы с nullablity - теперь можно выбирать будет ли у вас ошибка или предупреждение от компилятора
👉 Kotlin Multiplatform: Новые настройки публикации Android артефактов
👉 Поддержка Apple Silicon в Kotlin/Native
🏗️ [ЭКСПЕРЕМЕНТАЛЬНАЯ] Интероп с Swift 5.5 async/await
👉 JS IR compiler backend в Beta
👉 Gradle: поддержка Java toolchain
👉 Улучшения Duration & Regex API
#coroutines
Safe delay in Android Views: goodbye Handlers, Hello Coroutines!
Использование Handler для отложенных операций в Android - небезопасно. Они не имеют связи с жизненным циклом и могут приводить к утечкам памяти.
На замену автор предлагает использовать Kotlin Coroutines + Coroutine Scope из Android. Поддерживаю 2 руками
Safe delay in Android Views: goodbye Handlers, Hello Coroutines!
Использование Handler для отложенных операций в Android - небезопасно. Они не имеют связи с жизненным циклом и могут приводить к утечкам памяти.
На замену автор предлагает использовать Kotlin Coroutines + Coroutine Scope из Android. Поддерживаю 2 руками
#вакансия
Mercury Development — компания из топ-8 Android-разработчиков США по версии Clutch. Один из самых интересных проектов в Меркури сейчас — американский фитнес-стартап, который разрабатывает мультифункциональный тренажер c ИИ под капотом. В команду, которая создает для тренажера мобильное приложение, нужны Android-разработчики из этих городов: Самара, Краснодар, Саратов, Тольятти.
Главное — опыт командной разработки приложений на Android от года, понимание жизненного цикла основных компонентов платформы, знание SQL и английский на уровне чтения технической документации.
Вот контакты, где можно узнать подробности и откликнуться:
✉️ job@mercdev.com
💬@Kate_Rinna
А тут о том, кто они такие и чем занимаются. Например, Меркури помогли разработать первые фитнес-трекеры для Fitbit — корпорации, которую недавно купил Google, софт для световых панелей, которые засветились в клипе Coldplay, мобильное приложение для Бургер Кинга и много чего еще крутого.
Mercury Development — компания из топ-8 Android-разработчиков США по версии Clutch. Один из самых интересных проектов в Меркури сейчас — американский фитнес-стартап, который разрабатывает мультифункциональный тренажер c ИИ под капотом. В команду, которая создает для тренажера мобильное приложение, нужны Android-разработчики из этих городов: Самара, Краснодар, Саратов, Тольятти.
Главное — опыт командной разработки приложений на Android от года, понимание жизненного цикла основных компонентов платформы, знание SQL и английский на уровне чтения технической документации.
Вот контакты, где можно узнать подробности и откликнуться:
✉️ job@mercdev.com
💬@Kate_Rinna
А тут о том, кто они такие и чем занимаются. Например, Меркури помогли разработать первые фитнес-трекеры для Fitbit — корпорации, которую недавно купил Google, софт для световых панелей, которые засветились в клипе Coldplay, мобильное приложение для Бургер Кинга и много чего еще крутого.
#DSL
Effective Kotlin Item 35: Consider defining a DSL for complex object creation
Руководство по созданию собственного DSL для описания создания сложных объектов или вложенных структур
Effective Kotlin Item 35: Consider defining a DSL for complex object creation
Руководство по созданию собственного DSL для описания создания сложных объектов или вложенных структур
#native
Try the New Kotlin/Native Memory Manager Development Preview
Стала доступна новая модель управления памяти в Kotlin/Native. Пока это лишь ранняя стадия, но она призвана решить ряд текущих сложностей, а именно теперь:
👉 Убраны ограничения на использование объектов из нескольких потоков
👉 Concurrent примитивы без дополнительного менеджмента со стороны разработчиков
👉 Больше не надо вызывать
Всё это пока только в работе и новая модель памяти станет общедоступной в Kotlin 1.6
🔗 Руководство как попробовать новую модель управлением памятью
🔗 Обновленный пример с K/N Concyrrency
Все новые изменения - это большой шаг для решения многих сложностей, которые не даёт массовости для Kotlin под iOS и KMM
Try the New Kotlin/Native Memory Manager Development Preview
Стала доступна новая модель управления памяти в Kotlin/Native. Пока это лишь ранняя стадия, но она призвана решить ряд текущих сложностей, а именно теперь:
👉 Убраны ограничения на использование объектов из нескольких потоков
👉 Concurrent примитивы без дополнительного менеджмента со стороны разработчиков
👉 Больше не надо вызывать
freeze()
, за исключением AtomicReference
Всё это пока только в работе и новая модель памяти станет общедоступной в Kotlin 1.6
🔗 Руководство как попробовать новую модель управлением памятью
🔗 Обновленный пример с K/N Concyrrency
Все новые изменения - это большой шаг для решения многих сложностей, которые не даёт массовости для Kotlin под iOS и KMM
#coroutines
Coroutine builders
Разбор того как можно создать Coroutine (launch, async, runBlocking), какую роль в этом играет structured concurrency и CoroutineScope
Coroutine builders
Разбор того как можно создать Coroutine (launch, async, runBlocking), какую роль в этом играет structured concurrency и CoroutineScope