pmval.ru

Как я потратил почти миллион за один вечер...

Разбор одного вечера: приложение для личных финансов на Claude Code, 964 000 токенов, дашборд с симулятором «что если» и барьер Gatekeeper в macOS

Как я потратил почти миллион за один вечер...
Как я потратил почти миллион за один вечер...

Нет, речь не про рубли, доллары или евро, речь — про токены

Открываешь таблицу, чтобы внести пару новых цифр, — и понимаешь, что сейчас будешь вручную пересчитывать полтаблицы формул, боясь стереть что-то важное. Знакомо, наверное, каждому, кто хоть раз вёл личный бюджет. Причём таблица такая у меня была даже не одна: каждая жила своей жизнью, а свести их вместе в голове было отдельным упражнением по математике (а математика вообще не моя область, чтобы вы понимали). В какой-то момент, в очередной раз поправляя съехавшую невесть куда формулу, я задал себе простой вопрос: а почему, собственно, у меня нет нормального приложения для этого? Не заметок в айфоне, не гугл-таблиц с цветными ячейками, а настоящей программы, которая сама всё считает, показывает графики и не ломается от одного лишнего клика

Приложение у меня появилось тем же вечером

Зачем вообще делать приложение самому?

Готовых решений на рынке хватает: трекеры бюджета, ипотечные калькуляторы, шаблоны таблиц и прочее. Проблема в другом: ни одно из них не знает мою жизнь так, как знаю её я. Цели по деньгам у меня были разные, а видеть показатели хотелось в одном месте, без прыжков между тремя вкладками трёх разных сервисов. Мне мало было просто вносить цифры. Хотелось спрашивать: «а что если я сегодня закину дополнительные деньги в накопления или потрачу определённую сумму на давно запланированную покупку?» — и получать честный расчёт, а не догадку

Тут и родилась внутренняя формула, которой я, сам того не зная, следовал весь проект:

Реальная задача×Контроль данныхЧужие компромиссы\frac{\text{Реальная задача} \times \text{Контроль данных}}{\text{Чужие компромиссы}}

Считать чужими формулами свои деньги — так себе идея. А передавать личные финансовые данные в очередной облачный сервис — идея ещё хуже. Раз данные мои и жизнь моя, то и инструмент должен быть под меня, а не наоборот. Насколько это было сложно? Честно, не сказал бы, что сложно, но оговорюсь: бэкграунд и понимание того, как вообще устроена разработка, решают многое (у меня это уже есть). Разбив задачу на этапы, я прошёл её за один вечер, не растягивая на месяцы

Секрет оказался скучным: идти мелкими шагами, без попытки сделать всё за один заход, и принимать шаг только тогда, когда он реально работает. Не «вроде работает» — а действительно работает

ЭтапЧто происходило в Claude Code
0. ПланПроговорили, что вообще должно получиться и на что закладываться не будем
1. ФундаментПустой каркас приложения, который просто открывается и создаёт свою базу данных
2. Экраны обязательствГрафик платежей, пересчёт при досрочных шагах; несколько кредитов и ипотек ведутся параллельно и не смешиваются между собой в расчётах
3. БюджетДоходы/расходы, категории, регулярные платежи
4. ДолгиКто кому и сколько должен — отдельным модулем
5. КалендарьВсе платежи и траты — на одной сетке по дням
6. Перенос данныхИмпорт данных
7. Графики (мое любимое!)Дашборд с 15 виджетами и симулятором «что если» [?факт: 15 виджетов — сверить с итоговой версией приложения]
8. УпаковкаИконка, тёмная/светлая тема, готовый установочный файл
Приложение AppFinance
Приложение AppFinance

Приложение AppFinance разработано с помощью Claude Code — инструмента разработки на основе ИИ, который работает в терминале. Дашборд с агрегацией всех данных и другие экраны, созданные в процессе разработки (листайте карусель вправо)

А по-настоящему интересным испытанием стал не код, а реальный мир: собранное приложение должно было запуститься на другом макбуке. Не запустилось — вместо этого выскочила грозная надпись «приложение повреждено, переместите в корзину»

Скриншот ошибки
Скриншот ошибки

Никакой порчи файла на самом деле не было. Браузер вешает на скачанный файл служебную метку карантина, а встроенный проверяющий macOS (Gatekeeper) при первом запуске требует у приложения подпись разработчика и отметку Apple о том, что программу просканировали на вредоносный код. Ни того ни другого у моей сборки не было, вот система и объявила приложение повреждённым, хотя с файлом всё в порядке. Снимает этот барьер членство в Apple Developer Program: 99 долларов в год. Разобравшись, в чём дело, я убрал препятствие одной командой в терминале. Тоже часть работы, о которой обычно не думаешь, пока не столкнёшься с ней лицом к лицу

Что в этом деле дают инструменты на основе ИИ?

Вот тут вся тайна. Я не писал код построчно, неделями сверяясь с документацией и форумами. Я объяснял, что хочу получить, а нейросеть переводила это в работающий код и тесты. И в честные комментарии о том, где решение пришлось скорректировать по ходу дела

Что это дало на практике:

  • Скорость без халтуры. Расчётный движок покрыт десятками автоматических тестов. В одиночку, без опыта в языке программирования, я вряд ли успел бы написать их все, тем более за один вечер
  • Честность вместо красивой картинки. Когда что-то в исходных данных было неоднозначным, инструмент не подгонял цифры под гладкий результат, а прямо говорил: здесь неточность, вот варианты, решай сам
  • Порог входа исчез, а не снизился. Раньше «напишу себе приложение» звучало как шутка для человека без профильного образования. Теперь это буквально то, чем можно заняться вечером, если понимаешь, чего хочешь
  • Ответственность осталась на мне. ИИ не заменяет решения: какие модули нужны и чем можно пожертвовать — решал я. Исполнитель очень способный. Но не автор идеи

Что я почувствовал, когда всё заработало?

То, что не купишь ни в одном магазине. Есть разница между «я нашёл хорошее приложение» и «я построил инструмент, которым буду пользоваться каждый день, и знаю в нём каждый винтик». Второе ощущается совсем иначе. Ты не подстраивался под чужую вещь, ты сделал свою

Отдельное удовольствие — смотреть, как из хаоса разрозненных таблиц и листов складывается одна понятная картина: какой реальный доход, какой реальный расход. И куда эффективнее направить свободные деньги. Догадки кончились, остались цифры

Скриншот иконки
Скриншот иконки

Полтаблицы формул стали приложением. Не потому что я вдруг выучился на программиста, а потому что задачу теперь достаточно объяснить словами — и получить рабочий результат

Дальше