Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>
This commit is contained in:
parent
7d0581fdd8
commit
6c195c3083
21
README.md
21
README.md
@ -21,7 +21,7 @@ Rituals is a paid, offline-first habit tracker built around customizable "ritual
|
||||
### Rituals Tab
|
||||
- View all active rituals
|
||||
- Create new rituals from scratch or browse preset library
|
||||
- 13 categorized presets (Health, Productivity, Mindfulness, Self-Care)
|
||||
- 14 categorized presets (Health, Productivity, Mindfulness, Self-Care)
|
||||
- Full ritual management: edit, enable/disable, archive, delete
|
||||
- Drag-to-reorder habits within rituals
|
||||
|
||||
@ -91,7 +91,7 @@ This project follows Clean Architecture and protocol-first design:
|
||||
- **Views**: SwiftUI UI only, no business logic
|
||||
- **State**: @Observable stores with app logic
|
||||
- **Services**: Stateless logic and data seeding
|
||||
- **Models**: SwiftData models and plain structs
|
||||
- **Models**: SwiftData models and plain structs. The architecture is built around **Ritual Arcs**, allowing rituals to be renewed while preserving historical accuracy.
|
||||
- **Protocols**: Abstractions for stores/services
|
||||
|
||||
## Project Structure
|
||||
@ -102,7 +102,8 @@ Andromida/
|
||||
│ ├── App/
|
||||
│ │ ├── Models/ # SwiftData + DTOs
|
||||
│ │ │ ├── Ritual.swift
|
||||
│ │ │ ├── Habit.swift
|
||||
│ │ │ ├── RitualArc.swift
|
||||
│ │ │ ├── ArcHabit.swift
|
||||
│ │ │ ├── HabitCompletion.swift
|
||||
│ │ │ ├── InsightCard.swift
|
||||
│ │ │ ├── Milestone.swift
|
||||
@ -116,6 +117,7 @@ Andromida/
|
||||
│ │ │ └── RitualSeedService.swift
|
||||
│ │ ├── State/ # @Observable stores
|
||||
│ │ │ ├── RitualStore.swift
|
||||
│ │ │ ├── CategoryStore.swift
|
||||
│ │ │ └── SettingsStore.swift
|
||||
│ │ └── Views/ # SwiftUI features + components
|
||||
│ │ ├── Today/
|
||||
@ -141,9 +143,10 @@ Andromida/
|
||||
|
||||
## Data Model
|
||||
|
||||
- **Ritual**: Title, theme, start date, duration (days), notes, habits, isEnabled, isArchived, timeOfDay, iconName, category
|
||||
- **Habit**: Title, symbol, completedDayIDs
|
||||
- **Milestone**: Day, title, symbol, isAchieved
|
||||
- **Ritual**: Title, theme, notes, defaultDurationDays, timeOfDay, iconName, category, sortIndex, arcs (relationship)
|
||||
- **RitualArc**: Start date, end date, arc number, isActive, habits (relationship)
|
||||
- **ArcHabit**: Title, symbolName, goal, completedDayIDs, sortIndex
|
||||
- **Milestone**: Day, title, symbolName, isAchieved
|
||||
- **Settings**: Stored via Bedrock CloudSyncManager (NSUbiquitousKeyValueStore)
|
||||
|
||||
## Bedrock Integration
|
||||
@ -152,17 +155,17 @@ Andromida/
|
||||
- **Branding**: AppLaunchView, AppIconConfig, LaunchScreenConfig
|
||||
- **Settings UI**: SettingsToggle, SettingsSlider, SettingsSegmentedPicker, SettingsCard
|
||||
- **Cloud Sync**: iCloud sync for settings using CloudSyncManager
|
||||
- **Onboarding**: Sherpa walkthrough system
|
||||
- **Onboarding**: Custom `SetupWizardView` flow (Sherpa integration pending)
|
||||
|
||||
## Localization
|
||||
|
||||
String catalogs are used for English, Spanish (Mexico), and French (Canada):
|
||||
String catalogs are used for English (en), Spanish (es-MX), and French (fr-CA):
|
||||
|
||||
- `Andromida/Andromida/App/Localization/Localizable.xcstrings`
|
||||
|
||||
## Requirements
|
||||
|
||||
- iOS 18.0+
|
||||
- iOS 18.6+
|
||||
- Swift 5 (Bedrock requires Swift 6 in package; app builds under Swift 5 with modern concurrency)
|
||||
|
||||
## Running
|
||||
|
||||
Loading…
Reference in New Issue
Block a user