easy_dev991


Channel's geo and language: Russia, Russian
Category: Technologies


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

Related channels  |  Similar channels

Channel's geo and language
Russia, Russian
Statistics
Posts filter






#android #test #agent

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

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

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

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

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

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

—————

На всякий случай напоминаю: когда доверяете работу агенту, предпочтительно делать все задачи в формате TDD (сначала падающие тесты, потом реализация и успешные тесты, потом рефактор).
Даже однострочные правки следует проверять, если задета логика.


#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, потому что там из коробки дофига инструментов, которые мне не нужны, но вообще там интересно.


#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 и т.д.) и выдает таблицу с вердиктом, что можно обновить, а что нет

В итоге рабочий процесс превращается из написания промптов в использование команд с конкретными задачами, и это очень удобно 👍


#agent #figma #mcp

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

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

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


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

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

В общем, отличный mcp, рекомендую 👍


#ios #xcode #mcp #agent

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

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

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

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

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

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

Если еще не пробовали - самое время.


#agent #mcp #hound

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

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

Узнал про этот mcp случайно, когда читал реддит еще в июне, но попробовать решил только на прошлой неделе - зато теперь очень доволен 🔥


#android

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

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

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

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

Да, модерация в русторе займет неопределенное количество времени (скатились уже, да), и не важно - главное что себе установить можно прямо сразу 🔥


Какой ответ верный для языка Swift?
Poll
  •   0,6785714285714286
  •  
  •   будет ошибка компиляции
62 votes








#opencode #ponytail #agent

Краткий обзор ponytail








#ios #swift #swiftui #state

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

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

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

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

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




#hint #markdown

Классный инструмент для чтения md-файлов, рекомендую попробовать, если регулярно работаете с markdown 👍

1) так xcode открывает md-файлы по умолчанию
2) так md-файлы открываются в программе, которую скинул выше
3) работает даже на быстрый просмотр (выделить файл и нажать пробел в macos)

20 last posts shown.