Android Live 🤖
5.14K subscribers
55 photos
3 videos
828 links
Самые свежие новости, новинки и тренды Android от практикующего разработчика.


Автор: @al_gorshkov,
Чат: @android_live_chat
Личный блог: @al_gorshkov_blog

Рекламу не размещаю
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Новый iPhone вышел на днях, вы помните?

Наверное, самым ярким вау-эффектом после презентации осталась анимация открытия и закрытия нового iPhone.

Кто-то может подумать, что такую анимацию нельзя повторить на Android, а оказывается — чуть-чуть AGSL shaders + Jetpack Compose + работы с сенсорами — и вот, готовая анимация.

Если честно, не знаю, зачем оно нужно, может только как вау-эффект
👍29🔥10🤩1
Кстати, вчера забыл про очень важный день...

День погонщиков нейронок программиста!

С нашим профессиональным праздником нас, хоть и на день позже. Несмотря на непростые и тревожные времена — желаю вам держать руку на пульсе, профессионально расти, находить работу мечты и делать свои топовые проекты.

С праздником!
❤20👍4
Google выкатили ARTEMIS

Эта инструмент, который превращает обычный текст в реальные действия на Android-устройстве. По сути, это полноценный агент, который жмёт по кнопкам, как человек.

Что умеет:

• Cross-приложения — например, на демо показали: «построй маршрут в Maps и посчитай суммарное время, потом открой YouTube и включи Coldplay». Вроде даже работает
• Мультимодальный поиск элементов — сначала пробует по индексу, если не вышло — по координатам и визуально. В общем, старается не упасть на ровном месте
• MCP для IDE — Antigravity, Claude Code, Windsurf напрямую рулят тестовым девайсом и собирают Logcat + скриншоты
• Два режима — Flash (реактивный цикл, 3–5 сек на шаг) и Pro (проверка цели перед каждым действием, восстановление после блокировок)

Результат на AndroidWorld от Google Research — 99%+ выполненных задач из сотни многошаговых сценариев.

Запуск простой:

git clone https://github.com/google/artemis.git && cd artemis
./start.sh


Скрипт сам поставит ADB, scrcpy, FFmpeg и Python-зависимости, поднимет локальный сервер на localhost:8000 с визардом подключения, зеркалом экрана и песочницей для промптов.

Для IDE есть нативный MCP-сервер:

uv run artemis mcp --install all


И отдельный файл rules.md — чтобы ассистент вёл себя как senior mobile QA-инженер и не выдумывал несуществующие элементы интерфейса.

Мне кажется, что если всё работает именно как заявлено — это прям топовое обновление в рамках автоматизации Android-тестов.

Что думаете?
🔥15❤6👍5👎1🤩1
Похоже, есть что посмотреть на выходных


Недавно вышло интервью с Женей Вороновым Jake Wharton. Сам ещё не смотрел, но судя по описанию — интервью годное.

Слышал разные мнения о Джейке, но для меня он является «отцом» многих крутых библиотек на самой заре Android и очень сильным инженером.

В интервью он рассказывает про Kotlin, про увольнение из Google, про текущее место работы и как он его выбрал. И, конечно же, про ИИ.

Олды, кто помнит Actionbar Sherlock?
❤22🔥8👍6
AirDrop на Android, похоже, уже есть на нескольких моделях Android

Но, оказывается, всё это время была годная альтернатива. Может, вам тоже надо, как и мне.

Есть LocalSend — бесплатный open-source проект, который гоняет файлы и сообщения между устройствами по локальной сети.

Как это работает: устройства в одной Wi-Fi-сети находят друг друга и обмениваются файлами напрямую, без облаков посередине. Работает из коробки на Android, iOS, Windows, macOS и Linux. Под капотом — REST API поверх HTTPS, а сертификат генерится на лету на каждом устройстве.

И... Приложение и правда работает, у меня завелось везде прям из коробки. Отдельно отмечу режим с копированием текста: частенько бывает нужно пошарить какую-нибудь ссылку на соседний девайс.

