Перейти к содержимому

Кейс: 8 нативных macOS-приложений за вечер с ИИ — шаблон Ptacek

20 августа 2026 года Томас Птачек (Thomas Ptacek) — основатель Matasano Security, один из самых уважаемых специалистов по application security за последние 30 лет — опубликовал пост «Stop Making TUIs» на своём блоге. Не обзор инструмента, не анонс продукта, а демонстрацию принципа: за несколько вечеров он собрал восемь нативных macOS-приложений на SwiftUI, не написав ни строчки кода вручную. Каждое — рабочий инструмент для себя.

Сам Птачек формулирует это так:

I barely think about these things as “apps” (I have no intention to distribute them). They’re artifacts of me making my computer do stuff for me, the way I want it to.

Я почти не думаю о них как о «приложениях» (у меня нет намерения их распространять). Это просто артефакты того, как я заставляю компьютер делать то, что мне нужно, моим способом.

Thomas Ptacek, Stop Making TUIs

Это не хвастовство — это шаблон. Птачек выложил шаблон SwiftUI-директории, и весь его workflow сводится к трём шагам: скопировал шаблон → открыл Claude Code или Codex → написал промпт.

Workflow: шаблон → промпт → приложение
Workflow Птачека: три шага от шаблона до рабочего приложения

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

Восемь приложений: что и зачем

1. MDV — Markdown-ридер

MDV.app — «самый лучший Markdown-ридер в мире, пока кто-нибудь другой не напишет серьёзный Markdown-ридер». Нативное macOS-приложение для чтения .md-файлов. Птачек уже писал о нём в отдельном посте и называет его примером того, как агент справляется с UI-кодом, который «не является сложной задачей, но требует платформенных знаний, занимающих годы»:

This kind of code is tedious, repetitive, exacting, and gated by platform conceptual knowledge. It takes years to get good at this kind of work. Which is why I would never hand-write this program. Instead, I summoned it.

Такой код — рутинный, повторяющийся, требовательный и ограниченный знаниями платформы, на которые уходят годы. Поэтому я никогда не стал бы писать его руками. Я его призвал.

2. Калькулятор SageMath

Нативный фронтенд для SageMath — математической системы по умолчанию для криптографов. Птачек потратил год на курс Math Academy (Foundations I → Machine Learning, «я выучил матанализ»), и ему нужен был удобный интерфейс для работы с Sage. Три ключевые фичи: автоматическая отрисовка Sage-выхода в LaTeX, point-and-click доступ к методам Sage на векторах/матрицах/выражениях вместо ручного ввода trig_simplify, и «малый язык» сокращений ([1,2;3,4] — матрица). Приложение не распространяется: «если хочешь — сделай скриншот и скорми Claude, он соберёт что-нибудь полезное».

3. DJ Roomba — музыкальный проигрыватель с LLM

Нативный плеер для Apple Music с встроенным LLM-агентом. Агент имеет tool-вызовы для чтения библиотеки, последних воспроизведений и очереди треков. Запрос: «Иду в подвал делать картинную раму; дай мне плейлист без пропусков под настроение». LLM отвечает: «Много Kurt Vile и Tom Petty». Приложение использует встроенный Responses API от OpenAI, а бэкенд — SQLite с чистой схемой.

I don’t really know what to think about programs like this. It’s an AI-assisted music player that includes 90% of the interface of Music.app. Music.app. My ever-present personal computing nemesis.

Не знаю, что думать о таких программах. Это ИИ-плеер, включающий 90% интерфейса Music.app. Music.app. Мой вечный персональный computing-враг.

4. LLMwiki — самодвижущаяся wiki

Wiki, куда ты кидаешь исходный материал, задаёшь вопросы, а она сама пишет статьи. Под капотом — claude -p и виртуальная файловая система macOS (read-only view на SQLite как mounted filesystem в sandbox приложения). Птачек признаёт, что фс-расширение, вероятно, избыточно и усложняет установку — но называет такие yak-shaving-экспедиции «радостью разработки в до-LLM-эпохе, которая, к счастью, всё ещё доступна».

5. Трекер макронутриентов

