A native macOS menu bar application designed to help speakers of Hindi, Marathi, and English learn Spanish through interactive flashcards, speech drills, and spaced repetition.
- Flashcard Review System - Interactive flashcards with tap-to-reveal, organized by due dates using the SM-2 spaced repetition algorithm
- Architecture Diff Cards - Compare Spanish grammar/structure to Hindi & English (word order, gender, articles, verb conjugation)
- Phoneme Cards - Spanish sounds mapped to Hindi and English equivalents (rolled 'r', 'j' sound, 'ñ')
- Speech Drills - Three practice modes:
- Shadowing - Listen and repeat
- Minimal Pairs - Distinguish similar sounds
- Pattern Substitution - Practice grammatical patterns
- Phrase Cards - Common Spanish phrases with text-to-speech pronunciation
- Menu Bar Companion - Quick access popover for review sessions from the menu bar
- Global Shortcut -
Cmd+Shift+Lto add cards from clipboard (works from any app) - Progress Tracking - Daily streak counter, cards reviewed today
- Notification Reminders - Configurable review reminders
- Onboarding Flow - Four-page introduction for new users
| Component | Technology |
|---|---|
| Language | Swift 5.9+ |
| UI Framework | SwiftUI |
| Persistence | Core Data (programmatic model) |
| Audio | AVFoundation (AVSpeechSynthesizer) |
| Architecture | @Observable pattern (Observation framework) |
| Notifications | UserNotifications framework |
| Deployment Target | macOS 26.4+ |
PolyglotMac/
├── PolyglotMac/
│ ├── App/
│ │ ├── PolyglotMacApp.swift # @main entry point
│ │ └── AppState.swift # Global state
│ ├── Models/
│ │ ├── Language.swift # Language, Phoneme, Pattern
│ │ ├── Card.swift # Card, CardType, ReviewResult
│ │ └── SRSState.swift # Spaced repetition state
│ ├── Data/
│ │ ├── PersistenceController.swift
│ │ ├── CardEntity.swift
│ │ ├── SeedData.swift # 71 pre-loaded Spanish cards
│ │ └── SRSScheduler.swift # SM-2 algorithm
│ ├── Features/
│ │ ├── Flashcards/
│ │ ├── SpeechDrills/
│ │ ├── LanguageArchitecture/
│ │ └── MenuBar/
│ └── Utilities/
│ ├── AudioPlayer.swift
│ ├── GlobalShortcutManager.swift
│ └── NotificationManager.swift
├── PolyglotMacTests/
└── PolyglotMacUITests/
- macOS 26.4 or later
- Xcode 16.0 or later
# Clone the repository
git clone https://github.com/codingstark-dev/PolyglotMac.git
# Open in Xcode
open PolyglotMac.xcodeproj
# Build and run (Cmd+R)The app runs as a menu bar application. After launching, look for the PolyglotMac icon in your menu bar.
- Start a Review Session - Click the menu bar icon and select "Start Review"
- Add New Cards - Press
Cmd+Shift+Lfrom any application to add a card from your clipboard - Track Progress - View your daily streak and review statistics in the Settings panel
- Configure Reminders - Set up notification reminders for review sessions
The app uses Core Data with programmatic model definition. Pre-loaded seed data includes 71 Spanish cards covering:
- Architecture comparison cards (Hindi/Marathi/English → Spanish)
- Phoneme inventory cards
- Common phrase cards
- Pattern cards