#Navigation
A comprehensive hundred-line navigation for Jetpack/Desktop Compose
Навигация - важная часть практически любого приложения. В этой статье Аркадий Иванов рассказывает, как быстро создать свой многофункциональный навигатор в чистом Composable мире. Больше всего это актуально для Desktop Compose, но также может быть полезно и для Jetpack Compose.
A comprehensive hundred-line navigation for Jetpack/Desktop Compose
Навигация - важная часть практически любого приложения. В этой статье Аркадий Иванов рассказывает, как быстро создать свой многофункциональный навигатор в чистом Composable мире. Больше всего это актуально для Desktop Compose, но также может быть полезно и для Jetpack Compose.
#AndroidBroadcast
Ktor: микросервисы, веб приложения и клиенты в одном фреймворке (Livestream)
Сегодня в 19.00 (GMT+3)
В гости Android Broadcast приходит Леонид Сташевский - Tech Lead проекта Ktor из JetBrains. Мы обсудим с ним Ktor, его особенности и будущее.
Подключайтесь чтобы послушать и задавать свои вопросы
Ktor: микросервисы, веб приложения и клиенты в одном фреймворке (Livestream)
Сегодня в 19.00 (GMT+3)
В гости Android Broadcast приходит Леонид Сташевский - Tech Lead проекта Ktor из JetBrains. Мы обсудим с ним Ktor, его особенности и будущее.
Подключайтесь чтобы послушать и задавать свои вопросы
Forwarded from Android Broadcast
#Kotlin
Announcing Kotlin Symbol Processing (KSP) Alpha
С переходом нового компилятора Kotlin в Beta статус плагины компилятора тоже развиваются. Помните Kotlin Symbol Processing (KSP), которая призвана ускорить генерацию кода в Kotlin проектах, заменив KAPT? Так вот она перешла в альфу
Статус поддерживаемых библиотек сейчас можно найти здесь, а также добавить те, которые важны вам. Сейчас адаптацию пока начали делать только в Room.
Announcing Kotlin Symbol Processing (KSP) Alpha
С переходом нового компилятора Kotlin в Beta статус плагины компилятора тоже развиваются. Помните Kotlin Symbol Processing (KSP), которая призвана ускорить генерацию кода в Kotlin проектах, заменив KAPT? Так вот она перешла в альфу
Статус поддерживаемых библиотек сейчас можно найти здесь, а также добавить те, которые важны вам. Сейчас адаптацию пока начали делать только в Room.
Early Access Program for Qodana, a New Product That Brings the “Smarts” of JetBrains IDEs Into Your CI Pipeline
IDEA помимо хорошего функционала по навигацию и рефакторинга кода содержит внутри себя множество проверок кода на разных языках - статический анализ. Использовать их отдельно от IDEA не представляется возможным, но новый продукт от JetBrains это делает. Встречайте Qodana!
Проект состоит из 2 частей: ядро IDEA без GUI для использования на CI как линтера и интерактивный Web UI для отчётов.
Посмотреть примеры работы можно на qodana.beta.teamcity.com (логинтесь как гость) и в любом проекте открывает таб "Qodana".
Использовать Qodana можно через Docker образ, GitHub Action, плагин для TeamCIty или как облачный сервис.
После такого понадобятся ли нам Detekt, Ktlint и прочие анализаторы кода? Как минимум нужен локальный Gradle плагин ещё
IDEA помимо хорошего функционала по навигацию и рефакторинга кода содержит внутри себя множество проверок кода на разных языках - статический анализ. Использовать их отдельно от IDEA не представляется возможным, но новый продукт от JetBrains это делает. Встречайте Qodana!
Проект состоит из 2 частей: ядро IDEA без GUI для использования на CI как линтера и интерактивный Web UI для отчётов.
Посмотреть примеры работы можно на qodana.beta.teamcity.com (логинтесь как гость) и в любом проекте открывает таб "Qodana".
Использовать Qodana можно через Docker образ, GitHub Action, плагин для TeamCIty или как облачный сервис.
После такого понадобятся ли нам Detekt, Ktlint и прочие анализаторы кода? Как минимум нужен локальный Gradle плагин ещё
#Kotlin1_5
New Language Features Preview in Kotlin 1.4.30
В Kotlin 1.5 появятся новые возможности, которые уже можно попробовать в 1.4.30:
👉 Стабилизация inline value классов
👉 Экспериментальная поддержка JVM records
👉 Эксперементальная поддержка sealed интерфейсов и другие улучшения sealed классов
Чтобы их попробовать вам надо указать у себя в проекте версию языка 1.5. Подробнее как это сделать здесь.
New Language Features Preview in Kotlin 1.4.30
В Kotlin 1.5 появятся новые возможности, которые уже можно попробовать в 1.4.30:
👉 Стабилизация inline value классов
👉 Экспериментальная поддержка JVM records
👉 Эксперементальная поддержка sealed интерфейсов и другие улучшения sealed классов
Чтобы их попробовать вам надо указать у себя в проекте версию языка 1.5. Подробнее как это сделать здесь.
Свойства против методов
Одна из сложностей в написании кода в Kotlin заключается в том что не во всех случаях очевидно понять что лучше использовать: свойство или метод. Официальная документация дает следующие рекомендации по использованию свойств:
👉 если свойство не бросает исключение (exception)
👉 дёшево для вычисления (или можно закешировать при первом запуске)
👉 возвращает одно и то же значение при каждом вызове, если состояние объекта не изменилось
Авто статьи разбирается в этих понятиях подробнее и раскрывает что не всё так очевидно
Одна из сложностей в написании кода в Kotlin заключается в том что не во всех случаях очевидно понять что лучше использовать: свойство или метод. Официальная документация дает следующие рекомендации по использованию свойств:
👉 если свойство не бросает исключение (exception)
👉 дёшево для вычисления (или можно закешировать при первом запуске)
👉 возвращает одно и то же значение при каждом вызове, если состояние объекта не изменилось
Авто статьи разбирается в этих понятиях подробнее и раскрывает что не всё так очевидно
Multik: Multidimensional Arrays in Kotlin
JetBrains представила первое превью библиотеки Multik, которая предназначена для работы с многомерными массивами
JetBrains представила первое превью библиотеки Multik, которая предназначена для работы с многомерными массивами
#IDEA
Празднование 20 лет IntelliJ IDEA
Популярнейшей IDE исполнилось 20 лет. В честь этого события нас ждет конференция, которая пройдет 25 и 26 февраля. Мы узнаем о возможностях продукта и его будущем.
Празднование 20 лет IntelliJ IDEA
Популярнейшей IDE исполнилось 20 лет. В честь этого события нас ждет конференция, которая пройдет 25 и 26 февраля. Мы узнаем о возможностях продукта и его будущем.
#Compose #Desktop
Jetpack Compose for Desktop: Milestone 3 Released
Compose для настольных ОС развивается и получил новые улучшения:
👉 Улучшение рендеринга
👉 Улучшение работы текстовых полей
👉 Поддержка SVG
👉 Возможность интеграции Swing компонентов в Compose
👉 Улучшение дистрибьюции нативных приложений
Jetpack Compose for Desktop: Milestone 3 Released
Compose для настольных ОС развивается и получил новые улучшения:
👉 Улучшение рендеринга
👉 Улучшение работы текстовых полей
👉 Поддержка SVG
👉 Возможность интеграции Swing компонентов в Compose
👉 Улучшение дистрибьюции нативных приложений
#Coroutines
How We Test Concurrent Primitives in Kotlin Coroutines
Рассказ о библиотеки для тестирования concurrent структур данных - Lincheck
How We Test Concurrent Primitives in Kotlin Coroutines
Рассказ о библиотеки для тестирования concurrent структур данных - Lincheck
#Multiplatform #Mobile
Готовим Большую Фичу™ на Kotlin Multiplatform. Доклад Яндекса
Яндекс рассказывает о своем опыте интеграции фичи в мобильный карты Яндекса с переиспользованием коды между Android и iOS приложениями
Готовим Большую Фичу™ на Kotlin Multiplatform. Доклад Яндекса
Яндекс рассказывает о своем опыте интеграции фичи в мобильный карты Яндекса с переиспользованием коды между Android и iOS приложениями
#Coroutines #Flow #Sequence
Use Sequence instead of Kotlin Flow when…
Flow - классный подход, но всегда ли нужно использовать его, а можно обойтись его синхронным подходом - Sequence? В статье автор разбирается когда вполне не нужны Coroutines
Use Sequence instead of Kotlin Flow when…
Flow - классный подход, но всегда ли нужно использовать его, а можно обойтись его синхронным подходом - Sequence? В статье автор разбирается когда вполне не нужны Coroutines
#Multiplatform #Mobile #HowTo
📺 Как создать Kotlin Multiplatform Mobile проект (28 мин)
Демонстрация создания Kotlin Mobile Multiplatform проекта в Android Studio при помощи KMM плагина. Добавляются необходимые зависимости и прочая базовая настройка.
📺 Как создать Kotlin Multiplatform Mobile проект (28 мин)
Демонстрация создания Kotlin Mobile Multiplatform проекта в Android Studio при помощи KMM плагина. Добавляются необходимые зависимости и прочая базовая настройка.
#Coroutines
Вышла новая версия kotlinx.coroutines 1.4.3 в которой произошли минорные улучшения и исправление багов
Вышла новая версия kotlinx.coroutines 1.4.3 в которой произошли минорные улучшения и исправление багов
Вышла первая превью следующей версии Kotlin - 1.5.0
Первая превью не отметилась множеством нововведений, но вот краткий список:
👉 Конкатенация строка с помощью invokedynamic для JVM target 9+
👉 Поддержка Java records
👉 JVM target 1.6 теперь Deprecated
👉 Поддержка suspend функций в функциональных интерфейсах
👉 Возможность объявлять protected конструкторы в sealed классах
👉 Немного улучшений в IDE
👉 Улучшение производительность
👉 Исправление багов
Первая превью не отметилась множеством нововведений, но вот краткий список:
👉 Конкатенация строка с помощью invokedynamic для JVM target 9+
👉 Поддержка Java records
👉 JVM target 1.6 теперь Deprecated
👉 Поддержка suspend функций в функциональных интерфейсах
👉 Возможность объявлять protected конструкторы в sealed классах
👉 Немного улучшений в IDE
👉 Улучшение производительность
👉 Исправление багов
#Coroutines #Flow
My MutableStateFlow Didn’t Emit!
Успели столкнуться с ситуацией, когда MutableStateFlow ничего не эмитет? Это может происходить, потому что StateFlow предварительно проверяет на то что новое и старое значение отличаются с помощью equals
My MutableStateFlow Didn’t Emit!
Успели столкнуться с ситуацией, когда MutableStateFlow ничего не эмитет? Это может происходить, потому что StateFlow предварительно проверяет на то что новое и старое значение отличаются с помощью equals
Влияние data-классов на вес приложения - это эксперимент в котором оценивается вес в байтах на размер приложения от одной из самых популярных фичей Kotlin - data class.
В статье автор уделил много внимания написанию плагина компилятора для автоматизации теста, но всетаки результат был показан. На тысячах классов результат распакованного DEX - около примерно 1.5 мегабайта ~ 4% размера приложения (таблицу смотрите в статье).
Теперь прежде чем писать ключевое слово data у класса, задумайтесь так ли вам нужен этот функционал вам.
В статье автор уделил много внимания написанию плагина компилятора для автоматизации теста, но всетаки результат был показан. На тысячах классов результат распакованного DEX - около примерно 1.5 мегабайта ~ 4% размера приложения (таблицу смотрите в статье).
Теперь прежде чем писать ключевое слово data у класса, задумайтесь так ли вам нужен этот функционал вам.
Reaction — обработка результатов методов в Kotlin
Демонстрация способа передачи между результата выполнения операции между слоями архитектуры
Демонстрация способа передачи между результата выполнения операции между слоями архитектуры