Семиавтоматический трекер еды для тех, кто принимает тирзепатид (так называемый «глацпинг»). Ещё один агент поверх GPT-5, который берёт короткие описания еды («мелькнул глазами на тесто и крем-чиз, но торт не ел») и превращает их в оценку калорий.

6. Монитор температур

Меню-бар-приложение для датчиков TP-Link. Птачек не разбирал протоколы и HTTP API — агент сделал всю работу по интеграции с облачным API и напрямую с сенсорными модулями.

7. Универсальный пульт Apple TV

Меню-бар-приложение, которое заменяет пульт Apple TV, Roku TV и Denon-ресивер. Птачек отмечает, что пару лет назад он заплатил бы «очень хорошие деньги» за такое. Говорить напрямую с Apple TV — боль, но существующие Python-библиотеки для этого написаны, а агенту безразлично, на чём эти библиотеки написаны:

Whatever has been written in Python might as well have been implemented in Swift, C#, and Brainfuck as well. It’s all the same to a frontier model.

Всё, что написано на Python, могло бы быть реализовано на Swift, C# или Brainfuck. Для frontier-модели всё равно.

8. ? (восьмое приложение)

В посте детально разобраны семь приложений; восьмым Птачек подразумевает шаблон-проект (SwiftUI app template), который сам по себе является «приложением-нуль» — стартовая точка для каждого следующего.

Workflow: шаблон → промпт → приложение

Весь процесс Птачека укладывается в три шага:

Workflow: шаблон → промпт → приложение
Workflow по Томасу Птачеку: копируешь SwiftUI-шаблон, открываешь агент, формулируешь промпт. Сборка — через Makefile, без Xcode.

Шаг 1. Шаблон

github.com/tqbf/swiftui-app — SwiftUI-директория с Makefile-driven процессом сборки. Ключевое: Xcode не нужен. Сборка идёт через make, что позволяет агенту запускать и тестировать приложение из терминала.

My biggest quality-of-life win is never having to open Xcode.

Моя главная победа в качестве жизни — мне никогда не приходится открывать Xcode.

Шаг 2. Агент

Птачек использует Claude Code или Codex. Важная деталь — computer-use (или его аналог в Codex): агент может видеть и управлять приложением, что позволяет ему запускать приложение, делать скриншоты и чинить визуальные баги без участия человека.

Для повышения качества генерации Птачек подгружает навыки (skills):
macOS Design Skill — паттерны macOS-дизайна
SwiftUI Skill от Paul Hudson — SwiftUI-идиоматика
Airbnb Swift Language Skill — идиоматичный Swift-код
— Любой/Typography skill — типографика

Шаг 3. Промпт

Птачек не публикует промпты (кроме калькулятора SageMath: «сделай скриншот и скорми Claude»), но принцип понятен из контекста: описание того, что должно работать, без указания как. Агент выбирает архитектуру, SwiftUI-компоненты и паттерны.

Почему это работает именно сейчас

Птачек проводит параллель между TUI и нативным GUI, и его аргумент — не про «TUI плохо», а про то, что препятствия для GUI-генерации исчезли:

A couple years ago, these arguments would have been deeply silly. Not because TUIs were good but because native UI wasn’t a reasonable ask. As evidence for that, observe that we’ve spent the better part of a decade living with Electron apps.

Пару лет назад эти аргументы были бы абсурдными. Не потому что TUI были хороши, а потому что нативный UI был неразумной задачей. Доказательство — мы десятилетие жили с Electron-приложениями.

Четыре фактора, которые делают это возможным:

Фактор Почему важно
SwiftUI — декларативный фреймворк Агенту проще генерировать код, когда есть чёткие паттерны (структура → поведение → стиль). Apple сама продвигает SwiftUI как «правильный» путь.
Sameyness — фича, а не баг В вебе стандартный вид — минус. В нативе стандартный вид — это то, чего пользователи ожидают. Агент, следующий SwiftUI-паттернам, автоматически делает «правильный» дизайн.
Makefile вместо Xcode Агент может собирать и запускать приложение из терминала. Без этого цикл «написал → проверил → исправил» невозможен без участия человека.
Computer-use Агент видит результат своей работы. Вместо «напиши код и надейся» — «запусти, посмотри, поправь».

Честные ограничения

Качество дизайна — «step ahead of replacement-level»

