Production-quality SwiftUI micro-workout app architecture with onboarding, Today/Tracks/Progress/Settings tabs, offline-first seeded content, anti-guilt streak + momentum logic, StoreKit paywall scaffolding, and localization-ready string resources.
- Open in Xcode 15+ as an iOS App project.
- Ensure folders map to groups:
App/,DesignSystem/,Models/,Services/,Views/,Resources/,Widgets/
- Add
Resources/Localizable.strings,Resources/Localizable_sv.strings, andResources/FeatureFlags.jsonto target resources. - Set bundle URL scheme
microstreaksfor deep links. - Set StoreKit product IDs in
Services/PurchaseService.swift.
- Edit tracks/sessions in
Services/ContentSeedService.swift. - Keep all IDs stable via
stableKey. - Increment
ContentSeedService.contentVersionwhen shipping new bundled content.
- Use keys only in UI (
LocalizedStringKey/NSLocalizedString). - English keys live in
Resources/Localizable.strings. - Swedish stub demonstrates pipeline in
Resources/Localizable_sv.strings.
- Add new
TrackThemecase inDesignSystem/Theme.swift. - Add track seed row and sessions in
ContentSeedService. - Add localized keys for track name/description and session titles.
- Add any icon/copy variants needed.
- Onboarding to first session can be completed under 30s.
- Pro lock routes to paywall, and Restore works.
- Streak freeze edge cases (weekly reset, missed days) pass unit tests.
- Notification permission appears only from completion CTA.
- Dynamic Type and VoiceOver labels verified.
- Offline mode works for all non-StoreKit features.
- Dark mode checks done on Today/Tracks/Player/Paywall.
- Reduce Motion disables confetti/high-motion transitions.