Android Good Reads
4.05K subscribers
368 photos
15 videos
1 file
2.1K links
Самые интересные статьи, видео и новости, связанные с Android разработкой. Не больше трёх материалов в день.

Автор канала: @Lamprof

Размещение рекламы: @tanyasanovna
Download Telegram
Forwarded from Яндекс
✔️ Мы выпустили инструмент для Android-разработчиков — библиотека Demeter. Она помогает быстро найти в приложении места, которые замедляют его работу.

↗️ Читайте о том, как она работает и чем отличается от других инструментов для профилирования. И пробуйте библиотеку, которой пользуются в разных командах Яндекса.

Подписывайтесь 〰️ @yandex
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Разбираем context параметры в Kotlin 2.2.0

Анонс был, а прикладных примеров еще не было. Внутри примеры с тем как делать логирование и DI.
Из приятных плюсов:
- Убирает шаблонный код
- Повышение читабельности и поддерживаемости
- Типобезопасность

Пример комбинации с Extension функцией:
// Extension function with context parameter
context(txManager: TransactionManager)
fun List<Transaction>.processAllInTransaction() {
txManager.beginTransaction()
try {
forEach { it.process() }
txManager.commitTransaction()
} catch (e: Exception) {
txManager.rollbackTransaction()
throw e
}
}

// Usage
with(transactionManager) {
transactions.processAllInTransaction()
}
Как Яндекс Карты учат нейросети угадывать твои желания

Представь: ты открываешь Карты, а они уже знают, куда тебе хочется пойти — будь то место для завтрака или тихий парк с видом на закат. Так работает  магия рекомендаций — нейросети, геоданные и тонны экспериментов.

Яндекс Карты — это команда инженеров и исследователей, которые превращают терабайты логов в персонализированные подсказки. Нейросеть анализирует разные действия: от просмотра фото до построения маршрута, и находит «ближайшие» места не только на карте, но и по интересам. А компьютерное зрение выбирает самое аппетитное фото, чтобы ты сразу понял: «О, тут есть рамен!»

А ещё мы постоянно экспериментируем: например, учим модель учитывать время суток и день недели, — ведь днем в будни скорее нужно найти место для обеда, чем для досуга.

Кстати, сейчас мы ищем талантливых мобильных разработчиков, для развития сценариев поиска, рекомендаций и выбора мест. За этим стоит:
•Оптимизация сложных алгоритмов под мобильные CPU/GPU
•Работа с геоданными и анимациями
•Много экспериментов, влияющих на миллионы пользователей

Если готовы внести свой вклад в проект — откликайтесь на вакансию!
Хорошая новость этой недели! Compose Multiplatform вышел в релиз!
Из главного:
👉 Стабильность и перформанс, стабильность и перформанс!
👉 iOS полностью стабилен. Завезли немного нативного функционала (жесты, drag-n-drop, RTL поддержка ...)
👉 Множество апи вышло из стадии экспериментальных в стабильные!
👉 Улучшили холодный старт, перформанс приложения при скролле, а так же оптимизировали размер собираемого приложения
👉 Еще раз напомнили про hot-reload. Успели попробовать?

Очевидно, релиз под грядущий Kotlin Conf. Возможно, на самой конференеции будут еще анонсы, но уже сегодня я затаскиваю версию 1.8.0 в наше приложение
Android Studio Meerkat Feature Drop теперь стабильна! Полгода от Canary до релиза по новому циклу.
Внутри подтянули обновление от IDEA, k2 mode и много AI улучшений.
Из приятного улучшили терминал, дебаггер и App Quality Insights с интеграцией в Play Store и Firebase Crashlytics.
This media is not supported in your browser
VIEW IN TELEGRAM
Используем movableContentOf для shared transition анимации в Jetpack Compose

Все достаточно просто. Как и в любой анимации мы определяем ее scope с помощью LookaheadScope. Накидываем AnimatePlacementNodeElement и определяем список Composable элементов для перемещения через movableContentOf.

Примеры кода внутри статьи!
Обсуждем кейсы на митапе Яндекса по мобильной разработке