Птачек честно признаёт:

As a longtime patron of the App Store, I’ll claim these designs are all a step ahead of replacement-level. Five years ago, if I’d had a macOS UI person on my team, I’d have been over the moon to get output of this quality.

Как давний покупатель App Store, утверждаю: все эти дизайн шаг впереди replacement-level. Пять лет назад, если бы у меня был macOS UI-человек в команде, я бы обрадовался выходу такого качества.

Это не «/Egor Zacharovski/-уровень дизайн». Это «работает и не отталкивает». Для личных инструментов — достаточно. Для публичного продукта — потребуется ручная доводка.

Нет дистрибуции

Приложения не предназначены для App Store или распространения. Код не оптимизирован под sidebar, auto-update или кросс-платформенность. Это инструменты «для себя».

Платформенность

Птачек работает только с macOS. SwiftUI — экосистема Apple. Заявления про GTK 4 (Linux) и WinUI 3 (Windows) он делает с оговоркой «I assume», а не «я проверил». Кросс-платформенность через TUI в этом смысле остаётся аргументом — просто уже не для большинства use-case.

Агент не заменяет понимание

Все восемь приложений — это решения конкретных задач Птачека: математика для его курса, трекер еды для его диеты, пульт для его телевизора. Агент генерирует код, но понимание того, что нужно, — за человеком. Это принципиальное отличие от «сгенерируй мне SaaS-стартап».

Российские реалии

Claude Code и Codex в РФ

  • Claude Code — Anthropic не блокирует доступ из России по IP. Оплата: российские Visa/Mastercard не работают. Варианты: зарубежная карта (USDT→Visa через посредников), оплата через Anthropic API-ключ (тот же набор способов). Подписка Claude Pro/Max ($100–200/мес) доступна через gift cards или посредников. Рабочие схемы обсуждаются на vc.ru и Habr — конкретные инструкции меняются каждые 1-2 месяца.
  • Codex (OpenAI) — доступен через API. Оплата: аналогичная ситуация. Важно: OpenAI блокирует новые аккаунты из РФ чаще, чем Anthropic.

SwiftUI-шаблон

SwiftUI-шаблон Птачека (github.com/tqbf/swiftui-app) доступен бесплатно. Для его использования нужен Mac с Xcode (для установки Swift-инструментов; сама сборка через Makefile). Mini-Маки (M1/M2/M3/M4) — от 70 000 ₽ б/у на Avito, нового «программистского» Mac Mini с M4 хватает за 100 000–120 000 ₽.

Русскоязычный контекст

Тема «нативные macOS-приложения на SwiftUI + ИИ» практически не освещена в рунете. На Habr — единичные обзоры Claude Code для веб- и backend-задач, нативная мобильная разработка с ИИ упоминается мельком. Основной рунет-контекст: vc.ru — вайбкодинг, Habr — AI для разработки. Нативная разработка под macOS — ниша, и в ней ИИ даёт самый ощутимый выигыш именно потому, что раньше её избегали из-за сложности SwiftUI-платформы.

Вывод

Птачек — не маркетолог и не продавец инструментов. Он человек, который 30 лет пишет security-консалтинг и вдруг обнаружил, что может делать GUI-приложения за вечер. Его тезис:

Agents have dissolved most of those boundaries. You can reasonably default to building native user interfaces for things, and those interfaces will be kind of good.

Агенты размыли большинство этих границ. Вы можете по умолчанию делать нативные пользовательские интерфейсы — и они будут довольно неплохими.

Это не значит «бросай всё и делай macOS-приложения». Это значит: если у тебя есть задача, которую ты раньше решал через CLI или терминал, и ты думал, что GUI — это «для нормальных программистов» — шаблон Птачека показывает, что это больше не так. Скопировал, открыл агент, написал промпт. Восемь приложений за вечер — не метафора.

TUI vs Native GUI: почему Ptacek выбрал SwiftUI
Почему TUI мёртв: native GUI теперь так же доступен для генерации
8 приложений Птачека: обзор
Все 8 приложений: от Markdown-ридера до пульта Apple TV

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка / 5. Количество оценок:

Оценок пока нет. Поставьте оценку первым.

Добавить комментарий

Adblock
detector