Record at the speed of thought. Understand your days through AI. Flow is a minimalist, modern iOS journaling application built with SwiftUI. It breaks down the barrier between feeling and recording by offering an instant-input interface, timeline-based tracking, and deep AI insights that compare your planned schedule with your actual inferred activities.
- ⚡️ Frictionless Capture: The keyboard is ready the moment you open the app. Quickly log thoughts, or use the Toolbox to drop a quick Emoji or a 1-10 mood score without typing a single word.
- 🎨 Dynamic Color-Coded Timeline: Your journal entries are elegantly connected on a vertical timeline. The timeline automatically changes color based on your planned schedule for that specific time block.
- 📅 Notion-Style Time Blocking: Easily plan your day with a clean, list-based schedule interface. Swipe left and right to navigate through different days effortlessly.
- 🧠 AI-Powered Day Review: At the end of the day, generate a personalized "Daily Insight". Flow's AI engine analyzes your entries to:
- Extract 3 defining keywords for your day.
- Infer your actual schedule to compare against your planned schedule.
- 📊 Beautiful Visualizations: Built with native Swift Charts to plot your Energy vs. Mood fluctuations throughout the day in a gorgeous, smoothed line graph.
- UI Framework: SwiftUI
- Local Storage: SwiftData (iOS 17 native)
- Data Visualization: Swift Charts
- AI Integration: URLSession + Custom JSON Parsing (OpenAI API)
- Architecture: MVVM (Model-View-ViewModel)
Follow these instructions to get the project up and running on your local machine for development and testing.
- macOS running Xcode 15 or later.
- iOS 17.0+ Simulator or physical device.
- An active OpenAI API Key.
-
Configure the AI Secrets: For security, the API key is not included in the repository. You must create a
Secrets.plistfile.- Open the project in Xcode.
- Right-click the root folder -> New File... -> Property List.
- Name it
Secrets.plist. - Add a new key-value pair:
- Key:
OPENAI_API_KEY - Type:
String - Value:
your_actual_openai_api_key_here
- Key:
- Note: Ensure
Secrets.plistis in your.gitignorefile before making any new commits.
-
Build and Run: Select your target simulator or device in Xcode and press
Cmd + R.
- Core Data/SwiftData models & Timeline UI
- Custom Schedule Management
- OpenAI API integration & JSON parsing
- Swift Charts for Energy/Mood visualization
- Dynamic Island & Live Activities: Every 10-minute prompt for instant mood rating.
- Settings Menu: Custom theme colors and configurable metrics.
- Weekly/Monthly Insights: Aggregating DailySummaries into longer-term trends.
This project is licensed under the MIT License - see the LICENSE file for details.
Designed & Developed by Ethan | Bilibili @氘氚新能源