Записки разработчицы
2.4K subscribers
436 photos
26 videos
4 files
1.15K links
Разговоры об IT, о разработке. О мобилках нативных и кроссплатформенных.
Личный аккаунт @azharkova
Download Telegram
Что почитать: Jetpack Compose Internals

Если вместо разрозненной документации вы предпочитаете книги, где вся информация собрана в одном месте, то советуем обратить внимание на книгу Jetpack Compose Internals.

В книге исследуются возможности Jetpack Compose — UI-фреймворка будущего Android-разработки. Также в ней рассмотрены различные кейсы использования Compose за пределами экосистемы Android.

И самое главное — книгу можно забрать бесплатно на официальном сайте.

#compose #android
#android. Одним из критичных моментов любого MVVM Android приложения является вызов событий UI, зависящих от бизнес-логики или изменения состояния. Как это правильно сделать, нужно ли выносить управление в ViewModel, что из семантики UI (ресурсы, контексты) может там упоминаться и должно ли, ведь UI - это тема View.
Инженеры Google подготовили видео с best practices, как же это лучше сделать:
https://www.youtube.com/watch?v=lwGtp0Yr0PE&list=PLWz5rJ2EKKc8GZWCbUm3tBXKeqIi3rcVX&index=5
👍6
Приложение Now in Android от Google, совмещающее в себе несколько полезных практик разработки

Now in Android — серия материалов от команды Android, в которых рассказывают о новостях, интересных статьях и крутых инструментах для Android-разработчиков.

Google опубликовала исходный код приложения Now in Android. В репозитории на GitHub вы можете познакомиться с примером реализации дизайна на Material3, а также с передовыми практиками разработки.

Репозиторий: https://github.com/android/nowinandroid

#android
👍61
Forwarded from Android Broadcast (Кирилл Розов)
Вот уже и статьи пошли как обрабатывать нажатие "Назад" в Android, новые callback, система приоритетов и другие нововведения системной навигации в ОС

#android 13
👍1
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
В AOSP занялись созданию SQLite API, чтобы сделать его удобным для KMM. За основу берут SQLite3 C/C++ API

#android #kmp
👍14🔥1🤝1
Media is too big
VIEW IN TELEGRAM
🌩 Миграция с kapt на ksp 🌩

В новом выпуске "Охэхэнных историй" делимся нашим опытом отказа от kapt в пользу ksp для обработки аннотаций и ускорения скорости сборки в большом проекте.

Спойлер: было много боли, но у нас получилось ускорить сборку на 10%.

Внутри:

➡️ Что такое ksp
➡️ Почему мы решились на переход
➡️ Как проводили исследование
➡️ Что из этого получилось


👓 СМОТРЕТЬ

#Android
#Kotlin #KSP #KAPT
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔2
Разбавим шашлыки полезной и интересной информацией. Присоединяйтесь к трансляции сессии вопросов и ответов к Кириллу Розову и его гостю Михаилу Емельянову (RuStore) и узнаете, какое будущее ждет магазины приложений:
https://www.youtube.com/watch?v=72AKIukKx6I
4👍2
Forwarded from Android Broadcast
Вышел Glance 1.1.0 - создание App Widget для Android и Tile для Google WearOS на Compose

Что нового:
👉 Библиотека для Unit тестов виджетов
👉 Новые Modifier
👉 Улучшения превью виджетов в IDE
👉 Улучшения API

#android #compose #wearos
Forwarded from Android Broadcast
‼️ Vulkan станет основной технологий для рендеринга UI в Android

Начиная, с Android 17 большая часть устройств перейдет на рендеринг UI с OpenGL ES на Vulkan, а поддержку OpenGL будет убрана и станет доступна через ANGLE для трансляции команд в Vulkan.

#android #android17 #vulkan #opengl
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9
Forwarded from Android Broadcast
🤖 Глобальный редизайн Android ОС

Google экспериментирует с новым дизайном Android ОС. Пока посмотреть так просто новый интерфейс системы не получится, но Mishaal Rahman. Вряд ли мы увидbм это как часть релиза Android 16, но компания уже решила сделать подобный iOS интерфейс с эффектом размытия фона

#android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Forwarded from Android Broadcast
Media is too big
VIEW IN TELEGRAM
🔨 Обновление зависимостей через Gemini в Android Studio 🤯. Помимо выставление новой версии Gemini итеративно внесёт изменения в код для корректной работы после обновления

#android #gemini #androidstudio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51🔥1
Forwarded from WB Tech
Мы начинаем!

Через 20 минут стартует Android Meetup Wildberries & Russ. Поговорим о том, как оживить виджеты, подружить Compose с Koin и навигацией, а заодно встроить одно Android-приложение в другое без боли...или с болью 😅

Присоединяйтесь онлайн:

🔵VK
🔵YouTube

Задавайте вопросы спикерам — можно в чате трансляции или в комментариях под этим постом!

