This media is not supported in your browser
VIEW IN TELEGRAM
Новый iPhone вышел на днях, вы помните?
Наверное, самым ярким вау-эффектом после презентации осталась анимация открытия и закрытия нового iPhone.
Кто-то может подумать, что такую анимацию нельзя повторить на Android, а оказывается — чуть-чуть AGSL shaders + Jetpack Compose + работы с сенсорами — и вот, готовая анимация.
Если честно, не знаю, зачем оно нужно, может только как вау-эффект
Наверное, самым ярким вау-эффектом после презентации осталась анимация открытия и закрытия нового 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%+ выполненных задач из сотни многошаговых сценариев.
Запуск простой:
Скрипт сам поставит ADB, scrcpy, FFmpeg и Python-зависимости, поднимет локальный сервер на
Для IDE есть нативный MCP-сервер:
И отдельный файл
Мне кажется, что если всё работает именно как заявлено — это прям топовое обновление в рамках автоматизации Android-тестов.
Что думаете?
Эта инструмент, который превращает обычный текст в реальные действия на 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-тестов.
Что думаете?
GitHub
GitHub - google/artemis: ARTEMIS turns natural-language instructions into reliable Android automation. It automates end-to-end…
ARTEMIS turns natural-language instructions into reliable Android automation. It automates end-to-end workflows, captures logs, and integrates seamlessly with AI coding assistants such as Antigravi...
🔥15❤6👍5👎1🤩1
Похоже, есть что посмотреть на выходных
Недавно вышло интервью с
Слышал разные мнения о Джейке, но для меня он является «отцом» многих крутых библиотек на самой заре Android и очень сильным инженером.
В интервью он рассказывает про Kotlin, про увольнение из Google, про текущее место работы и как он его выбрал. И, конечно же, про ИИ.
Олды, кто помнит Actionbar Sherlock?
YouTube
Kotlin 2026: Layoffs, AI, Google — Is the Golden Age Over? Jake Wharton Explains
Jake Wharton quit his job at Cash App in November 2025, in the middle of massive tech layoffs. After that, he published nine values for his next employer, number one was "No AI." Jake explains why and what else made the list.
Vitaly talked to Jake about:…
Vitaly talked to Jake about:…
❤22🔥8👍6
AirDrop на Android, похоже, уже есть на нескольких моделях Android
Но, оказывается, всё это время была годная альтернатива. Может, вам тоже надо, как и мне.
Есть LocalSend — бесплатный open-source проект, который гоняет файлы и сообщения между устройствами по локальной сети.
Как это работает: устройства в одной Wi-Fi-сети находят друг друга и обмениваются файлами напрямую, без облаков посередине. Работает из коробки на Android, iOS, Windows, macOS и Linux. Под капотом — REST API поверх HTTPS, а сертификат генерится на лету на каждом устройстве.
И... Приложение и правда работает, у меня завелось везде прям из коробки. Отдельно отмечу режим с копированием текста: частенько бывает нужно пошарить какую-нибудь ссылку на соседний девайс.
Похоже, что лично для меня эра «закинь в Telegram на одном девайсе — скачай на другом" закончилась ☺️
Но, оказывается, всё это время была годная альтернатива. Может, вам тоже надо, как и мне.
Есть LocalSend — бесплатный open-source проект, который гоняет файлы и сообщения между устройствами по локальной сети.
Как это работает: устройства в одной Wi-Fi-сети находят друг друга и обмениваются файлами напрямую, без облаков посередине. Работает из коробки на Android, iOS, Windows, macOS и Linux. Под капотом — REST API поверх HTTPS, а сертификат генерится на лету на каждом устройстве.
И... Приложение и правда работает, у меня завелось везде прям из коробки. Отдельно отмечу режим с копированием текста: частенько бывает нужно пошарить какую-нибудь ссылку на соседний девайс.
Похоже, что лично для меня эра «закинь в Telegram на одном девайсе — скачай на другом" закончилась ☺️
GitHub
GitHub - localsend/localsend: An open-source cross-platform alternative to AirDrop
An open-source cross-platform alternative to AirDrop - localsend/localsend
🔥15👍4❤1👏1
На днях ревьювил код, связанный с копированием в буфер обмена
И заметил, что многие приложения неверно используют буфер обмена при копировании приватной информации. Типа данных карт, паролей из менеджера или 2FA-кодов.
Существует флаг
Работает всё просто:
Ещё стоит не забывать подчищать критичные данные при копировании. Детали можно почитать тут.
Так что если у вас в приложении есть какого-то рода приватные данные — не забывайте заботиться о ваших пользователях. ☺️
И заметил, что многие приложения неверно используют буфер обмена при копировании приватной информации. Типа данных карт, паролей из менеджера или 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)
}
}
Ещё стоит не забывать подчищать критичные данные при копировании. Детали можно почитать тут.
Так что если у вас в приложении есть какого-то рода приватные данные — не забывайте заботиться о ваших пользователях. ☺️
Android Developers
Secure Clipboard Handling | Security | Android Developers
👍40
На днях попалась вакансия мечты
Вроде всё начинается как неплохо: удалёнка, Kotlin/Jetpack Compose/Coroutines, небольшая команда.
А потом целый абзац, который назван High Standards. No Apologies.
Самое смешное, что компания занимается умными девайсами для улучшения сна. 😆
Видимо, лучший способ понять проблемы со сном — это сначала создать их своим сотрудникам.
Ну что, откликаться?
Вроде всё начинается как неплохо: удалёнка, 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
Как назовём такой work-life balance?
Anonymous Poll
12%
Double work balance
8%
1.5× work-life balance
54%
No-life balance
26%
Eight hours of sleep. Per week.
😁5
Почему Android-эмулятор жрёт 8 ГБ?
На днях попался репозиторий с CLI-тулзой, которая обещала уменьшить потребление стандартного эмулятора с ~8 ГБ до ~1,5 ГБ на Apple Silicon и Linux.
Что-то не очень хочется тянуть неизвестную зависимость на свой ноутбук — подумал я, и отправил агента разобраться, чего там внутри.
Выяснилось, что никакой магии нет: просто упакованное использование уже стандартных инструментов.
Вот что можно сделать, чтобы ускорить работу эмулятора:
1.Купить ноутбук с 64GB RAM
2. При добавлении эмулятора выбираем образ «Google APIs», а не «Google Play». Если вам не нужен Play Store, то APIs легковеснее, а ещё на нём работает
3. Для начала зайти в Device Manager → Edit → Show Advanced Settings → RAM, и там поставить значение примерно в 2048 MB.
4. Ещё можно отключить ненужные штуки, типа камеры, микрофона или Bluetooth через
И последний пункт — это запуститься с флагом -lowram вместо запуска из студии. То есть:
Может ещё что-то упустил, дайте знать в комментариях.
На днях попался репозиторий с CLI-тулзой, которая обещала уменьшить потребление стандартного эмулятора с ~8 ГБ до ~1,5 ГБ на Apple Silicon и Linux.
Что-то не очень хочется тянуть неизвестную зависимость на свой ноутбук — подумал я, и отправил агента разобраться, чего там внутри.
Выяснилось, что никакой магии нет: просто упакованное использование уже стандартных инструментов.
Вот что можно сделать, чтобы ускорить работу эмулятора:
1.
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
Может ещё что-то упустил, дайте знать в комментариях.
GitHub
GitHub - kdbhalala/avdslim: ⚡ Drop Android Virtual Device (AVD) emulator RAM from ~8GB to ~1.5GB on Apple Silicon & Linux. Inspired…
⚡ Drop Android Virtual Device (AVD) emulator RAM from ~8GB to ~1.5GB on Apple Silicon & Linux. Inspired by simslim. - kdbhalala/avdslim
❤16👍4🔥2
Git --delete-merged
На днях узнал про любопытную команду в Git —
Суть простая: команда за один запуск дропает все ветки, которые уже были влиты впромпт скрипт написать. Но командой как-то удобнее.
Работает так:
Посмотрел, убедился, что ничего лишнего — запускаешь без
Можно чистить точечно, категориями —
На днях узнал про любопытную команду в 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