Scaffold в Jetpack Compose
- Scaffold – особый тип composeable, который выступает родительским элементом для всех остальных и задает основной лэйаут.
- Его основные задачи – выделять место для системных элементов вроде Top/Bottom Bars и FloatingActionButton, и автоматически применять цвета выбранной темы к бэкграунду.
- Есть несколько разных типов Scaffold. Например, BottomSheetScaffold или BackdropScaffold, которые приложены скринами к посту.
- Scaffold не обязателен для использования, и его функциональность можно реализовать вручную.
- Scaffold – особый тип composeable, который выступает родительским элементом для всех остальных и задает основной лэйаут.
- Его основные задачи – выделять место для системных элементов вроде Top/Bottom Bars и FloatingActionButton, и автоматически применять цвета выбранной темы к бэкграунду.
- Есть несколько разных типов Scaffold. Например, BottomSheetScaffold или BackdropScaffold, которые приложены скринами к посту.
- Scaffold не обязателен для использования, и его функциональность можно реализовать вручную.
👍16💩1
Как работает Gradle
Команда Gradle начала новую серию постов про разные интересные детали того, как работает билд тулинг. В первом посте разбирается, чем отличаются разные способы запуска билда и что происходит в каждый момент под капотом.
Команда Gradle начала новую серию постов про разные интересные детали того, как работает билд тулинг. В первом посте разбирается, чем отличаются разные способы запуска билда и что происходит в каждый момент под капотом.
👍7🤔5🔥1
Бесплатные вебинары от Gradle
Только блогом активность Gradle не ограничивается. В январе пройдет несколько интересных вебинаров, которые открыты всем для участия:
📆Воркшоп по ускорению билдов и траблшутингу, 24 января
📆Интервью Николая Красько, тимлида инфраструктурной команды в Kotlin, про то, как оптимизируется опыт разработчиков внутри команды Kotlin, 25 января
📆Воркшоп по разным аспектам конфигурации Gradle с помощью Kotlin DSL, 26 января
📆Deep dive в Maven Build Cache, 31 января
Только блогом активность Gradle не ограничивается. В январе пройдет несколько интересных вебинаров, которые открыты всем для участия:
📆Воркшоп по ускорению билдов и траблшутингу, 24 января
📆Интервью Николая Красько, тимлида инфраструктурной команды в Kotlin, про то, как оптимизируется опыт разработчиков внутри команды Kotlin, 25 января
📆Воркшоп по разным аспектам конфигурации Gradle с помощью Kotlin DSL, 26 января
📆Deep dive в Maven Build Cache, 31 января
Gradle
Events for Gradle, Develocity, and Developer Productivity | Gradle
Our events explore the latest trends in developer productivity and experience, with expert speakers teaching best practices and sharing tactical tips.
👍6😐2
Как Lyft собирает метрики потребления памяти в проде
Для каждой новой фичи, выпускаемой в виде эксперимента, Lyft дополнительно собирает различные технические метрики, в частности, потребление приложением памяти. Если при включенном эксперименте оно повышается, это служит сигналом наличия утечки памяти.
В статье рассказывается о метриках, по которым можно судить о потреблении памяти, границах их применимости, особенностях сбора и анализа.
Для каждой новой фичи, выпускаемой в виде эксперимента, Lyft дополнительно собирает различные технические метрики, в частности, потребление приложением памяти. Если при включенном эксперименте оно повышается, это служит сигналом наличия утечки памяти.
В статье рассказывается о метриках, по которым можно судить о потреблении памяти, границах их применимости, особенностях сбора и анализа.
Релиз compose.compiler 1.4.0
Вышла новая версия androidx.compose.compiler с поддержкой Kotlin 1.8.0. Промежутки между релизами Kotlin и совместимой версии Compose становятся все меньше, это радует!
Вышла новая версия androidx.compose.compiler с поддержкой Kotlin 1.8.0. Промежутки между релизами Kotlin и совместимой версии Compose становятся все меньше, это радует!
Android Developers
Compose Compiler | Jetpack | Android Developers
👍13🤯1😐1
Как работает Activity
Цикл из двух статей, в которых разбирается, как стартует процесс приложения и все Activity, как показывается сплеш-скрин, в чем суть концепции Window, как вызываются методы жизненных циклов Activity и что происходит с Activity при сворачивании и разворачивании.
Цикл из двух статей, в которых разбирается, как стартует процесс приложения и все Activity, как показывается сплеш-скрин, в чем суть концепции Window, как вызываются методы жизненных циклов Activity и что происходит с Activity при сворачивании и разворачивании.
👍22
Роадмап Koin на 2023
Koin переходит на шестимесячный релизный цикл, синхронизированный с Kotlin. Основные планы (H1 – первый мажорный релиз, H2 – второй):
*️⃣KMM Compose API (H1/H2)
*️⃣Улучшения Koin Annotations (H1/H2)
*️⃣Оптимизация кишков (H2)
*️⃣Бридж с iOS и Kotlin Native (H1/H2)
*️⃣DSL и аннотации для Graph Test API (H2)
*️⃣Поддержка новых фичей Ktor (H1/H2)
Koin переходит на шестимесячный релизный цикл, синхронизированный с Kotlin. Основные планы (H1 – первый мажорный релиз, H2 – второй):
*️⃣KMM Compose API (H1/H2)
*️⃣Улучшения Koin Annotations (H1/H2)
*️⃣Оптимизация кишков (H2)
*️⃣Бридж с iOS и Kotlin Native (H1/H2)
*️⃣DSL и аннотации для Graph Test API (H2)
*️⃣Поддержка новых фичей Ktor (H1/H2)
🔥14🤔3👍1😁1💩1
Всем привет! Мы в команде Kotlin очень хотим пообщаться с теми, кто активно разрабатывает проекты на Flutter или React Native. Или, наоборот, попробовал, а потом вернулся к нативной разработке. Если готовы созвониться, рассказать про свой опыт и поотвечать на наши вопросы – заполняйте форму, за участие в интервью отсыпаем всяких ништяков.
Важный момент – эти ништяки мы отсыпать можем только тем, кто находится не в России/Беларуси, поэтому стоит отзываться, только если вы сейчас находитесь за пределами.
Важный момент – эти ништяки мы отсыпать можем только тем, кто находится не в России/Беларуси, поэтому стоит отзываться, только если вы сейчас находитесь за пределами.
💩33❤7👌6🔥4👎3👍1
Зачем нужен тип Either в ArrowKt
Arrow.Kt – библиотека, которая дает кучу типов и абстракций, которые помогают писать на Kotlin в функциональном стиле. Один из ее типов – Either. Он может содержать в себе значения одного из двух явно указанных типов. Самый стандартный юзкейс для него – быть одновременно и типом данных, представляющим успешный ответ сервера, и типом, представляющим ошибку с деталями.
Arrow.Kt – библиотека, которая дает кучу типов и абстракций, которые помогают писать на Kotlin в функциональном стиле. Один из ее типов – Either. Он может содержать в себе значения одного из двух явно указанных типов. Самый стандартный юзкейс для него – быть одновременно и типом данных, представляющим успешный ответ сервера, и типом, представляющим ошибку с деталями.
👍13👎8💩5
Новый UI доступен в Android Studio
В Android Studio Giraffe Canary 2 появилась возможность включить новый UI. Пробуйте и рассказывайте в комментах, что удобно, а что – не очень.
В Android Studio Giraffe Canary 2 появилась возможность включить новый UI. Пробуйте и рассказывайте в комментах, что удобно, а что – не очень.
🔥8😐4👍1
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
👍6😐2❤1
Профилирование и оптимизация Compose
Разбор возможных проблем, которые могут повлечь за собой лишние рекомпозиции и ухудшить перфоманс Compose, и инструментов, которые помогают в дебаге.
Разбор возможных проблем, которые могут повлечь за собой лишние рекомпозиции и ухудшить перфоманс Compose, и инструментов, которые помогают в дебаге.
👍13🔥3😐2🤔1
Сериализация sealed interfaces с kotlinx.serialization
В статье разбирается, как с помощью поддержки полиморфизма в kotlinx.serialization можно написать сериализатор, выюирающий разные классы в зависимости от значения поля type.
В статье разбирается, как с помощью поддержки полиморфизма в kotlinx.serialization можно написать сериализатор, выюирающий разные классы в зависимости от значения поля type.
🤔5👎3👍2
Что происходит со 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
👍4🤔4
Совместимость библиотек и binary-compatibility-validator
В статье разбирается несколько типов совместимости, о которых должны думать авторы библиотек: backward/forward и source/binary compatibility. А для того, чтобы авторы библиотек случайно ломали binary совместимость, есть binary-compatibility-validator.
В статье разбирается несколько типов совместимости, о которых должны думать авторы библиотек: backward/forward и source/binary compatibility. А для того, чтобы авторы библиотек случайно ломали binary совместимость, есть binary-compatibility-validator.
👍5🤔3
Релиз 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 ...
👍8
Планы 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.
🔥7👍1
Как Square оптимизировал время билда
Команды Square подбивает итоги последнего года работы команды, которая занималась оптимизацией Gradle билда. Основная идея – даже для очень больших проектов можно оптимизировать работу Gradle настолько, чтобы сделать миграцию на Bazel или другую новую билд-систему бессмысленной.
Команды Square подбивает итоги последнего года работы команды, которая занималась оптимизацией Gradle билда. Основная идея – даже для очень больших проектов можно оптимизировать работу Gradle настолько, чтобы сделать миграцию на Bazel или другую новую билд-систему бессмысленной.
🤔11👍3
Релиз 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...