Створити iOS-застосунок з ШІ: пастки та перевірки
Автор: Mehdi Azizi
Оновлено , 9 хв
Claude, ChatGPT і Cursor швидко пишуть код iOS. Підпис, підписки, перевірка Apple, справжній iPhone: що вони пропускають і як усе перевірити.
Створити iOS-застосунок з ШІ: коротка відповідь
Так, ти можеш створити iOS-застосунок з ШІ, навіть якщо тільки починаєш. У такого способу роботи є назва: vibe coding. Claude, ChatGPT чи Cursor чудово пишуть екрани, навігацію, просту логіку та запити до бази даних. Погано в них виходить усе, що відбувається поза кодом: підпис застосунку, налаштування App Store Connect, підписки, перевірка Apple і збої, які з'являються лише на справжньому iPhone.
Інакше кажучи, ШІ заощаджує тобі тижні на найпомітнішій частині роботи і залишає тебе самого з тією частиною, яка вирішує, чи вийде твій застосунок узагалі. Цей гайд показує, де проходить межа, як скеровувати ШІ, щоб він залишався корисним, і як перевіряти те, що він робить, поки цього не зробили за тебе Apple чи твої користувачі.
Я щодня пишу власні iOS-застосунки з Claude і Cursor. Solys, будильник з міні-іграми, і TradaZen, симулятор трейдингу, є в App Store. Nolera і Clic Apple відхилила, потім я їх виправив. Усе, що далі, взято з цієї роботи, а не з демо. Якщо ти ще вагаєшся з інструментом, я порівнюю Claude Code, Cursor і ChatGPT для застосунку iPhone в окремому гайді.
Що ШІ справді робить добре
Екрани та навігація
Опиши екран точно (що він показує, що робить кожна кнопка, що відбувається, коли список порожній), і ШІ за кілька секунд видасть охайний компонент. Саме тут виграш найвражаючий, особливо з React Native і Expo, бо ШІ бачив величезну кількість такого коду. До речі, це стек, який я використовую в усіх своїх застосунках, і чому, я пояснюю на сторінці React Native і Expo для мобільного застосунку.
Проста бізнес-логіка
Порахувати бал, відсортувати список, відформатувати дату, перевірити форму: ШІ робить це швидко і загалом добре, якщо даси йому граничні випадки. Порожній список, задовге поле, дата в іншому часовому поясі. Якщо ти їх не назвеш, він не завжди їх оброблятиме.
Пояснити те, чого ти не розумієш
Це найбільш недооцінене застосування. Встав повідомлення про помилку, шматок конфігурації чи відмову Apple і попроси: «поясни, що це означає, нічого не виправляй». Так ти вчишся швидше, ніж із туторіалу, бо пояснення стосується твого власного проєкту.
Підключення бекенду
Створити таблиці в Supabase, написати функцію, яка читає дані залогіненого користувача, обробити стан завантаження: ШІ добре знає ці інструменти. Тільки стеж за безпекою, про це нижче.
Що ШІ пропускає, коли ти створюєш iOS-застосунок
Це частина, яку ніхто не показує у відео «я зробив застосунок за вихідні». Кожен із цих пунктів може заблокувати публікацію на кілька днів, не рахуючи автоматичних перевірок під час відправлення, як-от ITMS-90338 для непублічних API.
Підпис і сертифікати
Щоб працювати на iPhone і потрапити в App Store, твій застосунок має бути підписаний сертифікатом і профілем забезпечення (provisioning profile), прив'язаними до твого акаунта Apple Developer. ШІ може пояснити принцип, але без дозволеного доступу він не знає твого акаунта. Часом він вигадує кроки, яких уже не існує, або змішує спосіб Xcode зі способом Expo, і це може закінчитися ITMS-90034 під час відправлення. З EAS Build саме інструмент генерує і зберігає ці файли за тебе, разом із push-ключем: дай йому це зробити, а не йди за вгаданою інструкцією.
Налаштування App Store Connect
Сторінка застосунку, ідентифікатор бандла, декларації конфіденційності, питання про шифрування, скриншоти, посилання на умови використання: ця інформація має відповідати відправленій версії. Деякі агенти вміють діяти в залогіненому браузері, як-от Claude Code з Chrome. Такий доступ треба дозволити, а результат перевірити; інструкція, переказана без читання актуального інтерфейсу, може бути застарілою.
Підписки
Тут ШІ змушує тебе витратити найбільше часу. Код пейвола простий. Складно інше: узгодженість між трьома місцями. Це продукти, створені в App Store Connect, їхнє налаштування в RevenueCat і код, який їх показує. Ідентифікатор, що відрізняється на один символ, продукт, ще не відправлений на перевірку разом із версією, і твій пейвол у ревʼюера порожній. ШІ може читати ці консолі, якщо даси йому відповідний доступ; без нього він не може перевірити їхню узгодженість із кодом. Уся робота детально описана на сторінці in-app підписки iOS.
Перевірка Apple
ШІ знає основні положення App Review Guidelines, але не вміє дивитися на твій застосунок очима ревʼюера. Він сам не скаже, що обов'язковий екран обрізаний на маленькому iPhone, що запит оцінки з'являється зарано, що в нотатках для перевірки бракує демо-акаунта або що твій застосунок надто схожий на сайт для guideline 4.2. Перші дві відмови я реально отримав на Solys, про них розповідаю в статті чому Apple відхиляє застосунок.
Збої на справжньому iPhone
Симулятор і застосунок для розробки прощають багато. Справжній iPhone у продакшні ні. Нативний модуль, якого немає в білді, дозвіл без пояснювального тексту, читання даних зарано під час запуску: застосунок відкривається і одразу закривається, без жодного повідомлення. Агент може запускати тести чи аналізувати скриншоти, але лише якщо це дозволяє твоя система перевірки. Результат у симуляторі сам по собі не підтверджує бінарник, встановлений на твоєму iPhone. Встановити застосунок на телефон перед кожним відправленням маєш ти, і TestFlight створений саме для цього.
ШІ пише код, який виглядає правильним. Тільки тест на твоєму iPhone скаже, чи він справді правильний.
Як скеровувати ШІ, щоб він залишався корисним
Проблема майже ніколи не в розумі моделі. Вона в тому, що ти даєш їй прочитати.
Дай йому свій контекст раз і назавжди
Напиши в корені проєкту короткий файл, який описує твій стек (Expo, версію SDK, Supabase, RevenueCat), структуру папок і твої правила. Claude Code читає файл CLAUDE.md, у Cursor свої файли правил. Без цього контексту ШІ вгадує, і часто вгадує зовсім інший стек. Мій туторіал зі створення застосунку з Claude Code дає повний приклад такого файлу.
Розбивай на маленькі завдання
«Зроби мені трекер звичок з підпискою» дає величезний і крихкий проєкт. «Створи екран зі списком звичок на сьогодні, зі станом порожнього списку і станом завантаження» дає екран, який ти можеш перечитати й протестувати за п'ять хвилин. Одне завдання, один результат, який можна перевірити, потім наступне.
Проси план до коду
Для всього, що зачіпає кілька файлів, починай із «запропонуй план, поки не пиши код». Ти перечитуєш план, виправляєш, що не так, і запускаєш. Так ти уникаєш несподіваних переробок, коли ШІ переписує пів проєкту, щоб додати кнопку.
Давай йому актуальну документацію
Інструменти швидко змінюються: Expo, RevenueCat і App Store Connect регулярно оновлюються. Коли відповідь здається сумнівною, встав у розмову сторінку офіційної документації або використовуй інструмент, який її надає. ШІ, що читає сьогоднішню документацію, помиляється набагато рідше, ніж ШІ, що пам'ятає ту, що була два роки тому.
Тримай рішення в своїх руках
ШІ пропонує, ти вирішуєш. Вибір ідеї, ціни, того, чого застосунок не робитиме: це твоя робота. Якщо дозволиш ШІ додавати кожну функцію, яку він пропонує, отримаєш застосунок, що робить десять речей посередньо замість однієї дуже добре. Щоб окреслити першу версію, прочитай сторінку MVP iOS-застосунку.
Як перевіряти те, що робить ШІ
Саме ця навичка відрізняє тих, хто публікує, від тих, хто накопичує напівготові проєкти.
Перечитуй кожну зміну
Тобі не треба розуміти все рядок за рядком. Але ти маєш відповісти на три питання: які файли змінилися, чому, і чи відповідає це тому, що я просив. Якщо ШІ зачепив файл, не пов'язаний із твоїм запитом, спитай чому, перш ніж приймати.
Тестуй на iPhone, а не тільки на комп'ютері
Встанови застосунок на свій телефон якомога раніше, а потім на кожному важливому етапі. Перевір перший запуск після встановлення, режим польоту, маленький і великий екран, відкриту клавіатуру у формах. Це правило я застосовую перед кожним відправленням в Apple, у кожному своєму застосунку.
Додай інструменти, які бачать те, чого не бачиш ти
У моїх застосунках Sentry повідомляє про збої з рядком коду, що їх спричинив, а PostHog показує, де користувачі кидають застосунок. Без них баг у продакшні залишається невидимим, доки не прилетить погана оцінка. ШІ може допомогти їх встановити; а от дивитися, що вони кажуть, маєш ти.
Стеж за безпекою даних
Коли ШІ створює таблиці в Supabase, перевір, що правила доступу (політики RLS) справді активні: кожен користувач має читати лише свої дані. Перевір також, що жоден секретний ключ не потрапив у код застосунку, який можна декомпілювати. Це дві помилки, які ШІ легко робить, якщо ти їх йому не заборониш.
Постав йому зворотне питання
Коли код написаний, спитай: «що тут може зламатися?» або «перечитай цей код як ревʼюер Apple». Та сама модель, що написала код, часто знаходить власні недогляди, коли ти змінюєш кут питання. Це не замінює тест на iPhone, але скорочує кількість ітерацій.
Реалістичний шлях для початківця
- Вибери крихітну ідею: одна головна функція, а не десять.
- Встанови стек, який ШІ добре знає: Expo, React Native, Supabase, якщо потрібні акаунти.
- Будуй екран за екраном, одне маленьке завдання на запит і тест на кожному кроці.
- Тестуй на iPhone з білдом для розробки, потім із TestFlight.
- Підключи гроші: продукти в App Store Connect, RevenueCat, пейвол.
- Підготуй усе для App Store: сторінку, скриншоти, конфіденційність, нотатки для ревʼюера.
- Відправ в Apple, уважно прочитай відповідь, виправ те, що просять.
На кожному кроці свої пастки, і ШІ допомагає з половиною з них. Загальну картину дає сторінка створити застосунок для iPhone, там описано весь шлях. А якщо тобі цікаво, як далеко можна зайти, не написавши самому жодного рядка коду, прочитай створити застосунок без коду.
Створити свій iOS-застосунок з ШІ, аж до App Store
ШІ змінив те, хто може створити iOS-застосунок. Він не змінив того, що Apple вимагає для публікації, і того, що потрібно, щоб застосунок отримав перші підписки. Саме цю частину я поклав в iOS Kit: стартовий код моїх застосунків, разом із підписками, і skills Claude Code для кожного кроку. Шлях розписаний залежно від твого інструмента: курс Claude Code або курс vibe coding. Головна сторінка показує, як створити мобільний застосунок таким способом, крок за кроком.
Не знаєш, що тебе блокує: код, ШІ чи Apple? Безкоштовна діагностика це покаже і надішле тобі мій чекліст проти відмов Apple.
Я не обіцяю ні доходу, ні публікації: схвалення вирішує Apple, а решту вирішує ринок. Що я тобі даю, так це метод, який сам застосовую у своїх застосунках.
Поширені запитання
Чи можна створити iOS-застосунок з ШІ, якщо ти початківець?
Так. ШІ чудово пише екрани, навігацію, просту логіку та запити до бази даних. Погано йому вдається все, що відбувається поза кодом. Це підпис, App Store Connect, підписки, перевірка Apple і збої, які видно лише на справжньому iPhone.
Який ШІ використати для створення iOS-застосунку?
Claude, ChatGPT чи Cursor чудово пишуть екрани, навігацію і просту логіку. Проблема майже ніколи не в розумі моделі, а в тому, що ти даєш їй прочитати. Дай їй свій стек, свої правила й актуальну документацію. Я порівнюю Claude Code, Cursor і ChatGPT для застосунку iPhone в окремому гайді.
Чи може ChatGPT створити застосунок?
Так, для видимої частини: ChatGPT, як і Claude чи Cursor, чудово пише екрани, навігацію, просту логіку та запити до бази даних. Але без дозволеного доступу він не знає твого акаунта Apple і не дивиться на застосунок очима ревʼюера. Тільки тест на твоєму iPhone скаже, чи код правильний.
Як створити власний застосунок з ШІ крок за кроком?
Вибери крихітну ідею з однією головною функцією. Встанови стек, який ШІ добре знає: Expo, React Native і Supabase, якщо потрібні акаунти. Будуй екран за екраном, одне маленьке завдання на запит і тест на кожному кроці. Тестуй на iPhone з білдом для розробки, потім у TestFlight, перш ніж підключати гроші, готувати все для App Store і відправляти в Apple.
Як контролювати код, написаний ШІ?
Перечитуй кожну зміну: які файли змінилися, чому і чи відповідає це твоєму запиту. Встанови застосунок на свій iPhone якомога раніше, а потім на кожному важливому етапі. Перевір, що правила доступу Supabase, політики RLS, активні. Перевір також, що жоден секретний ключ не потрапив у код застосунку, який можна декомпілювати.
Чому пейвол, написаний ШІ, порожній у ревʼюера?
Код пейвола простий. Найскладніше це узгодженість між трьома місцями: продуктами App Store Connect, їхнім налаштуванням у RevenueCat і кодом, який їх показує. Ідентифікатор, що відрізняється на один символ, або продукт, ще не відправлений на перевірку, і пейвол порожній. Без відповідного доступу до цих консолей ШІ не може перевірити цю узгодженість.