Привет!
Если честно я уже давно хотел написать себе какое-нибудь приложение для смартфона. Какое-нибудь узкоспециализированное и полезное.
В до-ИИшную эпоху меня останавливало то что для этого нужно было затратить очень много времени. Hello world за 5 минут на телефоне запустить было сложновато 😁
А еще была вторая причина - отсутствие идеи для приложения.
Проблема
А сегодня появилась подходящая проблема - переполнился iCloud!
В фотогалерее айфона есть большое количество видео которые с одной стороны хотелось бы сохранить, а с другой весят они прилично т.к. снимались в разрешении 4K.
При этом некоторые видео сняты с плохим освещением, «на ходу» и т.д. То есть там разрешение в 4K избыточно.
Логичный вариант это перекодировать видео в 1080P. Но это тянет за собой кучу действий:
- Найти видео в фотогалерее, отправить на комп по Airdrop и удалить его в фотогалерее
- Пережать видео на компе, отправить сжатую версию по Airdrop
Также необходимо озаботиться тем чтобы у видео сохранилась исходная дата съемки. Иначе в хронология в фотогалерее поломается и оно будет отображаться как недавнее.
А еще приложение “Фото” в iOS не умеет сортировать видео по размеру файла и большие видосики можно найти только через “iCloud” -> “Рекомендации для Вас”.
Короче все очень удобно сделано 😁
Если для одного-двух файлов это еще приемлемо, то для чего-то большего эта рутина утомляет.
Идея для приложения
Поэтому мне в голову пришла идея о создании приложения которое будет отображать видео из галереи отсортированные по размеру и в один клик пережимать их в 1080P, а оригиналы удалять. Естественно дата у видео должна сохраняться.
Как оказалось в AppStore уже существует приложение с ровно таким функционалом - Video Compressor - Kompresso.
Приложение красивое и удобное, но в нем есть два нюанса:
- Оно платное
- Имеет фатальный недостаток - оно написано не мной 😁
В общем я попробовал это приложение. Бесплатно в нем доступно сжатие 3 видеофайлов. Гипотеза подтвердилась - штука полезна и удобная. Пора вайбкодить свою такую 😁
Подготовка
Для разработки iOS приложения нам обязательно нужен макбук и установленный Xcode.
Также желателен аккаунт в Apple Developer Program. Без него мы сможем подписывать свое приложение только сертификатом на 7 дней.
А это значит что каждые 7 дней нам нужно будет переподписывать билд и заливать его заново через кабель.
На первый раз нам сгодится и такое 🙂
В общем я установил на маке Xcode из AppStore и перешел к следующему шагу.
Вайбкодинг

Дальше я просто открыл Claude Code и написал короткий промт с описанием функционала приложения. Все уместилось в один абзац.
Клод 10 минут попыхтел и радостно выдал что приложение мол готово, погнали тестить. Код он написал на Swift.
Ну что же, раз готово то идем тестить 🙂
Я подключил телефон через кабель к маку и стал пока Xcode подхватит подключение.
Вкратце скажу что “само” все не заработало. Пришлось еще кидаться скриншотами в Claude Code ожидая новых инструкций.

На телефоне дополнительно был включен Developer Mode.
Потом еще Клод предупредил меня что последняя версия Xcode под macOS Sonoma не даст закачать приложение на айфон с iOS 26.
Тут было два варианта - обновить макось либо установить приложение Sideloadly и залить аппку через него. Я выбрал второй вариант.
Клод мне любезно собрал ipa файл аж на 152 кб и дал инструкции по тому как все это залить через Sideloadly UI.

Также на телефоне еще пришлось сходить в настройки и разрешить запуск приложения от недоверенного разработчика (то есть от меня 😁).
Настройки спрятались в интуитивно понятном разделе "VPN и управление устройством". Удобно!
В итоге после всех этих танцев с бубном приложение запустилось!
Вайбкодинг приложения занял 10 минут, а установка на айфон - 20!
Тест приложения
Установленное приложение на телефоне занимает меньше мегабайта. У него нет даже собственной иконки!

Запускаем



Затем я еще дополнительно сходил в “удаленные”. Взял оттуда даты и по датам нашел новые пережатые видео. У них все в порядке с датами и прочими атрибутами. Одно видео даже у меня было в избранном и теперь в избранном пережатая копия.
Выводы
До этого момента у меня был только положительный опыт с PWA.
Просто добавляем немного дополнительного кода и веб-приложение можно “установить” на телефон. Поддерживается iOS и Android. Есть поддержка нотификаций. Какой-то тяжелый функционал можно упаковать в WASM. Для огромного количества юзкейсов это идеальный вариант.
Но в текущей задаче нужен был нативный доступ к “Фото” и поэтому я генерил именно нативное приложение.
Оказалось что с текущим уровнем ИИ моделей и такие вот небольшие мобильные аппки собираются довольно комфортно и быстро.
