A powerful, privacy-first flashcard application for iOS built with SwiftUI and SwiftData. Features AI-powered card generation, advanced spaced repetition algorithms, and comprehensive analytics.
- Rich Text Card Editor - Visual formatting with markdown support
- Multiple Card Types - Basic, Cloze deletion, and Image occlusion
- Deck Management - Organize cards into color-coded decks
- Advanced Search - Find cards across all decks instantly
- SM-2 Algorithm - Classic, proven spaced repetition
- FSRS Algorithm - Modern, ML-optimized scheduling
- Smart Scheduling - Cards appear at optimal intervals
- Progress Tracking - Monitor your learning journey
- OpenRouter Integration - Generate cards with AI
- Multiple Models - GPT-4o, Claude 3.5, Gemini 1.5, and more
- Bulk Generation - Create multiple cards from text
- Smart Formatting - AI-generated cards ready to study
- 4-Tab Analytics - Overview, Performance, Progress, Insights
- Retention Metrics - Track learning effectiveness
- Study Time - Monitor daily and weekly patterns
- Accuracy Trends - See your improvement over time
- Forecast Predictions - Plan your study sessions
- Privacy-First Design - Data stays in your iCloud
- Local Backup - Export to JSON format
- Restore Functionality - Import from backup files
- CloudKit Ready - Sync infrastructure implemented
- Global Design System - Consistent, polished UI
- Emotional Feedback - Haptic feedback and animations
- Coach Messages - Encouraging study companion
- Dark Mode Support - Easy on the eyes
- Xcode 15.0+
- iOS 17.0+
- macOS 14.0+ (for development)
-
Clone the repository
git clone https://github.com/mehmet-can-yilmaz/recall.git cd recall -
Open in Xcode
open Recall.xcodeproj
-
Select your target device
- Choose a simulator or connected device
- Ensure you have a valid development team selected
-
Build and Run
- Press
β + Ror click the Play button - App will launch on your selected device
- Press
- Open project in Xcode
- Select Recall target β Signing & Capabilities
- Click + Capability β Add iCloud
- Enable CloudKit service
- Container will be
iCloud.$(CFBundleIdentifier)
- Navigate to Library tab
- Create a deck or select existing
- Tap "Add New Card"
- Use the rich text editor:
- Bold:
β + B - Italic:
β + I - Underline:
β + U - Cloze deletion: Tap "Cloze" button
- Bold:
- Tap "Generate with AI" in Study tab
- Select model (GPT-4o recommended)
- Enter your OpenRouter API key
- Paste text to generate cards from
- Generate - AI creates cards automatically
- Go to Study tab
- Select a deck (or study all)
- Tap "Start Study"
- Rate each card:
- Again (forgot)
- Hard (difficult to recall)
- Good (correct)
- Easy (too easy)
- Overview - Daily stats and progress
- Performance - Retention and accuracy metrics
- Progress - Study time and card completion
- Insights - Deck performance and forecasts
- SwiftUI - Modern, declarative UI framework
- SwiftData - Persistent data storage
- CloudKit - Optional iCloud synchronization
- Combine - Reactive programming
Recall/
βββ Models/ # SwiftData models (Card, Deck, SRS, etc.)
βββ Views/ # SwiftUI views and screens
βββ Services/ # AI API, Sync Manager
βββ SRS/ # Spaced repetition algorithms
βββ Components/ # Reusable UI components
βββ Extensions/ # Design tokens and utilities
- Card - Flashcard content with markdown
- Deck - Collection of cards
- CardSRS - Spaced repetition metadata
- ReviewEvent - Study session history
- Local-First - All data stored on device
- No Tracking - Zero analytics or telemetry
- iCloud Optional - Sync only when you enable it
- Open Source - Transparent codebase
- Sync Setup Guide - iCloud configuration
- Testing Guide - Feature testing checklist
- Implementation Status - Development progress
- Clone the repository
- Open in Xcode
- Select development team
- Build and run
See IMPLEMENTATION_STATUS.md for planned features and roadmap.
- CloudKit requires manual capability addition in Xcode
- First launch on simulator may be slow
- Image occlusion UI exists but not fully implemented
This project is licensed under the MIT License - see the LICENSE file for details.
- FSRS Algorithm - Open-source spaced repetition research
- OpenRouter - AI model aggregation service
- Anki - Inspiration for flashcard workflows
For questions or feedback:
- GitHub Issues: github.com/mehmet-can-yilmaz/recall/issues
Made with β€οΈ and SwiftUI