Я.Субботник — большой митап для мобильных разработчиков. В этот раз кроме докладов участников ждёт практический разрбор кейсов на PeerLab.

PeerLab — камерная встреча с экспертами Яндекса. Для неё мы отобрали актуальные темы из разработки и карьеры. Предложить кейс для обсуждения может каждый участник — приносите их в форму регистрации и приходите на обсуждение!

В Москве точно обсудим:

🔸Kotlin Multiplatform
🔸Карьерное развитие
🔸Платформенные команды
🔸AI в разработке

А в Питере:

T-Shape разработчик
🔸Тестирование
🔸AI в разработке

➡️ Регистрируйтесь и ищите список экспертов-участников дискуссии на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
Proto vs JSON. Когда и что использовать?

JSON:
👉 Делаете публичное API
👉 Для быстрых прототипов
👉 Когда хочется видеть человеко-читаемую конфигурацию

Proto:
👉 IoT и Realtime системы
👉 Внутренние приложения, зависящие от скорости интернета
👉 Межсерверное взаимодействие
Сегодня стартует Google I/O 2025. Самая интересная для нас с вами часть тут
В DivKit подтянули крупное обновление

В open source фреймворк добавили визуальный редактор для сборки экранов без написания кода. Плюс появились простые встроенные аниматоры переменных, которые оживляют интерфейсы без ручной сборки из кучи компонентов. Что еще:
👉 Обновили поддержку форм ввода текста
👉 Можно использовать инструмент командам с разным уровнем опыта — не нужно писать скрипты и собирать UI вручную
👉 Появились надклавиатурные панели на iOS, фильтрация ввода, автокапс
👉 Кроссплатформенность: подходит для Android, iOS и веб
Все новые фичи появились по запросу пользователей. Тут можно прочитать про обновления и оставить обратную связь разрабам из Яндекса
Android Good Reads
Сегодня стартует Google I/O 2025. Самая интересная для нас с вами часть тут
По чуть-чуть будем обозревать новости с Google I/O. Первое на что обращаем внимание - очередная навигация. Из плюсов - большая гибкость и больше контроля над навигацией в приложении. Как следствие - возможное переусложнение навигации, необходимость миграции и невероятные велосипеды в каждой компании.

Немного кода с Nav3:

// Define the routes in your app and any arguments.
data object Home
data class Product(val id: String)

// Create a back stack, specifying the route the app should start with.
val backStack = remember { mutableStateListOf<Any>(ProductList) }

// A NavDisplay displays your back stack. Whenever the back stack changes, the display updates.
NavDisplay(
backStack = backStack,

// Specify what should happen when the user goes back
onBack = { backStack.removeLastOrNull() },

// An entry provider converts a route into a NavEntry which contains the content for that route.
entryProvider = { route ->
when (route) {
is Home -> NavEntry(route) {
Column {
Text("Welcome to Nav3")
Button(onClick = {
// To navigate to a new route, just add that route to the back stack
backStack.add(Product("123"))
}) {
Text("Click to navigate")
}
}
}
is Product -> NavEntry(route) {
Text("Product ${route.id} ")
}
else -> NavEntry(Unit) { Text("Unknown route: $route") }
}
}
)
Сегодня, кстати, начинается следующая важная конференция - KotlinConf. Записи будут доступны позже на сайте, а прямая трансляция начинается через 10 минут.

Неделя насыщенная на новости по андроид разработке.
Android Good Reads
Сегодня, кстати, начинается следующая важная конференция - KotlinConf. Записи будут доступны позже на сайте, а прямая трансляция начинается через 10 минут. Неделя насыщенная на новости по андроид разработке.
Конференция закончилась. Краткий обзор от jetbrAIns команды:

https://blog.jetbrains.com/kotlin/2025/05/kotlinconf-2025-language-features-ai-powered-development-and-kotlin-multiplatform/

Я был на самой конференции и лично мне понравился умеренный и не фанатичный подход к AI, стабилизация большинства экспериментальных функций и API, а так же рост комьюнити. Очень жду Kotlin/wasm в бете!

Meta теперь золотой спонсор Kotlin Foundation, что же будет с React Native? 😱

Следующий KotlinConf пройдет в Мюнхене!