This project is an iOS application designed to help users track their intermittent fasting schedules simply and effectively. It allows users to time their fasts, set goals, and view their history, all stored locally on their device.
AI Experiment Context: This application is part of an experiment exploring AI-driven development workflows. The requirements, technical specifications, and documentation (like this README) are generated collaboratively using a Large Language Model (LLM). These generated artifacts are then intended to be used as input for an AI development platform, Windsurf.ai, to build the actual application code.
- Start/Stop Fasting Timer:
- Easily start a new fasting period with a single tap.
- Stop the current fast with a tap, automatically recording the end time.
- Active Fast Timer (Elapsed Time):
- Displays a running timer (HH:MM:SS) showing how long the current fast has been active.
- Set Daily Fast Goal:
- Users can define a target duration for their daily fasts (e.g., 16 hours).
- Predefined Suggestions: Offers quick-select options for common fasting durations (14, 16, 18, 20 hours) with brief descriptions of their potential benefits.
- Manual Entry: Allows users to set a custom goal duration (hours/minutes).
- Countdown Timer to Goal:
- When a daily goal is set and a fast is active, the app displays a countdown timer showing the remaining time until the goal is achieved, alongside the elapsed time.
- Provides clear indication when the goal is reached.
- Fasting History:
- Access a dedicated view listing all previously completed fasts.
- Each entry shows the start date/time, end date/time, and total duration.
- History is sorted chronologically (most recent first).
- Local Data Storage:
- All fasting data (history, current fast state, goal setting) is stored securely and privately on the user's device.
- No cloud sync or external accounts are required.
- Ensures data persistence across app launches and device restarts.
- Platform: iOS (Native)
- Language: Swift
- UI Framework: SwiftUI
- Architecture: The Composable Architecture (TCA)
- Database: Local storage via Swift Structured Queries (likely with SQLite)
- Specification Generation (Here): Use an LLM (like Gemini) to collaboratively define functional requirements, technical standards, mockups, and documentation. The complete specifications can be found in the ai_specs directory, which contains detailed requirements, technical standards, and feature specifications.
- AI-Powered Build (Windsurf.ai): Input the generated specifications and documents into Windsurf.ai. Windsurf.ai will then interpret these requirements and generate the Swift application code based on the defined standards (SwiftUI, TCA, Swift Structured Queries).
- Review & Refinement: Review the code generated by Windsurf.ai, test the application, and iterate as needed, potentially refining the specifications here and regenerating code via Windsurf.ai.
This approach aims to streamline the development process by leveraging AI for both specification and code generation phases.