fa
Feedback
Android Good Reads

Android Good Reads

رفتن به کانال در Telegram

Самые интересные статьи, видео и новости, связанные с Android разработкой. Не больше трёх материалов в день. Размещение рекламы: @tanyasanovna

نمایش بیشتر
4 046
مشترکین
+124 ساعت
-67 روز
-3030 روز
آرشیو پست ها
А вот и ответ GooglePlay на петицию - разрешат ставить приложения в обход, но с ограничениями
А вот и ответ GooglePlay на петицию - разрешат ставить приложения в обход, но с ограничениями

Вступайте в Podlodka AI Engineers Club Если ваша основная цель на этот год – прокачаться в использовании AI в разработке, то вы не одни. Все пытаются разобраться и в том, как оптимально использовать агентов самому, и в том, а как под это дело перестроить процессы в команде. Но поставить цель легче, чем ее достичь. State-of-the-art модели, инструменты и подходы меняются каждую неделю, лучшие практики ещё не устоялись, а городские сумасшедшие либо хоронят программирование, либо пытаются нафармить просмотры за ваш счет. Мы в Подлодке хотим помочь опытным инженерам, которые учатся работать с AI – да что там, и самим себе тоже. Поэтому в начале марта мы запустили Podlodka AI Engineers Club – закрытое сообщество для тех, кто уже пробует AI в работе и хочет делать это системно, а не на ощупь. 👉Что внутри. Каждую неделю – воркшопы и лайвкодинги с людьми, которые внедряют AI в реальных продуктах. Разбор конкретных инженерных практик: как строить своих агентов, как работать по Spec-Driven Development, как собирать комбайн, превращающий таски Jira в PRы, как масштабировать это на команду и в бигтехе, и в небольшом стартапе. Между встречами – сеть закрытых чатов в Telegram, клубные созвоны с шарингом опыта, random coffee, совместные эксперименты с AI. 👉Кто уже в программе. Среди экспертов – инженеры из компаний разного масштаба: Степан Гончаров (xAI), Роман Елизаров (Яндекс), Андрей Бреслав (CodeSpeak), Денис Неклюдов (Google), Алексей Козятинский (Cursor) и много других крутых ребят. Полная программа на март-апрель есть на сайте. 👉А кто в клубе. Мы собрали уже 350 инженеров с медианным опытом 12 лет – российский и зарубежный бигтех, банки, стартапы. Большинство уже активно используют агентов в своей работе, поэтому обсуждаем прямо прикладные вопросы. У кого-то в компаниях AI внедряется очень активно, а кто-то работает в супер зарегулированных отраслях, где запрещено почти все – так что мы собираем весь спектр проблем. 👉Как попасть. Клуб платный, вход через список ожидания с отбором – нам интересно сделать сообщество именно для опытных разработчиков – людей, которые большую часть своей карьеры писали код, решали технические задачи, принимали архитектурные решения, и жили с их последствиями. Мы набираем участников постепенно – нам важно сохранить атмосферу, в которой можно открыто делиться опытом и проблемами. Подробности, расписание и заявка – на сайте. А если есть какие-то конкретные вопросы, пишите прямо в личку @etolstoy!

Боремся с лишними рекомпозициями в Compose Если вы хоть раз пытались понять, какого черта ваш экран перерисовывается 10 раз при скролле или вводе текста, то это для вас. Подъехали сразу две годные тулзы, которые подходят к проблеме перфоманса с абсолютно разных сторон: 👉 DejaVu Мощная библиотека, которая превращает проверки рекомпозиций в полноценные тесты Под капотом: Это test-only решение, то есть в прод не улетит ни строчки лишнего кода. Подключается максимально просто: инициализируете правило createRecompositionTrackingRule<>() в тестовом классе, вешаете стандартный Modifier.testTag() на нужный Composable и пишете ассерты на количество перерисовок В чем фишка: Идеально для CI. Библиотека отслеживает счетчики для каждого инстанса отдельно и выдает аналитику. Если кто-то из команды или AI-ассистент сломает стейт, тест упадет и покажет таймлайн проблемы с диффом параметров, из-за которых случилась рекомпозиция Github (55 ⭐️): https://github.com/himattm/dejavu 👉 Compose Rebound Инструмент для мониторинга "бюджета рекомпозиций" прямо во время работы приложения Под капотом: Работает на базе Kotlin Compiler Plugin. Во время компиляции плагин автоматически резолвит имена Composable-функций и назначает им лимиты в зависимости от роли (например, 3 рекомпозиции в секунду для экрана, 30/с для кнопок, 120/с для анимаций) В чем фишка: У Rebound есть шикарный плагин для IDE. Он не просто считает перерисовки, а отделяет вынужденные рекомпозиции (из-за родителя) от тех, что вызваны изменением параметров самого компонента. Помогает находить реальные спайки и аномалии, а не просто пугать вас большими цифрами в Layout Inspector Github (37 ⭐️): https://github.com/aldefy/compose-rebound Такое мы внедряем!

