Миграция на Gradle 8.0
- В Gradle 8.0 задепрекейтят Transform API, который очень сильно влиял на время билда
- Вместо него предлагается использовать новые Artifacts API и Instrumentation API
- Artifacts API дает доступ к файлам и директориям, которые создаются в процессе сборки
- Instrumentation API дает доступ к анализу и изменениям скомпилированных классов
- Проверьте, что ваши плагины готовы к переезду на новые API, иначе не сможете мигрировать приложение на новый Gradle
- В Gradle 8.0 задепрекейтят Transform API, который очень сильно влиял на время билда
- Вместо него предлагается использовать новые Artifacts API и Instrumentation API
- Artifacts API дает доступ к файлам и директориям, которые создаются в процессе сборки
- Instrumentation API дает доступ к анализу и изменениям скомпилированных классов
- Проверьте, что ваши плагины готовы к переезду на новые API, иначе не сможете мигрировать приложение на новый Gradle
Android Developers Blog
Prepare your Android Project for Android Gradle plugin 8.0 API changes
To improve build speed and provide stable APIs, the Transform APIs will be removed in Android Gradle plugin (AGP) version 8.0.
Серия статей про Kotlin Multiplatform от Premise
Команда Premise, работающая с KMM уже полтора года, опубликовала серию статей про свой опыт с упором на сценарий интеграции в существующие приложения:
🤔Детальный разбор того, как они используют KMM: локальное окружение, CI/CD, обучение команды, эксперименты
🧱Структура и настройка проекта
🚰CI pipeline на GitHub Actions
Команда Premise, работающая с KMM уже полтора года, опубликовала серию статей про свой опыт с упором на сценарий интеграции в существующие приложения:
🤔Детальный разбор того, как они используют KMM: локальное окружение, CI/CD, обучение команды, эксперименты
🧱Структура и настройка проекта
🚰CI pipeline на GitHub Actions
Подробный разбор контекстных ресиверов
В Kotlin 1.6.20 появился прототип новой крупной языковой фичи – контекстные ресиверы. Ее основная задача – заменить собой extension functions в тех случаях, когда их не хватает.
Marcin Moskala написал самую подробную статью про фичу, что я видел, с деталями про кейсы использования и ограничения.
В Kotlin 1.6.20 появился прототип новой крупной языковой фичи – контекстные ресиверы. Ее основная задача – заменить собой extension functions в тех случаях, когда их не хватает.
Marcin Moskala написал самую подробную статью про фичу, что я видел, с деталями про кейсы использования и ограничения.
JSON Hero – супер мощный визуализатор JSON в браузере
JSON Hero – сайт, который рендерит JSON файлы в удобном для чтения представлении. Например, сразу подгружает изображения и url preview, показывает дату сразу во всех форматах, проводит валидацию файла и делает многое другое.
JSON Hero – сайт, который рендерит JSON файлы в удобном для чтения представлении. Например, сразу подгружает изображения и url preview, показывает дату сразу во всех форматах, проводит валидацию файла и делает многое другое.
Data Objects в Kotlin 1.7.20
На этой неделе в канале много материалов про новые языковые фичи в Kotlin. Держите еще одно видео – про Data Objects, прототип которых появился в версии 1.7.20.
На этой неделе в канале много материалов про новые языковые фичи в Kotlin. Держите еще одно видео – про Data Objects, прототип которых появился в версии 1.7.20.
YouTube
Data objects in Kotlin: pretty-print your objects!
Kotlin 1.7.20 comes with a new experimental feature for object declarations that especially improves work with sealed classes. This new feature is called data objects. Adding the “data” modifier to your object declarations ensures they look nice and tidy…
Сравнение производительности Moshi и kotlinx-serialization
- Производительность Moshi и Serialization практически одинаковы
- Версия Moshi, работающая с помощью рефлексии, самая медленная, ее надо избегать
- Интеграция Serialization с Okio хуже, чем в Moshi, и ухудшает перфоманс декодирования
- Производительность Moshi и Serialization практически одинаковы
- Версия Moshi, работающая с помощью рефлексии, самая медленная, ее надо избегать
- Интеграция Serialization с Okio хуже, чем в Moshi, и ухудшает перфоманс декодирования
Подробный гайд по тестированию in-app subscriptions
Ребята из RevenueCat подготовили большой гайд про то, как верифицировать работу всех сценариев работы с подписками.
Ребята из RevenueCat подготовили большой гайд про то, как верифицировать работу всех сценариев работы с подписками.
Как с помощью Kover сгенерировать бейдж с code coverage
- Kover – Gradle плагин, оценивающий процент покрытия Kotlin кода тестами
- В статье разбирается, как правильно сконфигурировать Gradle таску и GitHub Action, чтобы добавить в README проекта бейдж с code coverage
- Kover – Gradle плагин, оценивающий процент покрытия Kotlin кода тестами
- В статье разбирается, как правильно сконфигурировать Gradle таску и GitHub Action, чтобы добавить в README проекта бейдж с code coverage
This media is not supported in your browser
VIEW IN TELEGRAM
Новый фотопикер в Android
- В Android 13 задепрекейтили READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE permissions.
- Вместо этого предлагается использовать системный фотопикер, который позволяет выбрать, к каким файлам дать доступ приложению.
- В отдельных случаях можно задать более гранулярные разрешения для конкретных типов файлов.
- В Android 13 задепрекейтили READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE permissions.
- Вместо этого предлагается использовать системный фотопикер, который позволяет выбрать, к каким файлам дать доступ приложению.
- В отдельных случаях можно задать более гранулярные разрешения для конкретных типов файлов.
Обработка разовых событий ViewModel’и в Compose
- Часто логика приложения предусматривает события, который могут произойти и должны быть обработаны только один раз.
- Исторически под такое событие создавался SingleLiveEvent, который обзервился нужным компонентом.
- Автор статьи разбирает более чистый способ решения задачи, соответствующий гайдам Now in Android.
- Часто логика приложения предусматривает события, который могут произойти и должны быть обработаны только один раз.
- Исторически под такое событие создавался SingleLiveEvent, который обзервился нужным компонентом.
- Автор статьи разбирает более чистый способ решения задачи, соответствующий гайдам Now in Android.
Google переезжает с Java на Kotlin для бэкенда
Важная новость для всех, кто следит за развитием Котлина за пределами Android. Google рассказали, что выбрали Kotlin как замену для Java для своих внутренних сервисов. В рассказе много интересных данных из внутренних рисерчей:
- Больше 1000 человек в Google пишут код на Kotlin
- Всего внутри больше 11млн LoC на Kotlin
- За последний год количество Kotlin кода выросло в два раза
Важная новость для всех, кто следит за развитием Котлина за пределами Android. Google рассказали, что выбрали Kotlin как замену для Java для своих внутренних сервисов. В рассказе много интересных данных из внутренних рисерчей:
- Больше 1000 человек в Google пишут код на Kotlin
- Всего внутри больше 11млн LoC на Kotlin
- За последний год количество Kotlin кода выросло в два раза
YouTube
Google's Journey from Java to Kotlin for Server Side Programming by James Ward , Brad Hawkes , John
Kotlin is now a recommended programming language for server-side JVM usage at Google, while still providing access to a large existing Java ecosystem. With over 11 million lines of Kotlin code at Google (across server and Android), we've done a number of…
Снова про functional core, imperative shell
Автор разбирает основную идею парадигмы «functional core, imperative shell», сводя архитектуру проекта к трем компонентам – UI, Reducer и CommandHandler. Статья работает как хорошая вводная для оригинального доклада. А детали про то, как парадигма может быть применена к Android проекту, есть тут.
Автор разбирает основную идею парадигмы «functional core, imperative shell», сводя архитектуру проекта к трем компонентам – UI, Reducer и CommandHandler. Статья работает как хорошая вводная для оригинального доклада. А детали про то, как парадигма может быть применена к Android проекту, есть тут.
Релиз Compose Multiplatform 1.2
Все основные изменения в этом релизе касаются поддержки десктопа:
- Поддержка ProGuard
- API выбора элементов для фокуса с помощью клавиатуры
- Новые модификаторы для работы с мышью и клавиатурой
- Поддержка Conveyor – удобного инструмента для сборки, распространения и менеджмента апдейтов
Все основные изменения в этом релизе касаются поддержки десктопа:
- Поддержка ProGuard
- API выбора элементов для фокуса с помощью клавиатуры
- Новые модификаторы для работы с мышью и клавиатурой
- Поддержка Conveyor – удобного инструмента для сборки, распространения и менеджмента апдейтов
VisualFSM – библиотека визуализации состояний в MVI
- Логика смены состояний в MVI может быть описана в виде конечного автомата.
- Такое описание позволяет автоматически построить понятный граф переходов между этими состояниями, что упрощает анализ системы.
- VisualFSM – библиотека с набором компонентов для организации такого автомата и визуализации его состояний.
- Логика смены состояний в MVI может быть описана в виде конечного автомата.
- Такое описание позволяет автоматически построить понятный граф переходов между этими состояниями, что упрощает анализ системы.
- VisualFSM – библиотека с набором компонентов для организации такого автомата и визуализации его состояний.
Резиз превью Fleet, новой IDE от JetBrains
- Fleet – новая IDE с поддержкой Kotlin, которая может работать как в режиме обычного редактора с ограниченными возможностями по подсветке и навигации, так и в режиме полноценной IDE.
- Релиз еще очень сырой, дальше в разработке фокус будет на перфомансе, API для написания плагинов, поддержке тем.
- Детали есть в видео демо.
- Fleet – новая IDE с поддержкой Kotlin, которая может работать как в режиме обычного редактора с ограниченными возможностями по подсветке и навигации, так и в режиме полноценной IDE.
- Релиз еще очень сырой, дальше в разработке фокус будет на перфомансе, API для написания плагинов, поддержке тем.
- Детали есть в видео демо.
The JetBrains Blog
Introducing the Fleet Public Preview | The Fleet Blog
Since the initial announcement of Fleet, we have had an overwhelming amount of interest from all of you, with over 137,000 people signing up for the private preview. Our reason for starting with a clo
Landskapist – библиотека для работы с изображениями в Compose
- Библиотека загружает изображения с помощью Glide, Coil и Fresco.
- Поддерживает preview mode в Android Studio.
- Поддерживает кучу плагинов и возможность писать собственные: плейсхолдеры, анимации загрузки и отображения, трансформации.
- Библиотека загружает изображения с помощью Glide, Coil и Fresco.
- Поддерживает preview mode в Android Studio.
- Поддерживает кучу плагинов и возможность писать собственные: плейсхолдеры, анимации загрузки и отображения, трансформации.
Новости про TensorFlow Lite в Google Play Services
- TensorFlow Lite, включенный в Google Play Services, теперь считается официальным решением для инференса моделей на устройстве.
- Это значит, что можно больше не тащить TensorFlow самостоятельно.
- Так же в Google Play Services включаются TensorFlow Lite Delegates – расширения, которые позволяют процессить модели с подключением специальных чипов на устройстве и GPU.
- TensorFlow Lite, включенный в Google Play Services, теперь считается официальным решением для инференса моделей на устройстве.
- Это значит, что можно больше не тащить TensorFlow самостоятельно.
- Так же в Google Play Services включаются TensorFlow Lite Delegates – расширения, которые позволяют процессить модели с подключением специальных чипов на устройстве и GPU.
Воркшоп по знакомству с Kotlin Multiplatform Mobile
Выход в Beta подходящий момент, чтобы разобраться с КММ, собрать свой первый проект с шаренным кодом и присмотреться к интеграции в рабочий проект.
Выход в Beta подходящий момент, чтобы разобраться с КММ, собрать свой первый проект с шаренным кодом и присмотреться к интеграции в рабочий проект.