Android Live 🤖
رفتن به کانال در Telegram
Самые свежие новости, новинки и тренды Android от практикующего разработчика. Автор: @al_gorshkov, Чат: @android_live_chat Личный блог: @al_gorshkov_blog Рекламу не размещаю
نمایش بیشتر5 118
مشترکین
-224 ساعت
-77 روز
-1730 روز
آرشیو پست ها
5 118
Optimized Resource Shrinking
Google говорит, что с релизом AGP 8.12.0 добавилась новая фича — ещё более лучший "оптимизатор ресурсов", который вместе с R8 заметно уменьшает размер приложения. Пишут, что в некоторых случаях размер ресурсов уменьшается на 50%.
Чтобы попробовать, надо включить
android.r8.optimizedResourceShrinking=trueну и, конечно же, обновиться до 8.12.0. А вы уже пробовали обновиться? Google врёт или ресурсов и правда стало меньше? 🤔
5 118
Друзья, с Днём программиста! 💻🎉
Сегодня наш профессиональный праздник.
Хочу пожелать нам сложных задач, захватывающих вызовов и отличных проектов.
Пусть всё компилируется с первого раза, а Gradle больше никогда не тормозит! 😅
Продолжайте менять мир! 🌍
5 118
Permissions
#android
Вероятно, кому-то может показаться очевидным этот совет, но тем не менее, я встречаю много приложений с этим ужасным UX-паттерном.
Одно из самых глупых решений в UX, которое можно принять — это запрашивать разрешения (permissions) слишком рано, причём сразу целым блоком и без объяснения, зачем они нужны.
Большинство пользователей, безусловно, не читают, что именно они разрешают. Я же отношу себя к тем, кто смотрит на каждое разрешение и недоумевает: зачем приложению мобильного оператора доступ к фото и видео? А ещё больше удивляюсь, когда после его отклонения приложение работает корректно.
Разрешения нужно запрашивать именно в тот момент, когда они действительно необходимы. Доступ к микрофону? Отлично, расскажите, зачем он нужен и что произойдёт, если его не дать. Вдруг микрофон — суперважная фича, чтобы отправить сообщение в мессенджере?
Разница между ранним запросом и запросом в нужное время огромна, помните об этом и делайте запросы на разрешение в подходящих моментах.
5 118
Обфускация — кастомные словари
#android
Про обфускацию кода знает каждый Android-разработчик, ведь без неё не обходится ни одна релизная версия продукта. Помимо уменьшения размера кода, у неё есть ещё и важный аспект безопасности.
Однако стандартная конфигурация, хоть и неплохая, не обеспечивает абсолютной защиты от реверс-инжиниринга, как, впрочем, и любая другая защита. Но её можно улучшить настроив кастомные словари, которые значительно улучшат текущие настройки R8.
Существует несколько подходов к их настройке: это могут быть Java Reserved Words, кастомные рандомные символы, или просто один и тот же символ, но с разной длиной слов.
Пару статей, чтобы лучше изучить этот вопрос. 📚
5 118
А кто-нибудь пробовал GrapheneOS? 🤔
Интересует личный опыт:
🔴насколько сложно использовать привычные приложения?
🔴что напрягает?
🔴какой девайс используете?
🔴остаётесь на этой OS или хотите обратно?
Кажется, попробовать её — неплохой эксперимент, но нужно больше информации и личного опыта. 🔍
5 118
Gradle 9.0.0: почему стоит переходить?
#gradle
На днях вышел Gradle 9.0.0 — значимый релиз, потому что теперь у нас будет но не точно ещё более быстрая сборка. Всё это благодаря Configuration Cache.
Если быстро пройтись по теории, то при сборке есть этапы Initialization, Configuration и Execution. Первый сам по себе довольно быстрый, а последний — кэшируется за счёт Build Cache. Таким образом, остался один из самых долгих этапов сборки, который теперь тоже может кэшироваться.
Начиная с Gradle 10 эта фича будет включена по умолчанию, но уже сейчас стоит перейти на свежий Gradle, чтобы получить прирост в скорости.
Остальные минорные изменения описаны здесь.
5 118
Говорят, что следующая версия Android 17 будет называться Cinnamon Bun, или «Булочка с корицей». 🍩
После проекта Trunk Stable алфавитный порядок нарушился, и теперь идёт с самого начала алфавита ну почти. После Android 16 Baklava нужно было выбрать десерт на «C». Надеемся, что теперь этот подход сохранится.
5 118
Git Secrets
#git
Скорее всего, в вашем репозитории есть приватные данные, необходимые для работы: например, secret-ключи для сторонних сервисов, API-ключи или конфиги для сборки проекта.
Обычно такие файлы добавляют в gitignore, чтобы не хранить их в общей репе.
Но дальнейшее управление ими становится затруднительным: при изменениях приходится пересылать новую версию вручную или использовать сторонние инструменты.
Вдруг вы не знали, но есть такая утилита, как
git-secret, которая решает все эти проблемы.
Он шифрует файлы прямо в вашем репозитории, сохраняет историю коммитов и позволяет легко управлять доступами.
Пользуйтесь, если раньше не знали о таком хорошем инструменте. Хорошая инструкция для настройки тут.5 118
Agent Mode в Android Studio
#ai
Ещё одна новость про AI: в последней версии Android Studio появилась возможность включить Agent Mode с Gemini.
Из прикольных фичей:
- можно использовать свой API-ключ для Gemini Pro (по умолчанию есть квоты, и размер окна лимитирован);
- есть поддержка MCP-серверов.
Детальнее — тут и тут.
Интересно, за сколько минут уйдёт дневная квота, если попросить пофиксить баг в Telegram-клиенте или запилить анимацию из последнего конкурса? 😄
5 118
Если вдруг интересно — Telegram анонсировал свежий конкурс для Android-разработчиков.
Детали вот тут. 🙃
5 118
Вайбкодинг vs Метакодинг
С распространением нейросетей в жизни разработчиков появился новый термин — «вайбкодинг». По сути, это бездумное программирование с помощью нейросетей. Когда ты просишь AI сгенерировать код и слепо доверяешь результату.
В профессиональной среде вайбкодинг не любят: качество такого кода часто оставляет желать лучшего. На мой взгляд, для быстрых прототипов он подходит отлично, но точно не для продакшена.
Есть и другой, менее известный термин — «метакодинг». Хотя в обоих случаях используется нейросеть, подходы кардинально разные.
Метакодинг — это вдумчивая работа с нейросетью в процессе программирования. Ты просишь нейросеть написать тесты перед реализацией, задаёшь уточняющие вопросы, если видишь непонятный участок, и вникаешь в предложенную архитектуру. Ты не внедряешь предложения бездумно — наоборот, задаёшь правила и указываешь документацию, которой стоит придерживаться. Короче, такой джун на максималках 😄
Считаю, что второй способ — это база для профессионалов будущего. Это новый инструмент, который заметно ускоряет скорость разработки при правильном использовании, но не заменяет её пока что. Уже сейчас стоит внедрять такие подходы в повседневную разработку.
Хорошее определение и немного более подробное объяснение — вот тут.
А что думаете вы?
5 118
Firebase AI-Powered App Testing Agent
#firebase #google
AI-инструменты всё активнее входят в нашу разработческую жизнь — и сегодня расскажу про ещё один от Google.
Если вы используете App Distribution для раскатки тестовых билдов, то могли заметить вкладку «Test cases». По сути, вы добавляете шаги теста, а Gemini проходит их автоматически и показывает результат.
Выглядит многообещающе, ведь:
- тесты можно писать на естественном языке — например: «нажми кнопку логина, введи такие-то данные»;
- хорошая альтернатива ручной проверке QA: агент выполняет базовые действия вместо тестировщика;
- альтернатива автоматизированным тестам: при рефакторинге экранов не нужно менять шаги и поддерживать тест-код.
Пробуйте, пока это бесплатно 😄
Больше информации тут.
5 118
On-device GenAI APIs
#google #io
Слышали ли вы, но недавно Google анонсировали API для интеграции Gemini Nano в Android-приложения. Что появилось:
- Summarization — для краткого пересказа статей, диалогов и других текстов;
- Proofreading — для вычитки и полировки текстов;
- Rewriting — переформулировка текстов в разных стилях и форматах;
- Image Description — генерация описаний для изображений;
Главная фишка в том, что всё обрабатываются без похода в сеть, а это значит:
- никаких затрат на API-вызовы;
- всё работает оффлайн;
- данные не покидают устройство — критично для многих приложений.
API выглядят круто — даже если приложение не про тексты или картинки, с их помощью можно добавить полезные фичи для улучшения UX.
Все детали и тесты можно взять тут.
5 118
Memory Indicator в Android Studio
Не знаю, знали ли вы, но в Android Studio можно посмотреть, сколько оперативки она съедает прямо сейчас. И без дополнительных плагинов. Фича появилась в Android Studio Giraffe. Появилась давно, но мне попалась только сейчас.
Достаточно кликнуть правой кнопкой по нижней панели и включить Memory Indicator.
Хотя мы и знали, что IDE прожорливая, но теперь у нас есть цифры, подтверждающие это. 😄
5 118
Compose Multiplatform — в проде!
#compose
Отличная новость: Compose Multiplatform 1.8.0 вышел в релиз, и Compose для iOS теперь в stable!
Сам анонс тут, кратко что обещают:
🟢все основные API стабильны, глобальных ломающих изменений не планируется;
🟢Compose на iOS ощущается как нативный фреймворк: скроллы, навигация, шрифты — всё учитывается;
🟢с производительностью тоже всё в порядке, очень близок к SwiftUI;
🟢Compose Preview работает наравне с Compose Hot Reload;
Больше изменений тут.
Поздравляю команду JetBrains, теперь надо команду iOS уговорить попробовать новую технологию. 😄
А вы уже пробовали? Как впечатления?
5 118
Android Activity Lifecycle от 8ksec
#android
Про жизненный цикл Activity не знает только ленивый, но мне попалась небольшая статья, где ребята из 8ksec рассматривают его с точки зрения уязвимостей и безопасности.
Если что, у 8ksec вообще много толковых статей и обучающих материалов по безопасности Android-приложений. И радует, что на привычные вещи можно взглянуть по-новому — с позиции безопасности и анализа уязвимостей.
5 118
Firebender
#ai #androidstudio
AI уже прочно вошёл в нашу жизнь, и, кажется, отказаться от него будет непросто.
Я, например, попробовал Firebender в Android Studio — выглядит очень достойно. Под капотом — целый набор моделей, работает прямо внутри Android Studio, выдаёт неплохие ответы и, что приятно, всё это бесплатно.
По своему опыту скажу: активно использую агентов для генерации документации и тестов — именно те задачи, которые руками обычно делать лениво. Недавно попробовал и рефакторинг легаси-кода — выглядит многообещающе, но пока требует ручной проверки. Если довериться агенту, то придётся фиксить много багов. 🫨
А как вы относитесь к AI-агентам? Уже внедрили в рабочие процессы?
