Android разработчик рассказывает, как получил офферы на staff инженера в три крупные компании: Uber, Snap и Pinterest. Помимо общего алгоритма подготовки, автор делится кучей дополнительных ссылок по теме. Если подумываете пойти по собесам – рекомендую.
David Chang
How I Landed Three Staff Engineer Offers
I began my interviewing journey in March 2022, when I polished my resume and applied to several big tech companies. I spent 6 weeks preparing for my technical interviews while stepping into a new role at Dropbox as an interim engineering manager. I passed…
Тред про два альтернативных подхода к реализации thread safe доступа к синглтонам, один из которых используется в Koin, а другой – в Dagger.
Twitter
P.Y.
One argument that I haven't seen yet in the Koin vs Dagger debate: implementation of thread safe & efficient singleton access. In a JVM env, implementing lazy singletons in an efficient and thread safe way is tricky. Short thread because it's interesting…
Вышло июньское обновление публичного роадмапа Kotlin! В каждом из 50 тикетов есть детали про полученные за последние время результаты и следующие планы команды. Голосуйте за самые важные и оставляйте свой фидбэк в комментариях.
Из самого интересного:
📌Новый оператор `..<` на замену `until`
📌Подробный план выхода K2 компилятора в Beta
📌Стабилизация klib формата для мультиплатформенных библиотек
📌Поддержка парсинга и форматирования дат в kotlinx-datetime
Из самого интересного:
📌Новый оператор `..<` на замену `until`
📌Подробный план выхода K2 компилятора в Beta
📌Стабилизация klib формата для мультиплатформенных библиотек
📌Поддержка парсинга и форматирования дат в kotlinx-datetime
Подробная инструкция по тому, как собирать 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