Подробная инструкция по тому, как собирать Android приложения в докере и настраивать все необходимое окружение.
Хабр
Как и зачем собирать Android приложение в docker контейнере
Добрый день, уважаемые читатели. Я - Владимир, меня зовут девопс. Говорят, что девопс - это болезнь и я это вам сегодня докажу. Ответа на вопрос "зачем?" вы тут не найдете, это кликбейт, я и сам не...
Если у вас есть несколько
build.gradle.kts
файлов с повторяющимся кодом, то вот заметка про то, как организовать его реюз – то, что для Groovy делалось легко, для Kotlin Script требует нескольких хаков.Eugene Petrenko
Gradle Kotlin DSL - Code Reuse -- Eugene Petrenko
How to reuse code between several gradle.kts files with accessors
Системный обзор типов модулей, с которыми вы можете столкнуться в архитектуре своего проекта, их особенностей и способов подключения друг к другу.
Хабр
Многомодульный BDSM: стоит ли внедрять Gradle модули и какие типы модулей бывают?
С каждым годом многомодульность в Android становится всё популярнее и популярнее. Выходит всё больше и больше статей, рассказывающих о ней. Но есть ощущение, что везде описывается просто подход,...
Uber рассказывают, как они используют ApplicationExitInfo API, чтобы детектить Application Not Responding события. По сравнению с другими способами, таким образом получается детектить больше ANR и получать полную информацию о стектрейсах.
Speaker Deck
ANR overview at Uber + Leveraging ApplicationExitInfo API
Basic patterns how ANR occurs, how we detect ANR at Uber, and how you can manage your app's ANR
Presented at Droidcon San Francisco 2022 by <a href="…
Presented at Droidcon San Francisco 2022 by <a href="…
И еще про Uber. Смотрите, как выглядит их ферма из сотен Pixel девайсов. Она используется для всех видов тестирования – ручного, автотестов, перфоманса.
Антипаттерны в работе с ViewModel events и рекомендации по тому, как делать правильно. Основная идея – такие события надо обрабатывать сразу же и записывать их в стейт, на обновления которого подписана View. Другие способы прокидывания событий – например, Kotlin Channels, не гарантируют их обработки.
Medium
ViewModel: One-off event antipatterns
You should handle ViewModel events immediately, causing a UI state update. Not doing this can result in bugs and future problems!
Выход Kotlin Multiplatform Mobile в Beta переезжает с весны на осень. Основная причина – новый подход к управлению памятью еще не готов к тому, чтобы быть включенным во всех проектах по умолчанию. Помимо этого в посте рассказывается про:
🧑⚕️KDoctor – CLI утилиту, которая настраивает окружение для KMM
🧱Новые версии Xcode-Kotlin плагина и архитектурных компонентов MOKO MVVM
🇨🇳Кейс Baidu, которые заадоптили KMM у себя
🧑⚕️KDoctor – CLI утилиту, которая настраивает окружение для KMM
🧱Новые версии Xcode-Kotlin плагина и архитектурных компонентов MOKO MVVM
🇨🇳Кейс Baidu, которые заадоптили KMM у себя
The JetBrains Blog
Kotlin Multiplatform Mobile Beta Roadmap Update | The Kotlin Blog
We would like to bring you an update on the development of Kotlin Multiplatform Mobile, which is continuing to move steadily along the road to Beta status.
В открытый доступ вышли все доклады конференции Android Makers 2022. Из того, что точно надо смотреть:
📹Creating a UI toolkit from scratch от Chet Haase и Romain Guy
📹Improve build times in less time от Zac Sweers
📹Untangling coroutine testing от Marton Braun
📹Creating a UI toolkit from scratch от Chet Haase и Romain Guy
📹Improve build times in less time от Zac Sweers
📹Untangling coroutine testing от Marton Braun
YouTube
Android Makers 2022 - YouTube
Несколько способов рефакторинга build.gradle, которые помогут ускорить время конфигурации билда.
www.liutikas.net
Gradle Configuration - Death by a Thousand Cuts
In Profiling - The Good Kind post I noted that Gradle configuration phase largely runs on a single thread with each project being configured (plugins applied...
На этой неделе вам придется смотреть очень много видео! Следующей свои доклады выложила недавно прошедшая конференция Kotlin Dev Day. Подборка интересного:
📹Обновленная версия доклада Shoulders of giants от Андрея Бреслава
📹The silver bullet syndrome part 2 от Хади Харири
📹Multiplatform sccess stories and fuck ups от Лилии Абдуллиной
📹Обновленная версия доклада Shoulders of giants от Андрея Бреслава
📹The silver bullet syndrome part 2 от Хади Харири
📹Multiplatform sccess stories and fuck ups от Лилии Абдуллиной
Kotlin Dev Day
Advanced Kotlin Dev Day | Nov 24, Amsterdam
We're spicing things up for the 3rd edition of Kotlin Dev Day. We're going advanced this time!
Вышел Kotlin 1.7.0!
- K2 компилятор стал доступен для JVM проектов и показывает 2.2 ускорение компиляции
- Новая инкрементальная компиляция в Gradle, которая существенно ускоряет билд
- Underscore operator for type arguments
- Стабилизированы opt-in аннотации, definitely non-nullable типы и builder inference
- K2 компилятор стал доступен для JVM проектов и показывает 2.2 ускорение компиляции
- Новая инкрементальная компиляция в Gradle, которая существенно ускоряет билд
- Underscore operator for type arguments
- Стабилизированы opt-in аннотации, definitely non-nullable типы и builder inference
The JetBrains Blog
Kotlin 1.7.0 Released | The Kotlin Blog
Kotlin 1.7.0 unveils the Alpha version of the new Kotlin/JVM K2 compiler, stabilizes language features, and brings performance improvements for the JVM, JS, and Native platforms.
Вышел первый стабильный релиз библиотеки Paparazzi от CashApp. Она рендерит UI для снятия снепшотов без запуска приложения на девайсе или эмуляторе.
GitHub
paparazzi/CHANGELOG.md at master · cashapp/paparazzi
Render your Android screens without a physical device or emulator - cashapp/paparazzi
Альфа рассказывает про свой подход к Server-Driven UI, который позволяет им гибко настраивать любые формы, в том числе с зависимыми шагами.
Хабр
Эволюция Server-Driven UI: динамические поля, хэндлеры и многошаг
Server-Driven UI (SDUI) — это подход для динамичного и гибкого пользовательского интерфейса, когда сервер посредством API сообщает приложению, какие компоненты и с каким контентом отображать. Он...
Разработчики из Reddit делятся историей того, как переезд их CDN на IPv6 повлек за собой трудноуловимый баг с медиа, которое не загружалось у части пользователей.
Reddit
From the RedditEng community on Reddit
Explore this post and more from the RedditEng community
Продолжение статьи про многомодульный BDSM. В ней разбирается, как правильно связывать api-модуль, содержащий в себе только интерфейсы и модели, и feature-модуль, содержащий логику отдельной фичи.
Хабр
Многомодульный BDSM: как связать Gradle модули и как с ними общаться после этого?
В многомодульном приложении часто возникает ситуация, когда в одном модуле находится интерфейс, а вот его реализация находится в совершенно другом модуле. Как следствие, возникает потребность как-то...
Артем Зиннатуллин опубликовал Ketolang – специальный диалект Kotlin, который удобно использовать для написания reproducable конфигураций. Например, для билд-систем. Он интересен и как пример того, как можно писать свои компиляторные плагины.
GitHub
GitHub - buildfoundation/ketolang: Future of general purpose Сonfiguration languages. Side-effect-less dialect of Kotlin.
Future of general purpose Сonfiguration languages. Side-effect-less dialect of Kotlin. - buildfoundation/ketolang
Если вам лень было изучать обновление роадмапа Kotlin, в этой статье я подбил самые интересные вещи оттуда!
The JetBrains Blog
What to Expect From the Kotlin Team in 2022–23: Key Projects and Productivity Features | The Kotlin Blog
Learn more about what improvements to expect from the Kotlin team in the next 12 months
Результаты последнего опроса пользователей Kotlin Multiplatform
🏎28% уже используют KMM в проде, 16% – начали делать на нем фичи, но еще не зарелизили, 18% – планируют использовать и находятся на стадии исследования.
🍻45% разработчиков работают с KMM более чем на одном проекте
📖В основном шарятся модели, на втором месте – нетворкинг, на третьем – сериализация.
💻20% тех, кто использует Multiplatform for Web, делают это с помощью Compose.
Если у вас тоже есть опыт работы с Kotlin Multiplatform, пройдите новый опрос, и поделитесь им с командой!
🏎28% уже используют KMM в проде, 16% – начали делать на нем фичи, но еще не зарелизили, 18% – планируют использовать и находятся на стадии исследования.
🍻45% разработчиков работают с KMM более чем на одном проекте
📖В основном шарятся модели, на втором месте – нетворкинг, на третьем – сериализация.
💻20% тех, кто использует Multiplatform for Web, делают это с помощью Compose.
Если у вас тоже есть опыт работы с Kotlin Multiplatform, пройдите новый опрос, и поделитесь им с командой!
The JetBrains Blog
The State of Kotlin Multiplatform Survey Q3-Q4 2021 | The Kotlin Blog
Find the key findings of the Kotlin Multiplatform survey Q3-Q4 2021. We asked our users about their experience with Kotlin Multiplatform.
Вы знали, что GitHub Actions можно описывать на Kotlin? Держите лайвкодинг, где показывается, как специальный DSL помогает заменить YAML.
YouTube
[TKUG #7] Piotr Krzemiński, "Authoring GitHub workflows in Kotlin"
https://github.com/krzema12/github-actions-kotlin-dsl
YAML becomes more and more ubiquitous. For simple tasks and data model it may be sufficient, but once we need to express something more, its simplicity quickly becomes a major roadblock. This is the case…
YAML becomes more and more ubiquitous. For simple tasks and data model it may be sufficient, but once we need to express something more, its simplicity quickly becomes a major roadblock. This is the case…
Если вы используете Compose и столкнулись с задачей реализации взаимозависимого скролла вложенных друг в друга View и scrollable composables, вас очень порадует экспериментальный интероп между ними! Документация и сэмпл.
GitHub
compose-samples/Jetchat at main · android/compose-samples
Official Jetpack Compose samples. Contribute to android/compose-samples development by creating an account on GitHub.