Введение
Привет! Мы — команда мобильных разработчиков, и в июле 2026 года перед нами встала задача: за 4 недели сделать MVP финансового приложения для iOS. Сроки горели, а функционал требовал серьёзной работы: экраны на SwiftUI, сложный UIKit-модуль для аналитики, хранение данных на Core Data и реактивные обновления через Combine.
Мы решили попробовать нестандартный подход — активно использовать AI-промты для генерации и ревью кода. В этой статье делимся шпаргалкой из 20+ конкретных промтов, которые реально сэкономили нам десятки часов. Все примеры — из нашего боевого проекта, а промты можно копировать и адаптировать под свои задачи.
Проблема: слишком много кода за слишком мало времени
Исходные данные: приложение должно было включать:
- Экран входа и регистрации на SwiftUI с валидацией полей.
- Дашборд с графиками на UIKit (мы не стали переписывать legacy-модуль).
- Бюджет с категориями расходов, который хранится в Core Data.
- Автоматическое обновление интерфейса при добавлении новой транзакции через Combine.
Писать всё это вручную — как минимум 2000 строк кода. Плюс нужно было следить за архитектурой (MVVM), учитывать лучшие практики iOS 17 и 18. Мы поняли, что без «умных» подсказок не обойтись.
Решение: подборка проверенных промтов для iOS
Мы сгруппировали промты по ключевым областям. Каждый промт — это точная инструкция для нейросети (ChatGPT или аналоги). Важно: промты нужно давать в диалоге, где вы уже задали контекст (например, «Ты — senior iOS-разработчик»). Ниже — то, что реально работало.
Промты для SwiftUI
Задача: быстро создать экран входа с валидацией.
Проблема: нам нужен был чистый код с @FocusState и @StateObject, чтобы не переделывать позже.
Промт:
Ты — senior SwiftUI разработчик. Сгенерируй код экрана входа для iOS-приложения.
Требования:
- Поля: email (с клавиатурой email), пароль (SecureField).
- Валидация: email по регулярному выражению, пароль минимум 8 символов.
- Используй @FocusState для переключения полей и @StateObject для модели.
- Кнопка «Войти» disabled, пока валидация не пройдена.
- Код должен быть готов к встраиванию в MVVM.
- Добавь комментарии на русском.
Результат: получили аккуратный код на 120 строк без ошибок. Промт сработал с первого раза. Мы даже использовали его в двух других экранах (регистрация и восстановление пароля), адаптировав под свои нужды.
Второй промт для SwiftUI — навигация и списки:
Создай SwiftUI-структуру для списка транзакций с NavigationStack.
- Используй модель Transaction (id, amount, date, categoryName).
- Каждая ячейка — NavigationLink, который открывает детальный экран.
- Передавай данные через value-based navigation.
- Добавь toolbar с кнопкой «+» для новой транзакции.
- SwiftUI 5 (iOS 17+).
Этот промт помог нам быстро организовать переход между экранами без лишних обёрток.
Промты для UIKit
Задача: построить аналитический дашборд с коллекцией графиков.
Промт:
Ты — iOS developer. Напиши UIKit код для экрана дашборда.
- Используй UICollectionView с CompositionalLayout: секция сетки 2×2 и секция с горизонтальным скроллом.
- Ячейки: контейнер с заголовком и графиком (заглушка UIView).
- Данные приходят из массива.
- Обеспечь поддержку Dark Mode, используй system colors.
- Код должен быть в стиле MVVM.
Результат: сгенерированный код создал необходимую структуру, но в ячейках были лишние элементы. После уточнения «кратко и только ячейки с заголовком» получили то, что нужно. В сумме это сэкономило около 3 часов.
Ещё один полезный промт для UIKit — рефакторинг:
Покажи, как переписать этот метод на Swift (прикрепи код) с использованием делегата UITableViewDiffableDataSource. Добавь обработку пустого состояния.
Такие промты удобно использовать в диалоге: вы кидаете фрагмент кода и получаете улучшенную версию.
Промты для Core Data
Задача: спроектировать модель данных для бюджета и написать запросы.
Промт:
Ты — специалист по Core Data. Спроектируй модель для приложения «Бюджет».
Требования:
- Сущности: Transaction, Category.
- Transaction: amount (Decimal), date (Date), note (String?)
- Category: name (String), icon (String?)
- Связь: категория имеет много транзакций (cascade delete).
- Дай код для создания модели и контейнера NSPersistentContainer.
- Укажи, как включить миграции.
Результат: получили готовую модель и код персистентного контейнера. Никаких ошибок при запуске. Единственное, что мы добавили — атрибут типа UUID для синхронизации.
Второй промт для Core Data — запросы с NSFetchedResultsController:
Напиши код на Swift для получения транзакций за текущий месяц, отсортированных по дате.
- Используй NSFetchedResultsController.
- Обрабатывай изменения через делегат.
- Обновляй UITableView или UICollectionView.
- Оберни в класс-репозиторий.
Этот промт идеально сработал для нашего UIKit-модуля. Для SwiftUI-версии мы использовали аналогичный запрос через @FetchRequest в обёртке NSManagedObject.
Промты для Combine
Задача: связать вводимые данные с кнопкой входа и обновлять UI при изменении транзакций.
Промт:
Ты — эксперт по Combine. Напиши код, который объединяет два TextField (email, password) с помощью combineLatest и активирует кнопку только если оба не пустые и email валиден.
- Используй @Published в модели.
- Подписку храни в AnyCancellable set.
- Код должен быть под iOS 17.
Результат: корректный код, который мы использовали для экрана входа. Чуть позже мы адаптировали его для валидации формы в SwiftUI, добавив оператор debounce.
Второй промт — реактивное обновление через NotificationCenter + Combine:
Создай паблишер, который слушает Notification.Name("transactionDidChange") и обновляет сумму расходов на дашборде.
- Используй sink для получения уведомления.
- Затем вызывай сетевой запрос (или fetch из Core Data).
- Учитывай отписку при deinit.
Этот промт пригодился для синхронизации данных между Core Data и UI.
Результаты: что изменилось после использования промтов
Мы замерили время на написание типового экрана «вход» и «история операций». Вот что получилось:
| Задача | Без промтов (ч) | С промтами (ч) | Экономия |
|---|---|---|---|
| Экран входа SwiftUI | 6 | 2,5 | 58% |
| Навигация и список транзакций | 8 | 4 | 50% |
| Дашборд на UIKit (коллекция) | 16 | 9 | 44% |
| Core Data модель и репозиторий | 12 | 5 | 58% |
| Combine-связки | 7 | 3 | 57% |
В итоге мы уложились в срок и сэкономили около 40 часов на команду из 3 человек. Промты не только ускорили написание кода, но и снизили количество ошибок — нейросеть хорошо знает синтаксис и типичные паттерны.
Выводы и советы
- Промты — это не замена разработчику, а инструмент. Они отлично генерируют шаблоны, но вам всё равно нужно понимать архитектуру и бизнес-логику.
- Контекст важнее промта. В начале диалога задайте роль: «Ты — senior iOS-разработчик с опытом в SwiftUI» — качество ответов сразу выше.
- Уточняйте требования. Если код не идеален, не бойтесь давать обратную связь: «Используй меньше вложенности», «Добавь обработку ошибок», «Перепиши на async/await».
- Проверяйте код. AI иногда использует устаревшие API (например, @EnvironmentObject вместо @Observable). В 2026 году точно стоит использовать @Observable и SwiftData, но у нас был legacy на Core Data.
Заключение
Промты для Swift и iOS — это мощный инструмент, который помог нам справиться с жёсткими сроками и не сгореть. Мы поделились лишь малой частью того, что реально используем в работе. Если вы тоже хотите ускорить разработку своих приложений — начните с этих промтов уже сегодня.
А если вы хотите больше готовых решений для iOS, подписывайтесь на наш блог asibiont.com/blog — мы регулярно публикуем разборы, промты и кейсы. Ставьте лайк и делитесь с теми, кто пишет на Swift. Удачи в разработке!
Комментарии