🔒 Безопасность Android-приложений: углубляемся в тему с Podlodka Android Crew Современные Android-приложения работают с поль
🔒 Безопасность Android-приложений: углубляемся в тему с Podlodka Android Crew Современные Android-приложения работают с пользовательскими данными, платежами и приватным контентом. Это буквально мишень для злоумышленников всех мастей. Иногда самая опасная уязвимость — это та строчка кода, которую написали в спешке, не задумываясь об информационной безопасности. С 30 марта по 3 апреля пройдет новый сезон Podlodka Android Crew — это будет онлайн-конференция, полностью посвящённая безопасности мобильных приложений на Android. 💡Участники сезона разберут: 🔐С чего начинается безопасность приложения 🧩 Как UI может стать точкой взлома 👀 Как выглядит Android-приложение глазами атакующего 🧬 Где реально помогают passkeys и биометрия, а где — нет 💳 Как защищаются платежи и видеоконтент в Android-приложениях и не только — программа обновляется на сайте. Формат — классический для Podlodka Android Crew: 5 дней, 10+ спикеров, 10 сессий и закрытое комьюнити в Telegram. Отдельный плюс — цена: заметно ниже привычных конференций, при этом контент в этот раз ориентирован на очень глубокое и всестороннее изучение темы безопасности. 👉 Early-bird билеты на сезон Podlodka Android Crew доступны до 23 марта

Альфа Room 3.0 с Compose! Обновление одной из флагманских библиотек. Я всегда стараюсь использовать что-то по меньше и шустрее, типа sqldelight, но знаю, что этого монстра многие используют! А чо внутри то? 👉 KMP и WASM 👉 Чтобы избежать конфликтов с Room 2.x, androidx.room теперь стал androidx.room3 👉 Отказ от SupportSQLite: Библиотека теперь полностью работает на драйверах androidx.sqlite. Для постепенного перехода предусмотрен артефакт room3-sqlite-wrapper 👉 Только Kotlin и KSP: Генерация Java-кода, а также поддержка Java Annotation Processing (AP) и KAPT полностью прекращены 👉 Coroutines First: Из-за требований веб-платформ все API стали асинхронными. Блокирующие функции в DAO больше не поддерживаются — они должны быть либо suspend, либо Flow. Наканец-та! 👉 Кастомные типы возвращаемых значений: Добавлена аннотация @DaoReturnTypeConverter. Она позволяет разработчикам создавать собственные интеграции (например, для RxJava, Paging, LiveData) 👉 Текущее поколение Room 2.x переходит в maintenance mode. Новые фичи добавляться не будут, планируются только исправления ошибок и обновления зависимостей до релиза стабильной Room 3.0

Исследуем CompositionLocal API С этим API вы уже знакомы
val LocalUser = compositionLocalOf { "GoodReads" }

@Composable
fun App() {
    CompositionLocalProvider(LocalUser provides "AndroidGoodReads") {
        UserProfile()
    }
}

@Composable
fun UserProfile() {
    val name = LocalUser.current
    Text("Hello, $name")
}
Внутри статьи рассказывают: 👉 Разбор внутреннего устройства: как связаны CompositionLocal, ProvidableCompositionLocal и их различные вариации 👉 Что на самом деле создают функции compositionLocalOf, staticCompositionLocalOf и compositionLocalWithComputedDefaultOf, и в чем разница между результатами их работы 👉 Механика работы CompositionLocalProvider и свойства .current. Как правильно передавать локальные данные между различными композициями 👉 Внутренняя кухня Compose: работа с Value Holders, использование Persistent Maps и интеграция на уровне Composer 👉 Рекомендации по оптимизации производительности и разбор типичных ошибок, которых следует избегать при использовании CompositionLocal

Google Play раскатывает это обновление! Внутри разбирают популярные сценарии и что с ними делать 👉 Некоторые подключаемые би
Google Play раскатывает это обновление! Внутри разбирают популярные сценарии и что с ними делать 👉 Некоторые подключаемые библиотеки могут влиять на это, увы, с этим, вы ничего не сделаете, но сможете отследить в Android Vitals 👉 Загрузка или выгрузка файлов 👉 Одноразовые или периодические операции в фоне 👉 Bluetooth соединение 👉 Location трекинг 👉 Частое снятие показаний с сенсоров (всякие гироскопы и прочее) 👉 Remote messaging не через гугловский FCM. Да-да, если у вас собственная реализация слушания ивентов - увы и ах Внутри статьи рекомендации по тому как избежать проблем

Android LLM leaderboard! Бенчмарк для моделей с уклоном в андроид разработку Ссылка на Android Bench: https://developer.andro
Android LLM leaderboard! Бенчмарк для моделей с уклоном в андроид разработку Ссылка на Android Bench: https://developer.android.com/bench

Немного про то как за год vibecoding перешел от гэмблинга к части моего рабочего процесса https://t.me/androidraft/93

Новый Experimental Styles API в Jetpack Compose Устали от простыней кода с InteractionSource и animate*AsState просто чтобы поменять цвет кнопки при нажатии? В Compose завозят решение! 👉 Всё в одном блоке: Больше не нужно жонглировать модификаторами и стейтами. Вы создаете единый блок Style, где описываете базовый вид и реакции на различные состояния (hovered, pressed, focused) 👉 Автоматические анимации: Достаточно обернуть изменения в блок animate { ... } (можно передать свой AnimationSpec), и система сама плавно заанимирует переходы 👉 Умная инвалидация под капотом: Свойства стилей хранятся с использованием битовых масок. Если при нажатии меняется только цвет (свойства отрисовки), Compose инвалидирует только фазу draw, полностью пропуская рекомпозицию и layout 👉 Доступ к темам: StyleScope имеет доступ к CompositionLocal, так что можно легко брать цвета из темы прямо внутри стиля, и они будут обновляться при ее смене
ClickableStyleableBox(
    onClick = onClick,
    style = {
        background(Color.Green)
        size(150.dp)
        hovered { 
            animate { background(Color.Yellow) } 
        }
        pressed { 
            animate(tween(100)) { background(Color.Red) } 
        }
    }
)

Большое исследование мобильных разработчиков Ребята из DevCrowd запустили новое большое исследование мобильных разработчиков (а они проводят их уже много лет). И вот в 2026 году его результаты, кажется, будут действительно неожиданными – разработка за последний год поменялась очень сильно, и эта волна точно затронула и Android. В опросе будем разбираться с тем, что происходит на рынке по грейдам и зарплатам, выживает ли кроссплатформа, как мобильщики используют AI в работе, куда расти, и как искать работу. Результаты выложим где-то в апреле! 👉Пройти опрос

Goodbye ViewModel. Hello retain! Потенциальная замена для viewModel из коробки. Основная проблема которой, это отдельная поддержка viewModel из каждого DI. retain же работает как Composable и не нуждается в отдельном @HiltViewModel Переписывать на retain в ближайшие пару лет никто, конечно же, не будет, но знать про это все-таки стоит
@Inject
class AuthPresenter(...) {
  val state: StateFlow<UiState>
  fun login(creds: Credentials) { .. }
  fun logout() { .. }
}

interface AuthScreenProviders {
  @IntoSet
  @Provides
  fun provideRoute(presenter: Provider<AuthPresenter>): RouteEntryProviderScope = {
    entry<Route.Auth> { AuthScreen(presenter = retain { presenter() }) }
  }
}

Петиция KeepAndroidOpen В августе 2025 года Google объявила, что начиная с сентября 2026 года разрабатывать приложения для платформы Android будет невозможно без предварительной централизованной регистрации в Google. Эта регистрация будет включать: 👉 Оплату сбора Google 👉 Согласие с условиями использования Google 👉 Предоставление удостоверения личности государственного образца 👉 Загрузку доказательств владения приватным ключом подписи разработчика 👉 Указание всех текущих и будущих идентификаторов приложений Если вкратце - распространять приложения станет сильно сложнее. На странице петиции описаны (на разных языках) последствия которые нас ждут после вступления правил в силу

