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
lateinit хорошее решение в Kotlin?
Anonymous Poll
21%
Хорошее
45%
Необходимое зло
21%
Плохое, не стоит его использовать
3%
Что это?
10%
Не участвую в опросе
#AndroidBroadcast #kotlin #lateinit
lateinit - это зло и «костыль» Kotlin
Я всегда плохо высказывался о lateinit. Он принёс много боли мне и разработчикам в моей команде. Пора показать почему и на что его заменить, а когда это не получится. Конечно же расскажу при чём тут Dagger 2.
Видео сделано при поддержке Avito.Tech
💰 Поддержи проект на Boosty или Patreon, чтобы получать контент на канале регулярно
lateinit - это зло и «костыль» Kotlin
Я всегда плохо высказывался о lateinit. Он принёс много боли мне и разработчикам в моей команде. Пора показать почему и на что его заменить, а когда это не получится. Конечно же расскажу при чём тут Dagger 2.
Видео сделано при поддержке Avito.Tech
💰 Поддержи проект на Boosty или Patreon, чтобы получать контент на канале регулярно
#coroutines
Coroutines under the hood
Разбор работы Coroutine под капотом, ведь как-то это магия должна работать на JVM 1.6
Coroutines under the hood
Разбор работы Coroutine под капотом, ведь как-то это магия должна работать на JVM 1.6
#serialization #kotlinx
Kotlinx.Serialization 1.3.0-RC
👉 Экспериментальная версия сериализации с и в IO потоки
👉 Возможность отдельно управлять сериализацией свойств в значение по умолчанию
👉 Возможность пропускать сериализацию свойств, значение который
👉 Возможность использовать classDiscriminator отдельно для каждой иерархии
👉 Поддержка Java 9 модулей
👉 Поддержка Apple Silicon
🔨 Исправление багов и минорные улучшения
Kotlinx.Serialization 1.3.0-RC
👉 Экспериментальная версия сериализации с и в IO потоки
👉 Возможность отдельно управлять сериализацией свойств в значение по умолчанию
👉 Возможность пропускать сериализацию свойств, значение который
null
👉 Возможность использовать classDiscriminator отдельно для каждой иерархии
👉 Поддержка Java 9 модулей
👉 Поддержка Apple Silicon
🔨 Исправление багов и минорные улучшения
#coroutines
What is CoroutineContext and how does it work?
Неотъемлемой частью любой Coroutine является CoroutineContext, которые содержит различные элементы, влияющие на работу Coroutine. В статье рассказывают про них подробнее, но и официальная документация хороша
What is CoroutineContext and how does it work?
Неотъемлемой частью любой Coroutine является CoroutineContext, которые содержит различные элементы, влияющие на работу Coroutine. В статье рассказывают про них подробнее, но и официальная документация хороша
#kapt #ksp
Accelerated Kotlin build times with Kotlin Symbol Processing 1.0
Kotlin Symbol Processing - замена KAPT, которая быстрее и поддерживает не только JVM, но и Kotlin/JS и Kotlin/Native. Moshi и Room уже поддерживают KSP, очень жду когда Dagger подтянется
Accelerated Kotlin build times with Kotlin Symbol Processing 1.0
Kotlin Symbol Processing - замена KAPT, которая быстрее и поддерживает не только JVM, но и Kotlin/JS и Kotlin/Native. Moshi и Room уже поддерживают KSP, очень жду когда Dagger подтянется