Скорее всего, вы уже успели разобраться со всеми главными анонсами этого Google I/O. Но на всякий случай держите дайджест самых интересных вещей:
🎨Jetpack Compose Beta 1.2: загружаемые шрифты, LazyGrids, window insets, поддержка Animation Preview
🛠Поддержка Live Edit в Android Studio: хот релоад для всех изменений в Compose Preview, эмуляторе и физическом устройстве
⌚️Compose для Wear OS: специальные компоненты и диалоги для часов, поддержка всего тулинга в Android Stufio
❤️Health Connect: новый API для хранения и работы с метриками здоровья пользователей
📝Google Play SDK Index: реестр сторонних SDK со сведениями о популярности, требуемых разрешениях и совместимости с версиями Android
🎨Jetpack Compose Beta 1.2: загружаемые шрифты, LazyGrids, window insets, поддержка Animation Preview
🛠Поддержка Live Edit в Android Studio: хот релоад для всех изменений в Compose Preview, эмуляторе и физическом устройстве
⌚️Compose для Wear OS: специальные компоненты и диалоги для часов, поддержка всего тулинга в Android Stufio
❤️Health Connect: новый API для хранения и работы с метриками здоровья пользователей
📝Google Play SDK Index: реестр сторонних SDK со сведениями о популярности, требуемых разрешениях и совместимости с версиями Android
Android Developers Blog
What's new in Jetpack Compose
Posted by Jolanda Verhoef , Android Developer Relations Engineer, and Anna-Chiara Bellini , Android Toolkit UI Product Manager
Поддержка MotionLayout в Jetpack Compose все еще в экспериментальном состоянии, но работать с ней вполне можно. В гайде разбирается, как с помощью MotionLayout анимировать несколько связанных между собой компонентов.
Mobile Dev Notes
Using MotionLayout in Compose — Mobile Dev Notes
A demo of using MotionLayout with Jetpack Compose with motion scene set up as a JSON5
Тестирование уведомлений в Android
🤔Можно тестировать уведомления юнит-тестами без их отправки или с помощью UIAutomator – но у таких подходов много минусов
📪Надежный способ – Espresso тесты на NotificationManager
📝Примеры тестов для проверки контента уведомления и кнопок действий
💻Pull request, в котором можно подсмотреть эти тесты
🤔Можно тестировать уведомления юнит-тестами без их отправки или с помощью UIAutomator – но у таких подходов много минусов
📪Надежный способ – Espresso тесты на NotificationManager
📝Примеры тестов для проверки контента уведомления и кнопок действий
💻Pull request, в котором можно подсмотреть эти тесты
Medium
Creating reliable tests for Android notifications
Notifications are a very important part of Android apps, and in this article we will take a look on how to create reliable tests for them.
Mobile Party в Ozon Tech для Android разработчиков
Ozon Tech ищет мобильных Middle- и Senior-разработчиков. Поэтому ребята 4 июня устраивают Mobile Need For Tech — событие, совмещающее финальные собеседования и офлайн-вечеринку, где вы сможете неформально пообщаться с разработчиками Ozon Tech.
Вас ждёт насыщенная программа: экскурсия по офису, NFT-выставка и фуршет с приглашённым диджеем.
Чтобы туда попасть, нужно пройти несколько этапов:
1. Подать заявку: https://bit.ly/3wAfL6f
2. Успешно пройти предварительное интервью
3. Прийти на финальное собеседование 4 июня
Если живёте не в Москве, Ozon Tech оплатит потенциальным кандидатам поездку на мероприятие.
Иду на Mobile Party
Ozon Tech ищет мобильных Middle- и Senior-разработчиков. Поэтому ребята 4 июня устраивают Mobile Need For Tech — событие, совмещающее финальные собеседования и офлайн-вечеринку, где вы сможете неформально пообщаться с разработчиками Ozon Tech.
Вас ждёт насыщенная программа: экскурсия по офису, NFT-выставка и фуршет с приглашённым диджеем.
Чтобы туда попасть, нужно пройти несколько этапов:
1. Подать заявку: https://bit.ly/3wAfL6f
2. Успешно пройти предварительное интервью
3. Прийти на финальное собеседование 4 июня
Если живёте не в Москве, Ozon Tech оплатит потенциальным кандидатам поездку на мероприятие.
Иду на Mobile Party
Mosaic – библиотека от Джейка Уортона для создания консольных интерфейсов поверх компилятора и рантайма Compose. Это – интересный кейс, потому что на его примере хорошо видно, что потенциальная сфера применения Compose намного шире, чем просто работа с UI. В статье разбирается, как библиотека устроена под капотом и как она взаимодействует с рантаймом Compose.
GitHub
GitHub - JakeWharton/mosaic: Build terminal UI in Kotlin using Jetpack Compose
Build terminal UI in Kotlin using Jetpack Compose. Contribute to JakeWharton/mosaic development by creating an account on GitHub.
📆Каждый день я стараюсь публиковать хотя бы один классный и полезный материал про Android разработку. За месяц их набегает несколько десятков, и ориентироваться в них не всегда легко. Чтобы облегчить вам задачу, я периодически публикую дайджест самых популярных постов, разбитых на категории.
🧱Архитектура
Про паттерн EventListener
Оценка сложности использования библиотек от Джейка Уортона
История и результаты обновления кодовой базы Slack
Как Qiwi внедряли KMM в свое приложение
Реализация OAuth в приложении: принципы работы и потенциальные проблемы
🛠Инструменты и библиотеки
Focus – Gradle плагин, в несколько раз ускоряющий время синка проекта
Исходники gradle плагина команды разработки Slack
UI тестирование анимаций Compose
Сбор и анализ перфоманс метрик в Jetpack Compose
🧐Курсы
Мега-курс из 100 уроков по Flutter на русском языке
🕵️♀️Кстати, у меня есть еще один канал, на который стоит подписаться тем, кто хочет расти в управление командой – TechLead Good Reads. Держите несколько интересных материалов оттуда на закуску!
Когда двухнедельные Scrum спринты не работают
Работающие и не работающие подходы к приоритизации
Найм разработчиков через задачи по чтению кода
Типичные ошибки начинающих тимлидов
Если дайджест вам понравился – ставьте ❤️, 👍 и 🔥. Благодаря этому я пойму, что собирал его не зря! А если у вас будут конкретные предложения по его улучшению – смело пишите в комментарии!
#digest
🧱Архитектура
Про паттерн EventListener
Оценка сложности использования библиотек от Джейка Уортона
История и результаты обновления кодовой базы Slack
Как Qiwi внедряли KMM в свое приложение
Реализация OAuth в приложении: принципы работы и потенциальные проблемы
🛠Инструменты и библиотеки
Focus – Gradle плагин, в несколько раз ускоряющий время синка проекта
Исходники gradle плагина команды разработки Slack
UI тестирование анимаций Compose
Сбор и анализ перфоманс метрик в Jetpack Compose
🧐Курсы
Мега-курс из 100 уроков по Flutter на русском языке
🕵️♀️Кстати, у меня есть еще один канал, на который стоит подписаться тем, кто хочет расти в управление командой – TechLead Good Reads. Держите несколько интересных материалов оттуда на закуску!
Когда двухнедельные Scrum спринты не работают
Работающие и не работающие подходы к приоритизации
Найм разработчиков через задачи по чтению кода
Типичные ошибки начинающих тимлидов
Если дайджест вам понравился – ставьте ❤️, 👍 и 🔥. Благодаря этому я пойму, что собирал его не зря! А если у вас будут конкретные предложения по его улучшению – смело пишите в комментарии!
#digest
Роман Елизаров написал лонгрид про то, с какими проблемами сталкиваются дизайнеры Kotlin и как они оптимизируют язык с учетом реальных потребностей его пользователей:
0️⃣Поиск компромисса между null safety и интеропом с Java
🧱 Дизайн корутин с учетом необходимости интеграции их с уже написанными библиотеками
🤝Трейдоффы в системе вывода типов, усложняющие язык, но упрощающие частые юзкейсы разработчиков
🤏Как небольшие улучшения в языке тащат за собой много сложностей
0️⃣Поиск компромисса между null safety и интеропом с Java
🧱 Дизайн корутин с учетом необходимости интеграции их с уже написанными библиотеками
🤝Трейдоффы в системе вывода типов, усложняющие язык, но упрощающие частые юзкейсы разработчиков
🤏Как небольшие улучшения в языке тащат за собой много сложностей
SIGPLAN Blog
Language Design in the Real World
Real programming languages are living things, changing and evolving. As with any production code, most of their designer’s time is spent on bug fixing and small improvements, rather than on the rad…
Первые скриншоты полностью обновленного дизайна IntelliJ IDEA. Выглядит топово, записывайтесь на бета-тест!
The JetBrains Blog
Take Part in the New UI Preview for Your JetBrains IDE | The IntelliJ IDEA Blog
Update: The beta version of the new UI is available to all users in the 2022.3 release. Go to Settings | Appearance & Behavior | New UI to enable it. Last year IntelliJ IDEA celebrated its 20th
FUNCORP на Кипре!
Инженеры из Android-команды FUNCORP создали и постоянно развивают умные контентные ленты в своих продуктах и за последнее время:
— написали полностью свою медиацию рекламы на замену твиттеровскому MoPub’у;
— разработали свою техническую аналитику, которая умеет то, чего не могут Firebase и Mixpanel;
— сейчас внедряют HTTP/3;
— а еще у них полностью самописные групповые чаты на 500 человек, карта с мемами и многое-многое другое.
У ребят много интересных задач на работу с изображениями, видео, рекламой и создание новых фич для миллионов пользователей по всему миру. А еще современный стек, MVI-архитектура на базе Kotlin, быстрые релизы, автоматизация и отсутствие бюрократии. Детали и от 4К евро по ссылочке.
P.S. С визой и релокацией на Кипр, если что, помогут. Погнали!
Инженеры из Android-команды FUNCORP создали и постоянно развивают умные контентные ленты в своих продуктах и за последнее время:
— написали полностью свою медиацию рекламы на замену твиттеровскому MoPub’у;
— разработали свою техническую аналитику, которая умеет то, чего не могут Firebase и Mixpanel;
— сейчас внедряют HTTP/3;
— а еще у них полностью самописные групповые чаты на 500 человек, карта с мемами и многое-многое другое.
У ребят много интересных задач на работу с изображениями, видео, рекламой и создание новых фич для миллионов пользователей по всему миру. А еще современный стек, MVI-архитектура на базе Kotlin, быстрые релизы, автоматизация и отсутствие бюрократии. Детали и от 4К евро по ссылочке.
P.S. С визой и релокацией на Кипр, если что, помогут. Погнали!
Контекстные ресиверы – это новая языковая фича, прототип которой был выпущен в Kotlin 1.6.20. С ее помощью можно неявно передавать в функцию дополнительные параметры. В статье разбирается пример того, как контекстные ресиверы помогают сделать запутанную бизнес-логику более понятной и корректной.
A Java geek
Toying with Kotlin's context receivers
Kotlin added the idea of Context Receivers in version 1.6.20. In this post, I’d like to toy with them to understand how useful they can be. If you want to play along, you’ll need to compile with the -Xcontext-receivers flag. The main idea behind context receivers…
Недавно вышел Koin 3.2. Разработчики начали публиковать серию статей с обзором основных фичей в релизе:
🆕Новый DSL, основанный на конструкторах
📥Module Includes, позволяющая выстраивать граф модулей и оптимизировать загрузку его веток
🆕Новый DSL, основанный на конструкторах
📥Module Includes, позволяющая выстраивать граф модулей и оптимизировать загрузку его веток
В продолжение тем недавних релизов. Apollo Kotlin (бывший Apollo Android), рассказывают про историю разработки двух ключевых фичей релиза – полного перехода на Kotlin Multiplatform и переезда с фрагментов GraphQL на интерфейсы.
Apollo GraphQL Blog
The story behind Apollo Kotlin 3 codegen
Apollo Kotlin 3 was released in December 2021. This is a significant release for Apollo Kotlin, and it’s fair to say it took significant effort to reach that point 🚀. Now that Apollo Kotlin 3 is in orbit 👨🚀, it is a good time to reflect on how we got there…
Гайд по написанию простого annotation processor’а на KSP
🤔Сравнение с Kapt
🔎Поиск всех символов в коде с определенной аннотацией
🏎Факторы, влияющие на перфоманс
Код на GitHub
🤔Сравнение с Kapt
🔎Поиск всех символов в коде с определенной аннотацией
🏎Факторы, влияющие на перфоманс
Код на GitHub
Medium
🖌 The Guide To Your First Annotation Processor with KSP (And Becoming A Kotlin Artist)
In this article, we are going to create a KSP-based annotation processor that generates new code and files based on annotation usages. If…
Обзор обновленных инструментов в Android Studio Chipmunk, которые помогают находить и исправлять визуальные глитчи, связанные с пропущенными фреймами при отрисовке.
Medium
Spot your UI jank using CPU profiler in Android Studio
Android renders user interface (UI) by generating a frame from your app and displaying it on the screen. To ensure that a user’s…
Android 11 стал самой популярной версией – 28.3% пользователей используют ее. На втором месте – Android 10 (23.9%).
Android Police
Android 11 is now the most popular version of the OS according to latest distribution numbers
Latest Android version adoptions seem to be speeding up each year
В EAP билдах Java 19 появилась поддержка давно ожидаемого Project Loom – многопоточность на виртуальных тредах, которые можно создавать в миллионных количествах. В статье подробно рассказывается про то, как работать с такими виртуальными тредами, и какой перфоманс получается на выходе.
www.morling.dev
Loom and Thread Fairness
Update Jun 3: This post is discussed on Reddit and Hacker News
Project Loom (JEP 425) is probably amongst the most awaited feature additions to Java ever;
its implementation of virtual threads (or "green threads") promises developers the ability to create…
Project Loom (JEP 425) is probably amongst the most awaited feature additions to Java ever;
its implementation of virtual threads (or "green threads") promises developers the ability to create…
Разработка Юлы – канал, созданный командой Юлы, проект VK. Ребята-разработчики делятся своим опытом и материалами по микросервисной архитектуре и особенностям бэкенд-разработки, продуктовой аналитике и автоматизации тестирования. В канале вы найдете анонсы конференций, митапов и записи выступлений. Подписывайтесь, полезно и интересно.
Telegram
Разработка Юлы
Технологии Юлы. Разработка сервиса. Конференции.
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