TGViewer
Channel Public Channel
easy_dev991

easy_dev991

@easy_dev991

Делюсь интересными находками/лайфхаками в процессе разработки под iOS/Android, и возможно ты найдешь что-то полезное для себя!

GitHub: https://github.com/easydev991
Subscribers
617
Photos
74
Videos
23
Links
207
Recent Posts 20 shown
Post #381 181
#agent #opencode #question

Чтобы ваш кастомный агент мог задавать вопросы как на скриншоте, нужно в его блок permission обязательно добавить question: allow

Вот как выглядит теперь "шапка" настроек этого агента:

---
description: Build-focused coding agent with full tool access that defaults to codegraph + Serena for code search before responding and making changes.
mode: primary
color: accent
permission:
edit: allow
bash: allow
question: allow
---


А я думал, почему агент уже несколько месяцев не задает вопросы, а пишет текстом и останавливает работу целиком - оказывается, не хватало одного разрешения 😅

И пока не набежали фанаты "клода" и прочих - да, эта базовая штука должна работать из коробки, и нет, никто не гарантирует, что все будет работать из коробки автоматически в бесплатной программе без подписок)
  • ❤ 2
Post #377 360
#android #test #agent

Делаю приложение-дневник тренировок для андроида, и агент пишет/гоняет ui-тесты на все фичи.

Заметил, что тесты стали занимать около 4 минут на полный прогон, и подумал, можно ли это как-то оптимизировать, кроме банального - не запускать все UI-тесты на каждое изменение в верстке.

Оказалось, можно очень мощно сократить время на прогон UI-тестов нехитрым способом.
На примере приложения "Счётчик дней":
- 63 секунды на все UI-тесты до оптимизации
- 28 секунд на все UI-тесты после оптимизации

Все изменения можно посмотреть в этом коммите.

Секрет успеха: отключаем анимации в эмуляторе.

Знаю, звучит очевидно, но я об этом не сразу вспомнил, пока не заметил, что тесты долго гоняют 😅

—————

На всякий случай напоминаю: когда доверяете работу агенту, предпочтительно делать все задачи в формате TDD (сначала падающие тесты, потом реализация и успешные тесты, потом рефактор).
Даже однострочные правки следует проверять, если задета логика.
GitHub Оптимизация прогонов UI-тестов · easydev991/Jetpack-Days@a8b31cc - Добавлена цель emulator-fast для отключения анимаций эмулятора (~2x ускорение android-test для этого проекта) - Зафиксирован канон запуска androidTest: фильтр по классу в итерации, полный прогон ...
  • ❤ 2
  • 😁 1
Post #376 346
#agent #mcp #firebase

Собирал сегодня данные по крашам из firebase, чтобы потом спланировать исправления, и вручную скачал логи по 6 крашам.
А потом решил проверить, есть ли для этого дела готовый mcp, и конечно же он нашелся!

Удобство еще и в том, что можно подключить несколько аккаунтов к одному mcp, чтобы агент мог переключаться между ними при необходимости: один аккаунт у меня рабочий, один личный (пет-проекты), все классно работает - вот настройка для opencode:
"firebase": {
"type": "local",
"command": [
"npx",
"-y",
"firebase-tools@latest",
"mcp",
"--only",
"crashlytics"
],
"enabled": false,
"timeout": 120000
}


Я себе подключил только crashlytics, потому что там из коробки дофига инструментов, которые мне не нужны, но вообще там интересно.
GitHub firebase-tools/src/mcp at main · firebase/firebase-tools The Firebase Command Line Tools. Contribute to firebase/firebase-tools development by creating an account on GitHub.
  • ❤ 3
Post #375 365
#agent #opencode #command

Бывало такое, что хочется написать "хороший такой" промпт 😁, чтобы агент ну точно не затупил, ничего не забыл, и сделал нужную работу?

Может быть, кто-то даже гуглил промпты или скачивал чужие навыки из интернета в надежде, что проблему можно решить готовым промптом или навыком?

Речь не про что-то типа миграций базы данных в таком-то языке или технологии, не про общеизвестную штуку, а конкретно про ваш личный процесс.

В opencode можно добавить команды, которые вызываются через /, и в этих командах можно прописать все, что вам нужно, и даже передать аргументы (ваши уточнения для конкретной ситуации).

Например, я часто делаю коммиты, и хочу чтобы они были оформлены в одном стиле - использую такую команду
---
description: Создать коммит на русском языке с кратким заголовком (до 50 символов) и описанием с буллетами.
---

1. Вызови `skill` tool с именем `commit` — это загрузит навык коммита.
2. Выполни инструкции из навыка: проверь `git status`, `git diff`, `git log --oneline -10`, добавь только нужные файлы и создай коммит с русским сообщением.
3. Если пользователь передал аргументы после `/commit`, учти их как контекст: $ARGUMENTS


Команда в свою очередь ссылается на навык commit, в котором подробное описание "коммитов моей мечты", которые меня целиком устраивают.

Пример использования команды:
/commit только без картинок и без крашлогов


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

Подобным образом я сделал команды:
- review-plan - проверяет план - файл, папку или просто текст в промпте по заранее заданному набору критериев
- check-against-review - проверяет замечания и выдает таблицу с вердиктом "справедливо" или нет, но ничего не меняет
- review-and-fix-fair-notes - то же самое, что предыдущее, но дополнительно сразу исправляет справедливые замечания, а по спорным показывает варианты решений и аргументирует за и против для каждого варианта
- markitdown - просто преобразует документ в markdown-файл
- update-my-tools - проверяет наличие обновлений для всех инструментов, которые у меня есть в opencode (codegraph, serena и т.д.) и выдает таблицу с вердиктом, что можно обновить, а что нет