Похоже, что лично для меня эра «закинь в Telegram на одном девайсе — скачай на другом" закончилась ☺️
🔥15👍4❤1👏1
На днях ревьювил код, связанный с копированием в буфер обмена

И заметил, что многие приложения неверно используют буфер обмена при копировании приватной информации. Типа данных карт, паролей из менеджера или 2FA-кодов.

Существует флаг IS_SENSITIVE в ClipboardManager.setPrimaryClip(). Если его не проставить — скопированное содержимое оказывается в превью клавиатуры (той самой подсказке над клавишами). Что совсем небезопасно.

Работает всё просто:


// API 33+
clipData.apply {
description.extras = PersistableBundle().apply {
putBoolean(ClipDescription.EXTRA_IS_SENSITIVE, true)
}
}
// API 32 и ниже
clipData.apply {
description.extras = PersistableBundle().apply {
putBoolean("android.content.extra.IS_SENSITIVE", true)
}
}


Ещё стоит не забывать подчищать критичные данные при копировании. Детали можно почитать тут.

Так что если у вас в приложении есть какого-то рода приватные данные — не забывайте заботиться о ваших пользователях. ☺️
👍40
На днях попалась вакансия мечты

Вроде всё начинается как неплохо: удалёнка, Kotlin/Jetpack Compose/Coroutines, небольшая команда.

А потом целый абзац, который назван High Standards. No Apologies.

This isn’t a 9-to-5. Our team is deeply committed, often putting in 60+ hours a week. We are always pushing to be in the top 1% of our craft.


Самое смешное, что компания занимается умными девайсами для улучшения сна. 😆

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

Ну что, откликаться?
😁52🏆6😨3💯1
😁5
Почему Android-эмулятор жрёт 8 ГБ?

На днях попался репозиторий с CLI-тулзой, которая обещала уменьшить потребление стандартного эмулятора с ~8 ГБ до ~1,5 ГБ на Apple Silicon и Linux.

Что-то не очень хочется тянуть неизвестную зависимость на свой ноутбук — подумал я, и отправил агента разобраться, чего там внутри. 

Выяснилось, что никакой магии нет: просто упакованное использование уже стандартных инструментов. 

Вот что можно сделать, чтобы ускорить работу эмулятора:

1. Купить ноутбук с 64GB RAM
2. При добавлении эмулятора выбираем образ «Google APIs», а не «Google Play». Если вам не нужен Play Store, то APIs легковеснее, а ещё на нём работает adb root.
3. Для начала зайти в Device Manager → Edit → Show Advanced Settings → RAM, и там поставить значение примерно в 2048 MB.
4. Ещё можно отключить ненужные штуки, типа камеры, микрофона или Bluetooth через ~/.android/avd/<NAME>.avd/config.ini

И последний пункт — это запуститься с флагом -lowram вместо запуска из студии. То есть:

$ANDROID_HOME/emulator/emulator \
    -avd Pixel_Whatever \
    -lowram \
    -gpu host \
    -no-audio \
    -no-boot-anim


Может ещё что-то упустил, дайте знать в комментариях.
❤16👍4🔥2
Git --delete-merged

На днях узнал про любопытную команду в Git — --delete-merged .

Суть простая: команда за один запуск дропает все ветки, которые уже были влиты в origin . Конечно, можно и руками подчистить или промпт скрипт написать. Но командой как-то удобнее.

Работает так:

$ git branch --delete-merged 'origin/*' --dry-run
Would delete branch feature/login (was abc1234).
Would delete branch feature/login-fix (was def5678).
Would delete branch fix/typo (was 9876fed).


Посмотрел, убедился, что ничего лишнего — запускаешь без --dry-run:

$ git branch --delete-merged 'origin/*'
Deleted branch feature/login (was abc1234).
Deleted branch feature/login-fix (was def5678).
Deleted branch fix/typo (was 9876fed).


Можно чистить точечно, категориями — topic-*, feature/*, origin/*.
👍14🔥8🤔1
Выбираем своего персонажа 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
😁40