#wbtech #wbmeetups #wbspeakers #android
Please open Telegram to view this post
VIEW IN TELEGRAM
5👎1🫡1
Forwarded from Android Broadcast
Media is too big
VIEW IN TELEGRAM
‼️ LIVE Мок собеседование в Альфа Банк
Когда: среда, 3 сентября, 19:00 (GMT+3)

На канале в прямом эфире пройдет мок собеседование в Альфа Банк, максимально приближенное к реальному.

Проводят:
🤖 Абакар Магомедов, главный технический лидер разработки
🤖 Николай Крылов, технический лидер разработки платформенного направления

Запись будет доступна позже на канале

#AndroidBroadcast #android #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👾6👎4👍2
Forwarded from Android Broadcast
🤯 Dagger Hilt блокирует переход на AGP 9.0

Android Gradle Plugin 9.0 официально зафиксировал новый стабильный конфигурационный API (вышла стабильная версия с релизом AS Otter FD 3) — это одно из самых значимых изменений в инфраструктуре Android и Kotlin Multiplatform за последние годы. Цели понятны и правильные лучше работа с кэшем и общая скорость сборок. Подробнее про все изменения я писал в отдельном посте

Google несколько релизов подряд аккуратно готовил экосистему к этому переходу, заранее добавив новый API и дав время авторам плагинов адаптироваться. Но на практике всё упирается в плагины.

Я столкнулся с тем, что Gradle-плагин Dagger Hilt до сих пор использует старую модель конфигурации и несовместим с новым DSL из AGP 9.0. В результате проект нельзя перевести на новую версию без отключения Hilt или включения режим совместимости. Иронично, что именно официальный инструмент от Google сейчас становится блокером для обновления.

Да, в AGP оставили compatibility-флаги, позволяющие продолжать сборку по старым правилам. Это спасает проекты от немедленного падения, но полностью отключает все ключевые преимущества AGP 9.0 — configuration cache, ускоренную конфигурацию и новую модель плагинов.

💬 Вы уже пробовали миграцию на AGP 9.0? Что блокирует? Делитесь в комментариях мнением.

UPD. По заявлениям подписчиков также есть проблемы в работе KAPT и KSP

#Android #AndroidDev #Gradle #Dagger #Hilt
Please open Telegram to view this post
VIEW IN TELEGRAM
👎3🤔1
Forwarded from Android Broadcast
🤖 В Android 17 переписали один из самых старых и критичных механизмов работы UI потока.

Это изменение почти никто не увидит в changelog’ах, но оно напрямую влияет на то, насколько плавно работает интерфейс любого приложения.

MessageQueue — это очередь задач главного потока с которой работает Handler. Каждый Android-разработчик фактически работает с ней каждый день, даже если напрямую не задумывается об этом. Looper берёт из неё сообщения, передаёт их Handler’ам, выполняет UI-обновления, lifecycle-события, обработку ввода, invalidate, работу фреймворков и большую часть межпоточного взаимодействия. По сути, это диспетчер всей работы main thread.


Исторически эта очередь почти не менялась около двадцати лет. Внутри она была защищена одним lock’ом. Пока один поток добавлял сообщение, другой не мог работать с очередью. На старых устройствах это не было критично, но на современных многоядерных системах стало появляться всё чаще: background-поток держит lock, планировщик переключает CPU на другие задачи, а UI-поток в этот момент ждёт.

В Android 17 мезанизм работы очереди переписали полностью. Новая реализация стала lock-free. Вместо общего lock используются атомарные операции, а сама структура очереди разделена на две части: потоки могут добавлять сообщения без блокировок, а главный поток уже самостоятельно упорядочивает и выполняет задачи. Важное свойство такого подхода — хотя бы один поток всегда может продолжать работу независимо от поведения остальных.

Это не обновление из категории «приложение стало быстрее на X процентов». Изменение работает глубже. Оно снижает вероятность случайных блокировок главного потока, уменьшает количество missed frames и делает время кадра стабильнее под нагрузкой. Особенно это заметно в сценариях, где одновременно происходит много фоновой работы: запуск приложения, работа камеры, тяжёлые UI, интенсивные операции в фоне.

🤯 В одном из примеров Google показывают блокировку UI-потока почти на 18 мс только из-за конкуренции за lock — этого уже достаточно, чтобы пропустить кадр на экране 60 Гц, не говорю уже про 120.

‼️ Большинству приложений ничего делать не нужно — улучшение происходит автоматически. Но обратить внимание стоит тем, кто занимается производительностью, анализирует Perfetto-трейсы или использует рефлексию и внутренние поля MessageQueue. Такие вещи могут перестать работать, потому что внутренняя реализация изменилась.

На самом деле это интересный сигнал о направлении развития Android. Долгое время оптимизации происходили на уровне API и фреймворков. Сейчас Google всё чаще переписывает базовые механизмы конкурентности самой платформы. И это логично: современные устройства уже редко упираются в вычислительную мощность, чаще — в синхронизацию потоков и contention. MessageQueue находится в центре всей работы UI-потока, поэтому даже небольшие улучшения здесь масштабируются на всю экосистему.

🔗 Больше подробностей про работу механизма можно найти в техническом разборе от Google

#Android #Android17
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍117