uz
Feedback
Android Broadcast

Android Broadcast

Kanalga Telegram’da o‘tish

Подборка новостей и статей для Android разработчиков. Реклама и связь с автором @ab_manager РКН https://abdev.by/rkn_tg_ab #MQRZR

Ko'proq ko'rsatish

📈 Telegram kanali Android Broadcast analitikasi

Android Broadcast (@android_broadcast) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 14 583 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 8 750-o'rinni va Rossiya mintaqasida 45 369-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 14 583 obunachiga ega bo‘ldi.

10 Iyul, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni 39 ga, so‘nggi 24 soatda esa -1 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 44.92% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 23.72% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 6 551 marta ko‘riladi; birinchi sutkada odatda 3 459 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 42 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent api, kotlin, gradle, сборка, androiddev kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
Подборка новостей и статей для Android разработчиков. Реклама и связь с автором @ab_manager РКН https://abdev.by/rkn_tg_ab #MQRZR

Yuqori yangilanish chastotasi (oxirgi ma’lumot 11 Iyul, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

14 583
Obunachilar
-124 soatlar
-27 kunlar
+3930 kunlar
Postlar arxiv
🤖 Android XR за пару дней стал реальнее: XREAL показал очки Aura, Google — что на них строить XREAL официально представил Aura (бывший Project Aura): лёгкие проводные очки с прозрачным дисплеем, вычисления вынесены в карманный блок на новом Snapdragon Reality Elite, Gemini в системе. Финальной цены нет, но база «не дороже $1500», резерв открыли за $99. Google показал что на этом строить. Демка XR Geospatial Tour: надеваешь очки, поверх города висят 3D-подсказки, голосовой гид рассказывает про здания перед тобой. Внутри Geospatial API (VPS от Google в ARCore for Jetpack XR, субметровая точность и направление взгляда, точнее GPS), Gemini с Google Maps Grounding для маршрутов, Gemini TTS для озвучки и Compose for XR для 3D. ‼️ Гид это демка (Google сам помечает demonstration only), Geospatial API в preview. Но железо уже не «когда-нибудь»: Aura реальна, с ценой и датой. Что доступно сейчас: Geospatial API в preview в ARCore for Jetpack XR, и под девкит Google открыл набор в [Android XR Developer Catalyst](https://developer.android.com/develop/xr/catalyst), туда входит доступ к Aura. Cмартфоны выезжены вдоль и поперёк, складные остались нишей, а лёгкие очки это правда новое место, где игра ещё не сыграна. Aura важна именно этим: форм-фактор наконец похож на то, что хочется носить, а не на шлем на полдня. #Android #AndroidXR #XR #Gemini

Repost from N/a
Unikit открывает поиск co-founders в направление Unikit Apps 🪫 За последние годы рынок арбитража трафика значительно вырос.
Unikit открывает поиск co-founders в направление Unikit Apps 🪫 За последние годы рынок арбитража трафика значительно вырос. Вместе с этим вырос спрос на стабильную инфраструктуру, качественные приложения и команды, готовые играть «в долгую». В рамках масштабирования экосистемы Unikit мы запускаем отдельное направление мобильной разработки. Мы ищем не просто исполнителей, а стратегических партнеров для совместного развития юнита. Наши ресурсы для вашего старта: - Финансовая мотивация: до 80% от прибыли направления - Клиентская база: готовая инфраструктура и существующий поток входящих запросов - Технологии: работа через удобный формат MMP, доступ к продуктовой и технической экспертизе команды Unikit - Синергия: экосистема, которая позволяет кратно ускорить масштабирование. Если вы обладаете экспертизой в мобильной разработке и хотите построить масштабный продукт на базе готовой инфраструктуры, давайте обсудим детали. Контакт для связи: @unikit_support

❤️ Mobile Runtime 2026, трек Not so AI: что тут есть для Android-разработчика В этом году встреча разделилась на 2 трека, один из них — по хардкору без фокуса AI: нативка, кросс-платформа, архитектура, карьера. Чисто Android-докладов в нём почти нет, два про iOS и один про Flutter. Но некоторые вещи оттуда будут полезны любому мобильному разработчику. Compose Multiplatform в Я.Team (Сергей Ефанов) Кейс миграции без большого rewrite и без остановки продуктовой разработки — что вынесли в shared, как живёт share-router и недооцененная боль: Android-разработчик мержит зеленый PR, а iOS назавтра не собирается, хотя Xcode никто не открывал. Плюс конфликт value-type стейта в TCA с reference-типами из Kotlin. Много инфы для тех, кто думает про KMP-миграцию живого продукта. Как делали медиаленту (Лев Бондаренко, Яндекс Еда) Доклад про iOS, но боль универсальная: вложенные ленты внутри лент убивают перформанс на пагинации, лечится плоской структурой. В Compose с вложенными скроллами ровно та же история. По сети — минусы Proxyman и совет не плодить URLSession. И главное про метрики: оптимизировать только то, что влияет на продуктовые показатели. Для Android-разработчика центр тяжести этого митапа оказался не в нативном треке, а в соседнем про AI. #AndroidDev #ComposeMultiplatform #KMP

Короткий разбор что нового в Android 17 от Google 0:00 Вступление 0:14 Intelligence System: AppFunctions 0:48 Adaptive-first: большие экраны 1:09 Производительность: память и ART 1:47 Приватность и безопасность 2:20 Камеры и медиа 2:41 Итоги #Android17 #Android

🤖 Android 17 вышел — API level 37 уже на Pixel Google выпустила финальный Android 17. Исходники открылись в AOSP, обновление
🤖 Android 17 вышел — API level 37 уже на Pixel Google выпустила финальный Android 17. Исходники открылись в AOSP, обновление катится на поддерживаемые Pixel-устройства. Главный сигнал релиза: Android официально Compose-first. Все новые API, библиотеки, инструменты и документация будут создаваться только для Jetpack Compose. View (android.widget), Fragments, RecyclerView, ViewPager переходят в maintenance mode: только критические баги, никаких новых фич. Вопрос «когда View умрёт» закрыт — она уже в maintenance. Breaking changes при таргете SDK 37: 👉 resizeableActivity=false, screenOrientation, minAspectRatio / maxAspectRatio игнорируются системой на large screen (sw > 600 dp). Игры освобождены, остальные нет. 👉 static final поля нельзя менять через reflection: IllegalAccessException. Через JNI — краш. 👉 Native-библиотеки через System.load() должны быть read-only, иначе UnsatisfiedLinkError. 👉 Доступ к локальной сети заблокирован по умолчанию: нужен ACCESS_LOCAL_NETWORK. 👉 Lock-Free MessageQueue быстрее, но ломает код с reflection на приватных полях. ‼️ ВАЖНО CameraX: обновитесь до 1.5.2 или 1.6.0+ — краш на Android 17 из-за нового режима dynamic range. Из остального: Generational GC в ART, жёсткие лимиты памяти с принудительным завершением процессов, Post-Quantum Cryptography (ML-DSA), AppFunctions как on-device MCP API для AI-агентов (alpha, Gemini в private preview). #Android #Android17

🤖 Что за хрень с androidx.biometric? Решил обновить compileSdk до Android 37, а там, оказывается, удалили старый Fingerprint
🤖 Что за хрень с androidx.biometric? Решил обновить compileSdk до Android 37, а там, оказывается, удалили старый Fingerprint API, который был до BiometricPrompt. Чем он им помешал? Ведь теперь обеспечивать поддержку старых версий Android сложнее, но это отдельный разговор. В ходе миграции я узнал, что обновления библиотеки androidx.biometric — сущий хаос: 👉 Самая свежая версия — 1.4.0, и она только в альфе. 👉 Версия 1.3.0 вообще не делалась. 👉 Версия 1.2.0 не получила стабильного релиза, остановившись на альфе. 👉 Самая свежая стабильная версия — 1.1.0, которая вышла в 2021 году! 💬 Такого я давно не встречал. Может, вы уже решали задачу миграции на свежий compileSdk? #Android #AndroidDev #Security

🤖 Миграция навигации hh.ru: 400+ экранов, Modo и feature toggle на переключение реализации В hh.ru рассказали, как переезжал
+2
🤖 Миграция навигации hh.ru: 400+ экранов, Modo и feature toggle на переключение реализации В hh.ru рассказали, как переезжали с Fragment-навигации на Compose + Modo в двух приложениях: 400+ экранов, 70 диплинков, 14 команд. Миграция идёт с 2022 года — и в июне 2026 ещё не завершена. Modo выбрали за UDF-подход (состояние всей иерархии экранов — обычные данные, переходы — функция от состояния) и потому что разработчик Игорь Кареньков работает внутри hh.ru — можно дорабатывать без ожидания апстрима. Это же стало и первой граблей. Ключевое решение для глобальных контейнеров: абстракция NavScreen с двумя реализациями — Fragment и Modo Screen, роутер выбирает через feature toggle в рантайме. Это позволило раскатывать переезд через A/B и не стопорить продуктовую разработку. При первой раскатке словили краш в ComposeView, продуктовые метрики просели — остановили, починили, раскатили снова. Без feature toggle был бы хотфикс-релиз. Три реальные грабли: 👉 Слишком ранний выбор незрелой библиотеки — вложили много времени в доработки самой Modo 👉 Три параллельные миграции одновременно (View→Compose, Fragment→Modo, редизайн) — создали жёсткие зависимости и замедлили продуктовую разработку 👉 Старт без стратегии и метрик — месяцы хаоса, пока не завели дашборд с прогрессом Если планируешь похожий переезд — там есть что взять. #Android #Compose #Навигация

🤖 Android XR Developer Preview 4: можно потрогать без железа Google выпустили Developer Preview 4 XR SDK. Главное, что снижа
🤖 Android XR Developer Preview 4: можно потрогать без железа Google выпустили Developer Preview 4 XR SDK. Главное, что снижает порог: XR Emulator встроен в Android Studio, итерировать можно без Samsung Galaxy XR в руках. Для мобильных разработчиков добавили нормальный способ расширить существующее приложение на display glasses. Jetpack Projected получил Device Availability API — привязывается к стандартным Android Lifecycle-состояниям, апп адаптируется к очкам нативно. Ускорить переезд помогает Android CLI с display glasses skill — специализированные скиллы, которые делают UI на Compose Glimmer по паттернам Google. Сам Glimmer в этом превью обновили под прозрачные дисплеи: читаемость текста и touchpad-навигация. Для game dev: Unreal Engine и Godot теперь официально поддерживаются наряду с Unity. Вместе с ними выпустили Android XR Engine Hub под Windows — real-time тест прямо во viewport движка. Открылась Android XR Developer Catalyst Program: пре-релизное железо (display glasses + wired XR), поддержка и помощь с запуском на Google Play. Заявки принимают прямо сейчас. 🔗 Источники - android-developers.googleblog.com #AndroidXR #Jetpack #Android

🪙 Хотел уйти с Claude Code, а Claude Design затянул ещё глубже Девятый выпуск ИИ-дневника. Садился записывать про то, как сл
🪙 Хотел уйти с Claude Code, а Claude Design затянул ещё глубже Девятый выпуск ИИ-дневника. Садился записывать про то, как слезаю с Claude Code на что-то другое: открытые модели, китайцев, локальный запуск. За неделю экспериментов вышло наоборот: подсел на подписку ещё сильнее, и виноват в этом Claude Design. Внутри разбираю честно: почему меня не убеждают «у меня на нём лучше выходит» и «он дешевле» и какая метрика тут вообще единственная осмысленная. Чем реально держит Claude Design (под него я снёс Figma) и чем он отличается от того же Claude Code на тех же моделях под капотом. И зачем при всём этом я продолжаю смотреть на MiniMax M3, DeepSeek V4 и своё железо. ⚠️ Отдельно про то, что пугает: vendor lock-in и сценарий, где внешние модели в какой-то момент просто перекрывают сверху. 🪙 Весь выпуск смотреть на Boosty Все выпуски дневника тут #AI #ClaudeCode #ClaudeDesign

Repost from Compose Broadcast
⚙️ Compose Navigation Graph: вся навигация приложения интерактивной картой прямо в Android Studio 🐱 Плагин от skydoves (Jaewoong Eum). Аннотируешь экраны @NavDestination, @NavEdge, @NavGraphRoot, KSP статически собирает граф, а IDE-плагин рисует карту: каждый экран отрендеренной @Preview-миниатюрой через Layoutlib, без эмулятора. Переходы стрелками, двойной клик прыгает в исходник, граф мёржится по всем модулям. Канвас редактируемый — тянешь связь от экрана к экрану, и плагин сам вписывает @NavEdge в код. Работает с Navigation 3, Navigation 2 и даже голыми Activity. KMP из коробки: аннотации в commonMain, есть сэмпл на KotlinConf-приложении (26 экранов, 36 переходов). Бонусом .nav baseline по аналогии с apiDump/apiCheck: navCheck валит сборку, когда граф разъезжается с закоммиченным базелайном. #Compose #AndroidStudio

🐘 Room тихо ломает ваш build cache Команда прогнала свой браузер (открытый проект на 160 модулей) через открытые Develocity Build Validation Scripts. Скрипты гоняют сборку в разных условиях и показывают, какие задачи зря выполняются заново вместо того, чтобы взяться из кеша. Главная находка про Room. Пути экспорта схем были заданы абсолютными, значит на каждой машине (ноутбук разработчика, CI-агент) получался свой input и свой ключ кеша. Любая сборка на другой машине била мимо. Лечится переходом на Room Gradle Plugin, который держит относительные пути. После фикса в эксперименте с разными путями на диске выполняемых задач стало 27 вместо 440. 😁 Вторая находка про Dagger. Либа генерила классы с непредсказуемым порядком методов: один и тот же исходник на двух CI-ранах давал побайтно разный вывод и промах по кешу. Апгрейд до Dagger 2.53+ с детерминированным выводом вернул в кеш 1619 задач. Опять же важность обновления до свежих версий. По цифрам важно не обмануться. Заголовочные 57% относятся к лучшему локальному сценарию: сборке в git worktree после CI. Сквозной выигрыш по реальному CI скромнее, 19% на полном пайплайне с тестами и 39% на сборке debug APK. Инструментальные и Firebase-тесты не кешируются в принципе, поэтому потолок там ниже. Но даже из этого уже есть простые оптимизации, которые стоит проверить. 🔗 Источник - статья на Gradle блоге #android #gradle #room #buildcache #dagger

🤯 RuStore тайно ставит MAX без спроса и следит за вами через GPS? Я скачал свежий билд (версия 1.103.0.3) и вскрыл его сам ч
🤯 RuStore тайно ставит MAX без спроса и следит за вами через GPS? Я скачал свежий билд (версия 1.103.0.3) и вскрыл его сам через jadx, а не пересказал чужую панику. Если коротко: градус угрозы надо сильно сбавить. Главное, о чём автор смолчал - всё что он описал никогда не происходит в реально жизни из-за технических ограничений в самом Android. Тихая установка MAX и фоновая раскатка любого софта возможны только при системной привилегии установки, которую вендор должен выдать приложению отдельно. И тут важно не спутать: быть предустановленным и быть привилегированным - это разные вещи. RuStore действительно предустановлен на части устройств, но сама по себе предустановка такой привилегии не даёт, и фоновой установки на ней нет. Закон РФ об предустановки не требует привилегий, а только сам факт чтобы приложения были установлены сразу. А если вы поставили RuStore сами из APK или у вас есть Google Play, привилегии у него и вовсе не бывает: лицензия Google для производителей смартфонов не позволяет предустановить второй привилегированный стор. То есть на обычном телефоне принудительный сценарий мёртв ещё до старта. И показательно: ни автор, ни полторы сотни комментаторов не привели ни одного живого устройства, где хотя бы одно приложение установилось само, в коде самого приложения нигде не защита установка какого-либо приложения. Поставили RuStore сами? Сбор данных включается только вашими разрешениями: не выдали, отозвали, остановили, удалили. Всё под вашим контролем, а не разработчика приложения. 📄 Подробнее в разборе в лонгрид Если зашло, накидайте реакций и напишите, чей стор вскрываем следующим тем же способом. Как насчет AppGallery от Huawei? #RuStore #DeepDive

🤖 Android CLI 1.0: зачем это нужно, если всё уже есть У Android-разработки через агента есть конкретная проблема - инструменты разбросаны: 👉 Хочешь поднять эмулятор — avdmanager 👉 Поставить пакет SDK — sdkmanager 👉 Задеплоить APK — adb 👉 Получить версии зависимостей — отдельный запрос к Google Maven 👉 Получение актуальной информации по гайдам - Web поиск или Google Developer Knowledge API Агент вынужден знать синтаксис каждого, склеивать их через shell-команды и угадывать правильные пути. Android CLI 1.0 — это единая точка входа, которая агрегирует всё это в один инструмент с предсказуемым интерфейсом. Почему CLI, а не MCP-сервер — вопрос разумный. Но ответ простой: CLI работает с любым агентом без дополнительной интеграции. Прописал инструмент один раз, и он работает с Gemini CLI, Codex, Antigravity, чем угодно. Никаких зависимостей от протокола, никакого выбора поставщика. Хочешь взять только часть — берёшь только её. Конкретно для агентов в 1.0 есть три вещи, которые раньше не было откуда взять 1️⃣ скиллы. android init ставит android-cli skill с Android-контекстом, android skills add --all добавляет готовые паттерны под конкретные задачи: CameraX, Perfetto SQL, Adaptive UI, AppFunctions. Агент работает не вслепую. 2️⃣ Анализ экрана девайса/эмулятора. android screen capture --annotate делает скриншот с числовыми лейблами на каждом UI-элементе, android screen resolve переводит лейбл в координаты. android layout отдаёт дерево UI в JSON без скриншота вообще. 3️⃣ Запуск Journeys. Описываешь сценарий словами, агент проходит его на устройстве и проверяет результат. 4️⃣ Поиск по Android документации Можно бы было сделать MCP. Он дал бы более тесную интеграцию, но CLI универсальнее и проще в поддержке с любой стороны. Для инструмента, который должен работать везде — это правильное решение. #Android #AndroidDev #GoogleIO

👨‍💻 Новый девайс — это хорошо. Новый уровень комфорта — ещё лучше. Разработчики знают: иногда главный апгрейд — не новый ноутбук, а удобное место, где ты проводишь по 8–10 часов в день. С 12 по 21 июня (включительно) Эргостол запустил акцию «Открой просторы выгоды»: 🛒 скидки до -25% на товары для рабочего пространства скидки суммируются с промокодом -10% ANDROID10 Если давно думали добавить в сетап регулируемый стол, удобное кресло или полезные аксессуары — сейчас хороший момент. ➡️ Собери свой идеальный сетап разработчика: по ссылке Промокод ANDROID10 действует и на Ozon 🛒 #реклама

🤖 В Android Bench добавили модели с открытыми весами: GLM, Kimi, DeepSeek Pro GLM и KIMI расположились посередине межу Opus
+1
🤖 В Android Bench добавили модели с открытыми весами: GLM, Kimi, DeepSeek Pro GLM и KIMI расположились посередине межу Opus 4.5 и Opus 4.6, что лично я считаю очень достойным результатом. #Android #Benchmark #AI

Подключайтесь на стрим https://boosty.to/androidbroadcast/streams/video_stream

🔴 Созвон Закрытого Сообщества. Жаркая дискуссия: какой агент лучше. Best practices, ошибки и как работать с ИИ. Гость — Ники
🔴 Созвон Закрытого Сообщества. Жаркая дискуссия: какой агент лучше. Best practices, ошибки и как работать с ИИ. Гость — Никита @Nek.12. Один из немногих в русскоязычном сообществе, у кого я реально нашел много интересного для работы с ИИ. Никита не использует Claude Code, Codex или Cursor. Он написал своего агента с нуля. Builder — это CLI-хarness с супервайзером, скиллами, Docker-сэндбоксингом, клиент-серверной архитектурой и возможностью гонять агента автономно сутками. Всё сам. На Kotlin-бекенде. В одиночку. У нас принципиально разные подходы. Я работаю с Claude Code, активно использую MCP-серверы и верю в это. Никита написал статью "MCP is Deprecated" и считает, что сложные агентные оркестраторы — это микроменеджмент, который мешает модели работать. Будем разбираться, кто прав. Или оба правы по-своему. Или оба не правы. Формат — живой разговор, вы можете задавать вопросы в чате прямо во время эфира. 🪙 Стрим пройдет для платных подписчиков на Boosty #AndroidBroadcast #LIVE

🤖 Google как раз выкатила напоминание как оптимизировать расход памяти в Android приложениях. По сути ничего нового для тех
🤖 Google как раз выкатила напоминание как оптимизировать расход памяти в Android приложениях. По сути ничего нового для тех кто уже занимался подобным, а остальным на заметку #Android #AndroidDev #Производительность #Оптимизация

🤯 Android 17 умеет убивать ваше приложение молча. Без стектрейса. Разбираемся. И ЭТО БЕЗ КЛИКБЕЙТА Начиная с Android 17, появился системный MemoryLimiter — лимит памяти на процесс, привязанный к общему объёму RAM устройства. Превысил лимит — процесс убит. Без эксепшена, без стектрейса. Как это выглядит: 👉 причина завершения в ApplicationExitInfo = REASON_OTHER 👉 в описании строка "MemoryLimiter:AnonSwap" 👉 в Crashlytics этого НЕ будет: это не краш, а системное убийство процесса И сразу разрушим главное заблуждение: это НЕ про heap size. getMemoryClass() и largeHeap ограничивают только Java-кучу — объекты под управлением ART. Превысил — получишь OutOfMemoryError со стектрейсом, который ловится. А новый MemoryLimiter считает другое — анонимную память ВСЕГО процесса: 👉 битмапы (с Android 8 их пиксели в нативной памяти, в Java-куче их нет) 👉 нативные библиотеки, медиакодеки, Skia 👉 веса on-device ML/LLM моделей (mmap/нативка) Всё это в getMemoryClass() не видно. Можно сидеть втрое ниже heap-лимита, никогда не словить OOM — и всё равно быть убитым, потому что суммарная нативная память процесса вылезла за порог. getMemoryClass и OOM — про Java-кучу. MemoryLimiter — про весь процесс. Это два разных предохранителя, и старый про новый вам ничего не скажет. Важные оговорки, чтобы не было паники на пустом месте: 👉 в Android 17 лимиты заданы консервативно: цель — экстремальные утечки и выбросы, а не нормальные приложения 👉 включены только на части устройств 👉 конкретных чисел Google не публиковал. Реальный лимит своего девайса можно снять командой: adb shell am memory-limiter status В зоне риска тяжёлые сценарии на устройствах среднего и бюджетного сегмента. Уже есть задокументированный случай на бете — крупная on-device модель Gemma падала на Pixel 6a с 6 ГБ RAM именно из-за MemoryLimiter. 6 ГБ — это уже не бюджетник. Java-куча там небольшая, а нативка с весами модели — гигабайты в RAM. Два мифа, которые гуляют по сети и которые повторять не надо: 👉 НЕТ подтверждения, что система шлёт «вежливое предупреждение» перед убийством 👉 НЕТ официального «дедлайна для разработчиков 30 июня». Google его не объявлял Это первый раз, когда дисциплина по памяти не совет, а правило от ОС. Сейчас лимиты мягкие, но направление одностороннее — закручивать будут, а не отпускать. И самое неприятное тут не сам лимит, а его невидимость: пользователи будут терять сессии, а вы не узнаете, пока специально не начнёте смотреть. 💬 Как вы думаете, связаны ли меры с тем, что оперативка стала дорожать и вставить по 12–16 ГБ стало дорого? #Android #Android17 #Производительность

🤖 ⚙️ Адаптивность под разные экраны — одна из тех вещей, которые откладывают до последнего. А когда приходит требование подд
🤖 ⚙️ Адаптивность под разные экраны — одна из тех вещей, которые откладывают до последнего. А когда приходит требование поддержать планшет, начинается боль. Хотя в Compose это решается в несколько строк. GridCells.Adaptive сам рассчитывает колонки под доступное пространство — ничего не нужно задавать вручную:
LazyVerticalGrid(
    columns = GridCells.Adaptive(minSize = 160.dp),
    modifier = Modifier.fillMaxSize()
) {
    items(list) { ItemCard(it) }
}
Но почти всегда забывают про пагинацию. pageSize хардкодят, и это ломает всю адаптивность. На планшете с 4 колонками те же 20 элементов — это 5 строк. Пользователь упирается в конец страницы раньше чем успел проскроллить. Правильно — считать pageSize от реального числа колонок:
BoxWithConstraints {
    val columns = (maxWidth / 160.dp)
        .toInt().coerceAtLeast(1)
    val rows = (maxWidth / 120.dp)
        .toInt().coerceAtLeast(1)
    val pageSize = columns * rows

    val items = remember(pageSize) {
        Pager(PagingConfig(pageSize = pageSize)) { MyPagingSource() }
    }.flow.collectAsLazyPagingItems()

    LazyVerticalGrid(
        columns = GridCells.Adaptive(minSize = 160.dp)
    ) {
        items(items.itemCount) { ItemCard(items[it]) }
    }
}
На смартфоне выйдет ~10 элементов, на планшете ~30. Никаких магических чисел — только математика от реального пространства. Самый хороший пример тут - галерея. Они показывают адаптивную сетку контента и имеет возможность настройки другого расположения элементов 🔗 Lazy lists and grids — Android Developers #Compose #Android #AndroidDev #Ui #Adaptive #Адаптивность