Android Live 🤖
前往频道在 Telegram
Самые свежие новости, новинки и тренды Android от практикующего разработчика. Автор: @al_gorshkov, Чат: @android_live_chat Личный блог: @al_gorshkov_blog Рекламу не размещаю
显示更多5 109
订阅者
-224 小时
-97 天
-2130 天
帖子存档
5 110
16KB page size
На всякий случай решил написать, что осталось всего пара недель, чтобы поддержать 16KB page size.
Наверняка вы уже перевели все нативные библиотеки, но лучше заранее перепроверьте, чтобы избежать пригорания перед 1 ноября.
Вот тут чуть больше информации о том, как проверить поддержку. 😌
5 110
Optimized Resource Shrinking
Google говорит, что с релизом AGP 8.12.0 добавилась новая фича — ещё более лучший "оптимизатор ресурсов", который вместе с R8 заметно уменьшает размер приложения. Пишут, что в некоторых случаях размер ресурсов уменьшается на 50%.
Чтобы попробовать, надо включить
android.r8.optimizedResourceShrinking=trueну и, конечно же, обновиться до 8.12.0. А вы уже пробовали обновиться? Google врёт или ресурсов и правда стало меньше? 🤔
5 110
Друзья, с Днём программиста! 💻🎉
Сегодня наш профессиональный праздник.
Хочу пожелать нам сложных задач, захватывающих вызовов и отличных проектов.
Пусть всё компилируется с первого раза, а Gradle больше никогда не тормозит! 😅
Продолжайте менять мир! 🌍
5 110
Permissions
#android
Вероятно, кому-то может показаться очевидным этот совет, но тем не менее, я встречаю много приложений с этим ужасным UX-паттерном.
Одно из самых глупых решений в UX, которое можно принять — это запрашивать разрешения (permissions) слишком рано, причём сразу целым блоком и без объяснения, зачем они нужны.
Большинство пользователей, безусловно, не читают, что именно они разрешают. Я же отношу себя к тем, кто смотрит на каждое разрешение и недоумевает: зачем приложению мобильного оператора доступ к фото и видео? А ещё больше удивляюсь, когда после его отклонения приложение работает корректно.
Разрешения нужно запрашивать именно в тот момент, когда они действительно необходимы. Доступ к микрофону? Отлично, расскажите, зачем он нужен и что произойдёт, если его не дать. Вдруг микрофон — суперважная фича, чтобы отправить сообщение в мессенджере?
Разница между ранним запросом и запросом в нужное время огромна, помните об этом и делайте запросы на разрешение в подходящих моментах.
5 110
Обфускация — кастомные словари
#android
Про обфускацию кода знает каждый Android-разработчик, ведь без неё не обходится ни одна релизная версия продукта. Помимо уменьшения размера кода, у неё есть ещё и важный аспект безопасности.
Однако стандартная конфигурация, хоть и неплохая, не обеспечивает абсолютной защиты от реверс-инжиниринга, как, впрочем, и любая другая защита. Но её можно улучшить настроив кастомные словари, которые значительно улучшат текущие настройки R8.
Существует несколько подходов к их настройке: это могут быть Java Reserved Words, кастомные рандомные символы, или просто один и тот же символ, но с разной длиной слов.
Пару статей, чтобы лучше изучить этот вопрос. 📚
5 110
А кто-нибудь пробовал GrapheneOS? 🤔
Интересует личный опыт:
🔴насколько сложно использовать привычные приложения?
🔴что напрягает?
🔴какой девайс используете?
🔴остаётесь на этой OS или хотите обратно?
Кажется, попробовать её — неплохой эксперимент, но нужно больше информации и личного опыта. 🔍
5 110
Gradle 9.0.0: почему стоит переходить?
#gradle
На днях вышел Gradle 9.0.0 — значимый релиз, потому что теперь у нас будет но не точно ещё более быстрая сборка. Всё это благодаря Configuration Cache.
Если быстро пройтись по теории, то при сборке есть этапы Initialization, Configuration и Execution. Первый сам по себе довольно быстрый, а последний — кэшируется за счёт Build Cache. Таким образом, остался один из самых долгих этапов сборки, который теперь тоже может кэшироваться.
Начиная с Gradle 10 эта фича будет включена по умолчанию, но уже сейчас стоит перейти на свежий Gradle, чтобы получить прирост в скорости.
Остальные минорные изменения описаны здесь.
5 110
Говорят, что следующая версия Android 17 будет называться Cinnamon Bun, или «Булочка с корицей». 🍩
После проекта Trunk Stable алфавитный порядок нарушился, и теперь идёт с самого начала алфавита ну почти. После Android 16 Baklava нужно было выбрать десерт на «C». Надеемся, что теперь этот подход сохранится.
5 110
Git Secrets
#git
Скорее всего, в вашем репозитории есть приватные данные, необходимые для работы: например, secret-ключи для сторонних сервисов, API-ключи или конфиги для сборки проекта.
Обычно такие файлы добавляют в gitignore, чтобы не хранить их в общей репе.
Но дальнейшее управление ими становится затруднительным: при изменениях приходится пересылать новую версию вручную или использовать сторонние инструменты.
Вдруг вы не знали, но есть такая утилита, как
git-secret, которая решает все эти проблемы.
Он шифрует файлы прямо в вашем репозитории, сохраняет историю коммитов и позволяет легко управлять доступами.
Пользуйтесь, если раньше не знали о таком хорошем инструменте. Хорошая инструкция для настройки тут.5 110
Agent Mode в Android Studio
#ai
Ещё одна новость про AI: в последней версии Android Studio появилась возможность включить Agent Mode с Gemini.
Из прикольных фичей:
- можно использовать свой API-ключ для Gemini Pro (по умолчанию есть квоты, и размер окна лимитирован);
- есть поддержка MCP-серверов.
Детальнее — тут и тут.
Интересно, за сколько минут уйдёт дневная квота, если попросить пофиксить баг в Telegram-клиенте или запилить анимацию из последнего конкурса? 😄
5 110
Если вдруг интересно — Telegram анонсировал свежий конкурс для Android-разработчиков.
Детали вот тут. 🙃
5 110
Вайбкодинг vs Метакодинг
С распространением нейросетей в жизни разработчиков появился новый термин — «вайбкодинг». По сути, это бездумное программирование с помощью нейросетей. Когда ты просишь AI сгенерировать код и слепо доверяешь результату.
В профессиональной среде вайбкодинг не любят: качество такого кода часто оставляет желать лучшего. На мой взгляд, для быстрых прототипов он подходит отлично, но точно не для продакшена.
Есть и другой, менее известный термин — «метакодинг». Хотя в обоих случаях используется нейросеть, подходы кардинально разные.
Метакодинг — это вдумчивая работа с нейросетью в процессе программирования. Ты просишь нейросеть написать тесты перед реализацией, задаёшь уточняющие вопросы, если видишь непонятный участок, и вникаешь в предложенную архитектуру. Ты не внедряешь предложения бездумно — наоборот, задаёшь правила и указываешь документацию, которой стоит придерживаться. Короче, такой джун на максималках 😄
Считаю, что второй способ — это база для профессионалов будущего. Это новый инструмент, который заметно ускоряет скорость разработки при правильном использовании, но не заменяет её пока что. Уже сейчас стоит внедрять такие подходы в повседневную разработку.
Хорошее определение и немного более подробное объяснение — вот тут.
А что думаете вы?
5 110
Firebase AI-Powered App Testing Agent
#firebase #google
AI-инструменты всё активнее входят в нашу разработческую жизнь — и сегодня расскажу про ещё один от Google.
Если вы используете App Distribution для раскатки тестовых билдов, то могли заметить вкладку «Test cases». По сути, вы добавляете шаги теста, а Gemini проходит их автоматически и показывает результат.
Выглядит многообещающе, ведь:
- тесты можно писать на естественном языке — например: «нажми кнопку логина, введи такие-то данные»;
- хорошая альтернатива ручной проверке QA: агент выполняет базовые действия вместо тестировщика;
- альтернатива автоматизированным тестам: при рефакторинге экранов не нужно менять шаги и поддерживать тест-код.
Пробуйте, пока это бесплатно 😄
Больше информации тут.
5 110
On-device GenAI APIs
#google #io
Слышали ли вы, но недавно Google анонсировали API для интеграции Gemini Nano в Android-приложения. Что появилось:
- Summarization — для краткого пересказа статей, диалогов и других текстов;
- Proofreading — для вычитки и полировки текстов;
- Rewriting — переформулировка текстов в разных стилях и форматах;
- Image Description — генерация описаний для изображений;
Главная фишка в том, что всё обрабатываются без похода в сеть, а это значит:
- никаких затрат на API-вызовы;
- всё работает оффлайн;
- данные не покидают устройство — критично для многих приложений.
API выглядят круто — даже если приложение не про тексты или картинки, с их помощью можно добавить полезные фичи для улучшения UX.
Все детали и тесты можно взять тут.
5 110
Memory Indicator в Android Studio
Не знаю, знали ли вы, но в Android Studio можно посмотреть, сколько оперативки она съедает прямо сейчас. И без дополнительных плагинов. Фича появилась в Android Studio Giraffe. Появилась давно, но мне попалась только сейчас.
Достаточно кликнуть правой кнопкой по нижней панели и включить Memory Indicator.
Хотя мы и знали, что IDE прожорливая, но теперь у нас есть цифры, подтверждающие это. 😄
5 110
Compose Multiplatform — в проде!
#compose
Отличная новость: Compose Multiplatform 1.8.0 вышел в релиз, и Compose для iOS теперь в stable!
Сам анонс тут, кратко что обещают:
🟢все основные API стабильны, глобальных ломающих изменений не планируется;
🟢Compose на iOS ощущается как нативный фреймворк: скроллы, навигация, шрифты — всё учитывается;
🟢с производительностью тоже всё в порядке, очень близок к SwiftUI;
🟢Compose Preview работает наравне с Compose Hot Reload;
Больше изменений тут.
Поздравляю команду JetBrains, теперь надо команду iOS уговорить попробовать новую технологию. 😄
А вы уже пробовали? Как впечатления?
5 110
Android Activity Lifecycle от 8ksec
#android
Про жизненный цикл Activity не знает только ленивый, но мне попалась небольшая статья, где ребята из 8ksec рассматривают его с точки зрения уязвимостей и безопасности.
Если что, у 8ksec вообще много толковых статей и обучающих материалов по безопасности Android-приложений. И радует, что на привычные вещи можно взглянуть по-новому — с позиции безопасности и анализа уязвимостей.
