Новый UI доступен в Android Studio
В Android Studio Giraffe Canary 2 появилась возможность включить новый UI. Пробуйте и рассказывайте в комментах, что удобно, а что – не очень.
В Android Studio Giraffe Canary 2 появилась возможность включить новый UI. Пробуйте и рассказывайте в комментах, что удобно, а что – не очень.
dependency-guard – плагин для контроля зависимостей
В большой команде периодически возникают проблемы с изменением версий или добавлением зависимостей. Можно случайно добавить в продакшн тестовую зависимость, или вызвать креш в рантайме из-за поднятой версии какой-то из транзитивных зависимостей. Gradle-плагин dependency-guard позволяет это контролировать.
Он генерирует файл, содержащий явный список всех транзитивных зависимостей и их версий, что дает возможность следить за изменениями на PR и составлять черные списки библиотек.
В большой команде периодически возникают проблемы с изменением версий или добавлением зависимостей. Можно случайно добавить в продакшн тестовую зависимость, или вызвать креш в рантайме из-за поднятой версии какой-то из транзитивных зависимостей. Gradle-плагин dependency-guard позволяет это контролировать.
Он генерирует файл, содержащий явный список всех транзитивных зависимостей и их версий, что дает возможность следить за изменениями на PR и составлять черные списки библиотек.
GitHub
GitHub - dropbox/dependency-guard: A Gradle plugin that guards against unintentional dependency changes.
A Gradle plugin that guards against unintentional dependency changes. - dropbox/dependency-guard
Профилирование и оптимизация Compose
Разбор возможных проблем, которые могут повлечь за собой лишние рекомпозиции и ухудшить перфоманс Compose, и инструментов, которые помогают в дебаге.
Разбор возможных проблем, которые могут повлечь за собой лишние рекомпозиции и ухудшить перфоманс Compose, и инструментов, которые помогают в дебаге.
Сериализация sealed interfaces с kotlinx.serialization
В статье разбирается, как с помощью поддержки полиморфизма в kotlinx.serialization можно написать сериализатор, выюирающий разные классы в зависимости от значения поля type.
В статье разбирается, как с помощью поддержки полиморфизма в kotlinx.serialization можно написать сериализатор, выюирающий разные классы в зависимости от значения поля type.
Что происходит со Scala
На этой неделе вышел топовый пост про текущее состояние Scala, ее проблемы и возможные пути будущего развития. Очень советую даже тем, кто со Scala совсем не имеет дела – путь, выбранный языком, сильно отличается от Kotlin, и сравнивать их друг с другом очень интересно.
На этой неделе вышел топовый пост про текущее состояние Scala, ее проблемы и возможные пути будущего развития. Очень советую даже тем, кто со Scala совсем не имеет дела – путь, выбранный языком, сильно отличается от Kotlin, и сравнивать их друг с другом очень интересно.
John A De Goes
Scala Resurrection
Scala's market may not grow any larger unless we take action to address the challenges the language faces
Совместимость библиотек и binary-compatibility-validator
В статье разбирается несколько типов совместимости, о которых должны думать авторы библиотек: backward/forward и source/binary compatibility. А для того, чтобы авторы библиотек случайно ломали binary совместимость, есть binary-compatibility-validator.
В статье разбирается несколько типов совместимости, о которых должны думать авторы библиотек: backward/forward и source/binary compatibility. А для того, чтобы авторы библиотек случайно ломали binary совместимость, есть binary-compatibility-validator.
Релиз Kotlin 1.8.10
Вышла патч-версия для последнего мажорного релиза Kotlin с исправлениями багов в новом фронтенде, serialization плагине, Gradle и Kapt.
Вышла патч-версия для последнего мажорного релиза Kotlin с исправлениями багов в новом фронтенде, serialization плагине, Gradle и Kapt.
GitHub
Release Kotlin 1.8.10 · JetBrains/kotlin
Changelog
Compiler
KT-55483 K2: Fir is not initialized for FirRegularClassSymbol java/lang/invoke/LambdaMetafactory
KT-55729 "None of the following functions can be called with the arguments ...
Compiler
KT-55483 K2: Fir is not initialized for FirRegularClassSymbol java/lang/invoke/LambdaMetafactory
KT-55729 "None of the following functions can be called with the arguments ...
Планы Kotlin по улучшению опыта авторов библиотек
Опыт авторов библиотек – один из приоритетов команды Kotlin на ближайший год. В частности, планируется сделать следующее:
✍️Улучшить синтаксис и тулинг для KDoc
🗒️Выпустить стабильную Dokka
📚Написать подробный гайд с лучшими практиками по дизайну JVM и мультиплатформенных библиотек
Опыт авторов библиотек – один из приоритетов команды Kotlin на ближайший год. В частности, планируется сделать следующее:
✍️Улучшить синтаксис и тулинг для KDoc
🗒️Выпустить стабильную Dokka
📚Написать подробный гайд с лучшими практиками по дизайну JVM и мультиплатформенных библиотек
The JetBrains Blog
We Are Improving Library Authors' Experience! | The Kotlin Blog
Improvements for library authors’ experience planned and what’s already been done, particularly the Dokka documentation update.
Как Square оптимизировал время билда
Команды Square подбивает итоги последнего года работы команды, которая занималась оптимизацией Gradle билда. Основная идея – даже для очень больших проектов можно оптимизировать работу Gradle настолько, чтобы сделать миграцию на Bazel или другую новую билд-систему бессмысленной.
Команды Square подбивает итоги последнего года работы команды, которая занималась оптимизацией Gradle билда. Основная идея – даже для очень больших проектов можно оптимизировать работу Gradle настолько, чтобы сделать миграцию на Bazel или другую новую билд-систему бессмысленной.
Релиз Compose Multiplatform 1.3.0
Вышел новый релиз мультиплатформенного Compose, в котором поправили баги, подтянули версии используемых зависимостей до актуальных, и завезли несколько новых фичей для Compose Desktop.
Вышел новый релиз мультиплатформенного Compose, в котором поправили баги, подтянули версии используемых зависимостей до актуальных, и завезли несколько новых фичей для Compose Desktop.
GitHub
Release 1.3.0 · JetBrains/compose-multiplatform
Common
Fixes
Fix configuration cache issues
Use global directory to download wix toolset
IDEA plugin - Redo: set until-build to undefined value
Desktop
Features
Desktop AlertDialog scrim color
M...
Fixes
Fix configuration cache issues
Use global directory to download wix toolset
IDEA plugin - Redo: set until-build to undefined value
Desktop
Features
Desktop AlertDialog scrim color
M...
Вышла первая Beta версия Kotlin 1.8.20
🕸️Kotlin/Wasm официально вышел в статус Experimental, с поддержкой в stdlib и kotlin.test. Код, скомпилированный Kotlin/Wasm, будет запускаться в последних версиях Chrome, Firefox и Edge со специальным включенным флагом.
🏎️Новая инкременталка для Kotlin/JVM включена по дефолту.
☠️Задепрекейчена часть таргетов Kotlin/Native. Детали описаны в отдельном блогпосте.
🧱В мультиплатформу завезли поддержку Gradle Composite Builds.
🤩В стандартной библиотеке появилась экспериментальная поддержка Base64 и common Closeable интерфейса.
А самое главное – заспойлерили, что один из следующих мажорных релизов будет называться Kotlin 2.0!
🕸️Kotlin/Wasm официально вышел в статус Experimental, с поддержкой в stdlib и kotlin.test. Код, скомпилированный Kotlin/Wasm, будет запускаться в последних версиях Chrome, Firefox и Edge со специальным включенным флагом.
🏎️Новая инкременталка для Kotlin/JVM включена по дефолту.
☠️Задепрекейчена часть таргетов Kotlin/Native. Детали описаны в отдельном блогпосте.
🧱В мультиплатформу завезли поддержку Gradle Composite Builds.
🤩В стандартной библиотеке появилась экспериментальная поддержка Base64 и common Closeable интерфейса.
А самое главное – заспойлерили, что один из следующих мажорных релизов будет называться Kotlin 2.0!
Релиз Decompose 1.0.0
Вышел первый стабильный релиз библиотеки Decompose, мулььиплатформенной библиотеки для организации роутинга в приложении. Основные изменения в релизе:
*️⃣Поддержка последних версий Kotlin и Compose
*️⃣Стабилизированы Generic Navigation и Stack Animation API
*️⃣Новый способ интеграции рутового компонента во фрагменты
Вышел первый стабильный релиз библиотеки Decompose, мулььиплатформенной библиотеки для организации роутинга в приложении. Основные изменения в релизе:
*️⃣Поддержка последних версий Kotlin и Compose
*️⃣Стабилизированы Generic Navigation и Stack Animation API
*️⃣Новый способ интеграции рутового компонента во фрагменты
Цвета и цветовые пространства
Вы красите кнопки, но делаете это без уважения к цветам. Чтобы исправить ситуацию, мы записали выпуск Подлодки про то, что такое цвета, какие бывают цветовые пространства и чем они различаются, как они выглядят в картинках и градиентах и как отображаются на экранах.
Вдогонку – хорошая статья за авторством гостя про историю развития цвета в CSS и новый формат OLKCH.
Вы красите кнопки, но делаете это без уважения к цветам. Чтобы исправить ситуацию, мы записали выпуск Подлодки про то, что такое цвета, какие бывают цветовые пространства и чем они различаются, как они выглядят в картинках и градиентах и как отображаются на экранах.
Вдогонку – хорошая статья за авторством гостя про историю развития цвета в CSS и новый формат OLKCH.
podlodka.io
Podlodka #305 – Цвета и цветовые пространства
Специально для тех, кто считает несправедливыми шутки про “покраску кнопок”, мы с головой ушли в увлекательный и непростой мир представления цвета в компьютерных системах. Так вот, цвета – это очень сложно! Вместе с Андреем Ситником разбираемся почему.
Кастомизация нативного Share Sheet
Если вам раньше не хватало возможностей кастомизации нативного диалога шаринга, посмотрите на него еще раз – за последние годы его существенно подкрутили. В статье показывают, как, например, можно задавать свой кастомный текст, который будет шариться, или трекать в аналитику, шаринг в какие приложения используется чаще всего.
Если вам раньше не хватало возможностей кастомизации нативного диалога шаринга, посмотрите на него еще раз – за последние годы его существенно подкрутили. В статье показывают, как, например, можно задавать свой кастомный текст, который будет шариться, или трекать в аналитику, шаринг в какие приложения используется чаще всего.
Android Dev Social
You don't need a custom share sheet for that!
Native share sheets have come a long way on Android and there's really no excuse for implementing custom share sheets anymore. Right?
At Pocket we sat down a couple years ago to retire our old custom share UI and switch to the native one, but we uncovered…
At Pocket we sat down a couple years ago to retire our old custom share UI and switch to the native one, but we uncovered…
Weekend Offer для ML- и мобильных разработчиков от VK
Мероприятие состоится уже на этих выходных, 18–19 февраля. Успевайте откликнуться до 16 февраля, чтобы познакомиться с командами, узнать больше о продуктах VK и получить шанс попасть в одну из команд (Дзен, Почта Mail.ru, Антиспам и Маруся) за два дня.
Кстати, ML Дзена ищет в свою команду и Java-разработчиков.
Мероприятие состоится уже на этих выходных, 18–19 февраля. Успевайте откликнуться до 16 февраля, чтобы познакомиться с командами, узнать больше о продуктах VK и получить шанс попасть в одну из команд (Дзен, Почта Mail.ru, Антиспам и Маруся) за два дня.
Кстати, ML Дзена ищет в свою команду и Java-разработчиков.
team.vk.company
Weekend Offer VK
Weekend Offer для ML-специалистов и мобильных разработчиков
Кластеринг в Map Compose
- Год назад команда Android зарелизила библиотеку Map Compose для работы с картами.
- В ней нет встроенной поддержки кластеризации маркеров. Если вам она требуется, нужно бриджиться с библиотекой maps-util.
- Судя по коммитам в Map Compose, через какое-то время можно ожидать и нативную поддержку кластеров.
- Год назад команда Android зарелизила библиотеку Map Compose для работы с картами.
- В ней нет встроенной поддержки кластеризации маркеров. Если вам она требуется, нужно бриджиться с библиотекой maps-util.
- Судя по коммитам в Map Compose, через какое-то время можно ожидать и нативную поддержку кластеров.
Medium
Clustering With Maps Compose For Android
Bridging the maps-util library with Jetpack Compose
ЦВТ (ГК Девелоника) ищут Android-разработчика с опытом работы от 3-х лет
Они собирают команду для работы над крупнейшей социальной сетью, которую посещают 52% российских интернет-пользователей ежедневно. Вместе вы будете развивать новое приложение для удобного общения: от мгновенных и голосовых сообщений до отправки файлов.
Перед тобой будут стоять задачи:
— Участие в командной разработке программных продуктов, проработке архитектуры, сопровождении проектов;
— Проведение код-ревью;
— Декомпозиция, оценка и постановка задач;
— Контроль качества;
— Рефакторинг.
Локация поиска: вся Россия, удаленный формат работы.
Пиши @irinasunfunny , @Bastet_111 , @ivannamry , что ты от канала Android Good Reads и стань частью одной из продуктовых команд.
Они собирают команду для работы над крупнейшей социальной сетью, которую посещают 52% российских интернет-пользователей ежедневно. Вместе вы будете развивать новое приложение для удобного общения: от мгновенных и голосовых сообщений до отправки файлов.
Перед тобой будут стоять задачи:
— Участие в командной разработке программных продуктов, проработке архитектуры, сопровождении проектов;
— Проведение код-ревью;
— Декомпозиция, оценка и постановка задач;
— Контроль качества;
— Рефакторинг.
Локация поиска: вся Россия, удаленный формат работы.
Пиши @irinasunfunny , @Bastet_111 , @ivannamry , что ты от канала Android Good Reads и стань частью одной из продуктовых команд.
Как Reddit переезжали на Anvil
Дано: приложение на 500 модулей, активно использующее Dagger 2 и кастомный kapt процессор для борьбы с циклическими зависимостями. Команде не нравилось, что их DI сетап слишком сложный, онбордить новых людей в него трудно, а использование kapt существенно замедляет сборку.
Чтобы решить эти проблемы, проект перевели на работу с Anvil. В статье – история миграции, результаты и советы тем, кто решит повторить их путь.
Дано: приложение на 500 модулей, активно использующее Dagger 2 и кастомный kapt процессор для борьбы с циклическими зависимостями. Команде не нравилось, что их DI сетап слишком сложный, онбордить новых людей в него трудно, а использование kapt существенно замедляет сборку.
Чтобы решить эти проблемы, проект перевели на работу с Anvil. В статье – история миграции, результаты и советы тем, кто решит повторить их путь.
Reddit
From the RedditEng community on Reddit
Explore this post and more from the RedditEng community
Инспекции для переезда на Gradle Version Catalogs
Gradle Version Catalogs – новая фича Gradle, которая позволяет вынести объявление зависимостей и их версий в отдельный файл, переиспользовать его между несколькими проектами, объединять зависимости в бандлы и другими способами управлять их структурой.
Так вот, в Android Studio Giraffe появился набор новых инспекций, которые упростят переезд.
Gradle Version Catalogs – новая фича Gradle, которая позволяет вынести объявление зависимостей и их версий в отдельный файл, переиспользовать его между несколькими проектами, объединять зависимости в бандлы и другими способами управлять их структурой.
Так вот, в Android Studio Giraffe появился набор новых инспекций, которые упростят переезд.