И еще разок Dependency Injection vs Service Locator Вместо того чтобы просто сравнивать либы, автор делит их на две категории: Истинный Dependency Injection (Dagger, Hilt, Anvil, kotlin-inject, Metro) 👉 Строятся на Inversion of Control (IoC) ➕ Строгая валидация графа на этапе компиляции (если собралось — в проде из-за DI не упадет). Разрешение зависимостей за O(1) в рантайме. Идеально для тестов и больших команд ➖ Требуют больше явного кода от разработчика, замедляют сборку Service Locators (Koin, Kodein, Spring DI, Compose CompositionLocals) 👉 Фокус на Developer Experience и скорости написания кода. ➕ Почти нулевой оверхед на сборку (все происходит в рантайме), минимум бойлерплейта ➖ Разрешение зависимостей за O(n), ошибки вылезают только при выполнении, а значит вылезает еще 1 категория багов на проде

Как и куда расти мобильному разработчику в эпоху ИИ? Предлагаем разобраться вместе с Яндекс Вертикалями (Авто.ру, Яндекс Недв
Как и куда расти мобильному разработчику в эпоху ИИ? Предлагаем разобраться вместе с Яндекс Вертикалями (Авто.ру, Яндекс Недвижимость, Аренда и Путешествия) на Vertis Mobile Meetup в Санкт-Петербурге. В этот раз хардовых докладов не будет. Вместо них — нетворкинг, круглые столы, а также выступления о том, как работать над большими задачами, становиться продуктивнее и оставаться в балансе. 📍Обсудим разные карьерные треки, переходы между ролями, влияние ИИ на индустрию. И обменяемся мнениями по техническим темам: KMP / CMP, DI. А после всех обсуждений участников ждёт афтепати 🐥 🔜 Полная программа и регистрация

Зовем на максимально практическую онлайн-конференцию Podlodka Techlead Crew «Архитектура данных», 2-6 марта. Пригодится техли
Зовем на максимально практическую онлайн-конференцию Podlodka Techlead Crew «Архитектура данных», 2-6 марта. Пригодится техлидам, которые хотят меньше теории и больше рабочих решений без ненужного хайпа. А в надежном комьюнити можно обсудить доклады ❤️
«Идет долгий тренд на оптимизацию ресурсов и подсчет затрат на инфраструктуру. Востребованы инженеры, которые могут разобраться, как оптимизировать потребление ресурсов хранилища, как быстрее и эффективнее работать с ними», — объясняет главный принцип выбора темы директор Techlead Crew Григорий Скобелев.
В программе: ⚙️ Как строить потоковую обработку данных и не получить неуправляемую систему. ⚖️ Как выбирать между SQL, NoSQL и NewSQL под реальные нагрузки и сценарии. 🧩 Как проектировать DWH и Data Lake так, чтобы было полезно бизнесу. 🧠 Как работать с консистентностью и транзакциями без потери масштабируемости. 📊 Как и когда применять OLAP-хранилища и не превращать аналитику в боль. 🗓 Когда: 2 - 6 марта 🔗 Посмотреть подробную программу →

Как kotlinx.serialization генерирует код ​В этой статье разбирается внутреннее устройство compile плагина kotlinx.serialization: от стратегии двухпроходной генерации IR (промежуточного представления) до оптимизации «золотой маски» для проверки обязательных полей. Плагин превращает обычные аннотации @Serializable в эффективные и типобезопасные сериализаторы, полностью обходясь без рефлексии или генерации кода во время выполнения ​А зачем это знать? ​Можно успешно использовать библиотеку, и не зная этих нюансов. Однако понимание внутренних механизмов поможет вам решать редкие связаны бани и принимать оптимальные по производительности решения

Кажется, это было трендом еще в 2016 году, но давайте освежим. Модуляризация в Android для больших команд И сразу же часть 2
Кажется, это было трендом еще в 2016 году, но давайте освежим. Модуляризация в Android для больших команд И сразу же часть 2 с примером От себя скажу, что на эту статью лучше посмотреть как на чужой опыт и не перенимать один в один. Прежде чем приступать к такого рода изменениям - попробуйте и обкатайте их на отдельном проекте и проверьте как это будет работать

LeakCanary теперь встроен в профайлер внутри Android Studio, начиная с Panda 1 В чем особенность? Компьют перенесли с мобильн
+1
LeakCanary теперь встроен в профайлер внутри Android Studio, начиная с Panda 1 В чем особенность? Компьют перенесли с мобильного девайса на ваш лаптоп. Теперь поиск в дампе будет быстрее