В итоге рабочий процесс превращается из написания промптов в использование команд с конкретными задачами, и это очень удобно 👍
OpenCode Команды Создавайте собственные команды для повторяющихся задач.
  • 🔥 3
Post #374 304
#agent #figma #mcp

Полтора года назад я думал:
Хотелось бы подключить агента к фигме, чтобы был доступ хотя бы на чтение

И я использовал стандартный mcp фигмы, работа с которым прямо скажем мне не понравилась, еще и авторизация какая-то корявая там была.

Пару недель назад при работе над пет-проектом пришла уже другая идея:
Хорошо бы подключить агента к фигме, чтобы был доступ и на чтение, и на запись, чтобы верстал макеты, в конце концов!


В итоге нашел figma-mcp-express, который рекомендую всем, у кого есть потребность в подключении агента к фигме для чтения/изменения макетов.
Несмотря на то, что про этот mcp мало кто знает, он отлично работает - я сам им пользовался и даже анимации в фигме настраивал прямо из opencode 😱

Главный нюанс: чтобы агент подключился к фигме, нужно запустить плагин в декстопном приложении фигмы, и конкретно на этой странице агент сможет читать/менять макеты и делать все нужное.

В общем, отличный mcp, рекомендую 👍
  • 👍 2
  • 🔥 1
Post #373 323
#ios #xcode #mcp #agent

Долгое время использую xcodebuildmcp, и всего пару раз подключал дефолтный mcp от эпол.
Проблема в целом простая - при каждом запуске агента (например, при открытии сессии в opencode) в Xcode вылезает алерт с запросом разрешения подключения.

Все бы ничего, но эта проблема до сих пор не исправлена.

Однако с недавних пор в новом хкоде добавлена документация, которая полностью бесполезна, если только у вас не подключен какой-нибудь клод или кодекс прямо в хкоде.
Ну а поскольку я не использую ни клод, ни кодекс (и не планирую), то пришло время разобраться как завести эту штуковину с opencode, и у меня получилось!

Ссылка на официальную документацию (которая мне не помогла) - тут, а конфиг для opencode ниже:

"xcode": {
"type": "local",
"command": [
"xcrun",
"mcpbridge"
],
"enabled": true
}


Использую для проверок предупреждений/ошибок компиляции, ну и для поиска документации без обращения к интернету - удобно.

Если еще не пробовали - самое время.
  • ❤ 2
Post #372 340
#agent #mcp #hound

Вот уже неделю использую классный mcp для замены стандартного webfetch в opencode, ссылка на репо.

Чтобы агент не сваливался в дефолтный webfetch, добавил инструкцию (документация для opencode), работает стабильно.
У webfetch проблема только одна - он регулярно падает в ошибку, когда сайт распознает агента и не загружается, в результате поиск в интернете по умолчанию почти не работает.
hound mcp позволяет агенту успешно загружать данные с сайтов, что сильно повышает UX от работы с агентом 👍

Узнал про этот mcp случайно, когда читал реддит еще в июне, но попробовать решил только на прошлой неделе - зато теперь очень доволен 🔥
GitHub GitHub - dondai1234/master-fetch: MCP server for web fetching with Cloudflare bypass, Trafilatura extraction, and smart routing.… MCP server for web fetching with Cloudflare bypass, Trafilatura extraction, and smart routing. Free, self-hosted, no API keys. - dondai1234/master-fetch
  • ❤ 1
Post #371 366
#android

Заметил, что в моем приложении с площадками для тренировок в андроиде нерабочая ссылка на гитхаб, и решил поправить.

Это просто невероятный уровень комфорта - от запуска IDE (для исправления ссылки) до релиза прошло 8 минут без спешки, и все, приложение уже на смартфоне.

За 8 минут:
- обновил ссылку в коде
- собрал aab-файл для релиза в русторе (команда make release)
- собрал два apk-файла для релиза в гитхабе (команда make apk)
- на обеих площадках оформил релиз

Две команды (make release/make apk) нужны, т.к. апк делаю чаще, чем релизы в русторе

Да, модерация в русторе займет неопределенное количество времени (скатились уже, да), и не важно - главное что себе установить можно прямо сразу 🔥
GitHub GitHub - easydev991/Jetpack-WorkoutApp: Street Workout Площадки (пет-проект, Android) Street Workout Площадки (пет-проект, Android). Contribute to easydev991/Jetpack-WorkoutApp development by creating an account on GitHub.
  • 👍 2
  • ❤ 1
Post #370 326
  • 🔥 4
Post #360 501
#ios #swift #swiftui #state

Кто бы мог подумать, но это свершилось!
На WWDC показали фичу с бэкпортом для старых версий iOS!

https://developer.apple.com/documentation/swiftui/state

Шок-контент в хорошем смысле 👍

Если кратко, то Observable-классы (да, те самые, которые требуют iOS 17+) теперь по умолчанию станут lazy после сборки приложения в Xcode 27, и будут инициализироваться только один раз, а не на каждый init вьюхи - чудеса, да и только 👏

Я еще не видел проектов с минимальной версией iOS 17, но у кого-то же они есть, и кто-то точно будет в плюсе от этого нововведения 😌
  • ❤ 1
Older posts →

About this channel

How can I read @easy_dev991 without a Telegram account?
TGViewer shows the public web preview Telegram publishes for easy_dev991: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does easy_dev991 have?
easy_dev991 (@easy_dev991) has 617 subscribers on Telegram, refreshed roughly every 30 minutes.
Does easy_dev991 know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →