#Multiplatform #Mobile #Multithreading
Kotlin Multiplatform. Practical multithreading
Серий статей о работе с KMM и особенности многопоточного программирования
Kotlin Multiplatform. Practical multithreading
Серий статей о работе с KMM и особенности многопоточного программирования
Bad Kotlin Extensions
Extension - одна из самых популярных возможностей языка Kotlin, но множество разработчиков используют её слишком часто и даже там где лучше использовать обычную функцию.
Автор разбирает примеры удачных и неудачных расширений, а также выводит рекомендации какие функции надо делать расширениями, а какие лучше оставлять как есть. Главное отличие - ваше расширение действительно добавляет новый функционал, глобальный для типа, либо код внутри функции очень специфичен для вашего приложения и неочевиден по смыслу другим разработчиком.
Extension - одна из самых популярных возможностей языка Kotlin, но множество разработчиков используют её слишком часто и даже там где лучше использовать обычную функцию.
Автор разбирает примеры удачных и неудачных расширений, а также выводит рекомендации какие функции надо делать расширениями, а какие лучше оставлять как есть. Главное отличие - ваше расширение действительно добавляет новый функционал, глобальный для типа, либо код внутри функции очень специфичен для вашего приложения и неочевиден по смыслу другим разработчиком.
Philips Case Study: Building Connectivity with Kotlin Multiplatform
Philips рассказывает о своём опыте использовать Kotlin Multiplatform Mobile для создания SDK под Android и IOS
Philips рассказывает о своём опыте использовать Kotlin Multiplatform Mobile для создания SDK под Android и IOS
Forwarded from Android Broadcast
#AndroidBroadcast #Kotlin #Multiplatform
MOKO - готовый фреймворк для Android + iOS приложений на основе Kotlin Mobile Multiplatform
Когда: понедельник, 1 февраля, 10:00 (GMT+3)
Опыт компании IceRock в разработке мобильных приложений (нескольких десятков) с использованием Kotlin Multiplatform. Результат этого опыта - MOKO
Гость выпуска - Алексей Михайлов, CTO в IceRock Development
Технический директор компании аутсорс разработки, в прошлом разработчик под мобильные платформы Android и iOS. В студенчестве создал soProject для S.T.A.L.K.E.R. :)
MOKO - готовый фреймворк для Android + iOS приложений на основе Kotlin Mobile Multiplatform
Когда: понедельник, 1 февраля, 10:00 (GMT+3)
Опыт компании IceRock в разработке мобильных приложений (нескольких десятков) с использованием Kotlin Multiplatform. Результат этого опыта - MOKO
Гость выпуска - Алексей Михайлов, CTO в IceRock Development
Технический директор компании аутсорс разработки, в прошлом разработчик под мобильные платформы Android и iOS. В студенчестве создал soProject для S.T.A.L.K.E.R. :)
Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter
JFrog закрывает кучу своих сервисов, включая Bintray. Практически все современные библиотеки заливались на этот сервис, так что у авторов много работы, ведь в конце февраля опубликовать новые не получится. Теперь Maven Central ?
JFrog закрывает кучу своих сервисов, включая Bintray. Практически все современные библиотеки заливались на этот сервис, так что у авторов много работы, ведь в конце февраля опубликовать новые не получится. Теперь Maven Central ?
Вышел Kotlin 1.4.30
Вышла новая версия языка Kotlin, которая включает:
👉 Backend нового IR компилятор на JVM достиг Beta. В версии 1.5.0 он станет основным. Старый компилятор больше не поддерживается
👉 Sealed интерфейсы
👉 Поддержка JVM record. Подробности
👉 Sealed классы теперь можно объявлять не только в одном Kotlin файле, но и в рамках одного пакета одного модуля
👉 inline классы теперь становятся value классами. В будущем
👉 В inline классах теперь можно использовать init блок
👉 Добавлена поддержка Gradle Configuration Cache
👉 Новое API String.uppercase() и String.lowercase() не требующиепередачи локали
Изменения в Kotlin/Native:
👉 Ускорение компиляции
👉 Поддержка Apple watchOS 64-bit симулятора
👉 Поддержка XCode 12.2
Вышла новая версия языка Kotlin, которая включает:
👉 Backend нового IR компилятор на JVM достиг Beta. В версии 1.5.0 он станет основным. Старый компилятор больше не поддерживается
👉 Sealed интерфейсы
👉 Поддержка JVM record. Подробности
👉 Sealed классы теперь можно объявлять не только в одном Kotlin файле, но и в рамках одного пакета одного модуля
👉 inline классы теперь становятся value классами. В будущем
inline class
будет невозможно использовать и останется только value class
👉 В inline классах теперь можно использовать init блок
👉 Добавлена поддержка Gradle Configuration Cache
👉 Новое API String.uppercase() и String.lowercase() не требующиепередачи локали
Изменения в Kotlin/Native:
👉 Ускорение компиляции
👉 Поддержка Apple watchOS 64-bit симулятора
👉 Поддержка XCode 12.2
Forwarded from Android Broadcast
#Coroutines #UnderTheHood
Bridging the gap between coroutines, JVM threads, and concurrency problems
Хотите узнать как работают Coroutine на JVM? Как они связаны c Java потоками? Какую роль в этом выполняет CoroutineDispatcher? В статье найдете ответы простым языком с отсылкой в исходники
Bridging the gap between coroutines, JVM threads, and concurrency problems
Хотите узнать как работают Coroutine на JVM? Как они связаны c Java потоками? Какую роль в этом выполняет CoroutineDispatcher? В статье найдете ответы простым языком с отсылкой в исходники
#KotlinX #Serialization
К выходу готовится kotlinx.serialization 1.1.0
Представили первую RC следующей версии KotlinX Serialization. В новой версии появится:
👉 Экспериментальная поддержка inline классов (только новый IR компилятор). Подробности
👉 Поддержка сериализации unsigned типов:
👉 Улучшения API
👉 Исправление багов
👉 Улучшение производительности
Для работы новой версии библиотеки вам надо обновиться до Kotlin 1.4.30 или новее. Также перед финальным релизом 1.1.0 могут быть внесены изменения.
К выходу готовится kotlinx.serialization 1.1.0
Представили первую RC следующей версии KotlinX Serialization. В новой версии появится:
👉 Экспериментальная поддержка inline классов (только новый IR компилятор). Подробности
👉 Поддержка сериализации unsigned типов:
UInt
, ULong
, UByte
, и UShort
. Подробности👉 Улучшения API
👉 Исправление багов
👉 Улучшение производительности
Для работы новой версии библиотеки вам надо обновиться до Kotlin 1.4.30 или новее. Также перед финальным релизом 1.1.0 могут быть внесены изменения.
#KEEP
Design Notes on Kotlin Value Classes
Описание текущего состояния value классов в Kotlin и их будущего.
Design Notes on Kotlin Value Classes
Описание текущего состояния value классов в Kotlin и их будущего.
#KMM
📺 Meet Kotlin Multiplatform Mobile! (6 мин)
Видеоинструкция как начать разрабатывать кроссплатформенные приложения, используя Kotlin Multiplatform Mobile (KMM).
📺 Meet Kotlin Multiplatform Mobile! (6 мин)
Видеоинструкция как начать разрабатывать кроссплатформенные приложения, используя Kotlin Multiplatform Mobile (KMM).
#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
👉 Улучшение дистрибьюции нативных приложений