Приложение помогает фиксировать эмоциональные эпизоды и превращать записи в понятные паттерны: календарь активности, инсайты и экспорт в PDF/CSV.
iCried помогает не просто хранить заметки о настроении, а видеть закономерности: когда и почему возникают эмоциональные пики, какие триггеры повторяются, как меняется состояние во времени.
compressed_video_mockup_d13af55d_5b24_46ec_a61a_1f9d5a4c04aa_2.mp4
- Дневник эмоций: запись эпизода с датой, заметкой, тегом и кастомной интенсивностью через эмодзи.
- Гибкая система тегов - пользователь может добавлять, редактировать, удалять и сортировать собственные теги для категорий эмоций.
- Настраиваемая шкала интенсивности: выбор интенсивности эмоций через эмодзи-шкалу в интерфейсе записи.
- Аналитика по периодам: статистика по годам/месяцам, распределение по тегам и интенсивностям.
- Heatmap-календарь: 5 уровней интенсивности, навигация по месяцам/годам, детализация по выбранному дню.
- Инсайт-карточки: генерация готовых карточек (
thisMonth,topTrigger,mostUsedEmoji,yearSummary) для шаринга. - Экспорт данных: PDF-отчёт и CSV-таблица через системный Share Sheet.
- iCloud синхронизация: перенос данных между устройствами Apple через CloudKit private database.
Интерфейс построен вокруг трёх вкладок:
- Дневник — история записей и быстрый ввод нового эпизода.
- Анализ — статистика, графики и heatmap-календарь.
- Настройки — управление тегами/эмодзи, экспорт и карточки.
SwiftDataкак локальный source of truth для записей, тегов и интенсивностей.CloudKitдля синхронизации данных через private iCloud database.- Централизованный orchestration-слой
TearDataManagerдля единообразного lifecycle мутаций. - Отдельный аналитический слой в
Domain:HeatmapEngineInsightsEngineReportGeneratorCardRenderer
- Тестируемая архитектура через протоколы, моки и выделенные тесты для domain/view model/UI.
- Данные пользователя хранятся на устройстве и в private iCloud container.
- Приложение не использует сторонние аналитические/рекламные SDK.
- Экспорт выполняется локально и передаётся только через системный Share Sheet по явному действию пользователя.
- iOS 17.0+
- Xcode 15+
- macOS Ventura 13.0+
- Apple ID (для сценариев iCloud/CloudKit)
- Swift 5.9+
- SwiftUI - весь интерфейс приложения построен на декларативных
View-компонентах иNavigation-паттернах SwiftUI. - SwiftData - основной persistence-слой для хранения записей, тегов и связанных данных на устройстве.
- CloudKit - синхронизация пользовательских данных между устройствами через private iCloud database.
- Combine - реактивные подписки и обновление состояния экранов при изменениях данных и системных событий.
- Charts - визуализация статистики по периодам, тегам и интенсивностям на аналитических экранах.
- ImageRenderer / UIGraphicsPDFRenderer - генерация share-карточек в изображение и формирование PDF-отчётов.
- XCTest / XCUITest - unit- и UI-тесты для аналитики, экспорта, heatmap и ключевых пользовательских сценариев.
- SPM dependencies: в текущей конфигурации внешние пакеты не являются обязательной частью основного функционала.
iCriedTodayDesign/
├── App/ # точка входа и корневая композиция
├── Core/ # инфраструктурные утилиты
├── Data/ # persistence, repositories, seed
├── Domain/ # модели, аналитика, экспорт, insights
├── Features/ # feature-модули UI + ViewModel
│ ├── Diary/
│ ├── EntryForm/
│ ├── Settings/
│ ├── Statistics/
│ └── Tags/
└── Shared/ # переиспользуемые компоненты
iCriedTodayDesignTests/ # unit-тесты
iCriedTodayDesignUITests/ # UI-тесты
## Установка и запуск
1. Клонировать репозиторий:
```bash
git clone https://github.com/berrrchik/iCried-SwiftApp.git
- Открыть
iCriedTodayDesign.xcodeprojв Xcode. - Выбрать target
iCriedTodayDesign, включитьAutomatically manage signing, выбрать Team. - Запустить на симуляторе или устройстве с iOS 17+.