Planeuro — iOS-приложение на UIKit для планирования задач с интеграцией GPT, календарём, системой достижений и поддержкой уведомлений.
Проект разработан как курсовая работа 2 курса и ориентирован на построение архитектурно организованного iOS-приложения с интеграцией искусственного интеллекта и разделением ответственности между слоями системы.
- Добавление задач через чат.
- Генерация структурированной задачи из свободного текста (название добавляемой задачи).
- Выявление недостающих параметров (дата, длительность и т.д.).
- Предложение разбиения сложной задачи на подзадачи.
- Рекомендации по распределению задачи в расписании.
- Создание, редактирование и удаление задач.
- Поддержка подзадач.
- Настройка даты, времени и напоминаний.
- Привязка к категории и локации.
- Отображение списка задач.
- Отображение задач по датам.
- Планирование задач во временные слоты.
- Переключение между списком и календарным представлением.
- Просмотр нагрузки по дням.
- Локальные уведомления перед началом задачи.
- Email-напоминания через BGTask.
- Настройка времени напоминаний.
- Система достижений.
- Отслеживание активности пользователя.
- Прогресс-индикаторы.
- Отдельный экран достижений.
- Регистрация и вход.
- Хранение данных пользователя.
- Использование Keychain для чувствительной информации.
0429.mp4
Проект построен с разделением на слои:
Features/
AddTask/
EditTask/
Main/
Schedule/
Calendar/
Achievements/
Auth/
Core/
Services/
Data/
Helpers/
Persistence/
CoreData/
Networking/
Extensions/
Utilities/
- Разделение View / Interactor / Presenter
- Сервисный слой
- Инкапсуляция работы с GPT в отдельном сервисе
- Изоляция persistence-слоя
- Работа с Background Tasks
- Разделение бизнес-логики и UI
Бизнес-логика инкапсулирована в сервисах и не зависит напрямую от конкретной реализации хранения данных.
В проекте реализован отдельный GPTService, который:
- формирует системные промпты,
- отправляет запрос в OpenAI API,
- парсит JSON-ответ,
- управляет сценариями уточнения данных,
- генерирует варианты разбиения задач.
Интеграция используется для структурирования задач и помощи в планировании, а не просто как чат.
В проекте реализовано хранение данных через CoreData:
- хранение задач и подзадач,
- категории,
- состояния выполнения,
- история изменений.
Дополнительно:
- хранение прогресса достижений в UserDefaults,
- работа с Keychain для чувствительных данных.
В проекте реализован слой работы с сетью:
- GPTService для взаимодействия с OpenAI API,
- собственная модель обработки ошибок,
- поддержка фоновых задач для email-напоминаний.
- Swift
- UIKit
- CoreData
- OpenAI API
- Background Tasks
- Keychain
- Архитектурный подход с разделением слоёв
- Добавление виджетов.
- Расширение геймификации.
- Добавление группового планирования.
- Улучшение алгоритмов распределения нагрузки.
- Добавление аналитики продуктивности.
- Синхронизация между устройствами.
Проект разработан Матвеенко Эльвирой, студенткой 2 курса направления «Программная инженерия».