Last Updated: March 8, 2026
Status: iOS Submitted for Review / Android Distributed (GitHub, F-Droid pending, Play Store pending)
All V1 + V2 + V3 (audio) features built, tested, and submitted for Apple review.
Core App:
- Architecture design and documentation
- Data pipeline — fetch, parse, and validate scripts
- Generated gita_data.json — 18 chapters, 701 verses, 8183 translations, 11189 commentaries
- Xcode project setup (iOS 17+, universal iPhone + iPad)
- Swift models (Chapter, Verse, Translation, Commentary, Language, LocalizedText, GitaData)
- GitaDataService — async background loading with dictionary lookups
- ThemeManager — 4 WCAG-compliant themes with UINavigationBar appearance
- AppSettings — persistent font size, language, transliteration, preferred authors
- ReadingProgress — persistent last-read chapter/verse
- Chapter list (home screen) with book cover header and resume reading banner
- Chapter detail with read-more summary snippets + verse list
- Verse detail (reading screen) — Sanskrit shlok, transliteration toggle, translation
- Language toggle (Hindi/English) with author picker
- Chapter titles/summaries honor default language setting
- Verse navigation — swipe gestures + prev/next buttons (works across chapters)
- Settings screen — theme picker, font size slider, language, transliteration toggle
- Settings gear icon accessible from all screens
- Resume reading banner — auto-saves progress, tap to jump back
- Themes fully applied — navigation bars, status bar, all views honor active theme
- Font size applies globally (chapter list, verse list, chapter detail, reading screen)
- Transliteration defaults to on for new installs
- App display name set to "GitaVani"
- First-launch onboarding (4 swipeable pages)
- Help screen (accessible from ? icon on home screen)
- App icon (lotus + open book, saffron gradient, AI-generated via Recraft)
- Tested on physical device (iPhone 15 Pro)
App Store Prep:
- Async data loading (background thread, no main-thread blocking)
- Error state for data load failure
- Print statements gated behind #if DEBUG
- O(1) dictionary-based verse/chapter lookups
- TranslationView state reset on verse swipe (.id modifier)
- PrivacyInfo.xcprivacy manifest (UserDefaults declaration)
- Accessibility labels on all icon-only buttons
- About/Credits screen (version, attribution, license, privacy)
- WCAG 4.5:1 color contrast verified + Lotus theme fixed
- License files — MIT (app code) + LGPL-3.0 (data attribution)
- App Store submission prep doc (docs/submission_prep.md)
V2 Features:
- Commentaries UI — 17 authors, 3 languages (EN/HI/SA), language toggle + author picker
- Commentary text truncation (1500 chars with Read more/Show less)
- Commentary encoding fix (BG8.1, BG12.18 U+FFFD removed)
- Persistent language/author selections for both translations and commentaries
- Favorites — heart icon on verse detail, favorites list with sort toggle (Recent/Chapter Order)
- Favorites accessible from home screen and chapter detail toolbar
- Search — pull-down searchable on home (global) and chapter detail (chapter-scoped)
- Search across Sanskrit, transliteration, and all translations with debounce
- Dynamic Type — system text size scales on top of custom font slider via @ScaledMetric
- Share verse — themed image card via iOS share sheet with text fallback
V3 Audio:
- 701 Sanskrit verse audio files bundled (96kbps MP3, 126MB total)
- Audio source: shlokam.org individual verse recordings
- AudioService — AVAudioPlayer with play/pause/stop
- Action bar UI below Sanskrit text — Play, Romanize, Save, Share buttons
- Auto-stop when verse finishes playing
- Audio stops on verse navigation (swipe, prev/next) and when leaving screen
Website (gitavani.app):
- Domain purchased (gitavani.app on GoDaddy)
- Static site hosted on GitHub Pages (nikhilsi/gitavani-site)
- Landing page with app description and features
- Privacy policy page (gitavani.app/privacy)
- Support page with FAQ (gitavani.app/support)
- Support email (thegitavani@gmail.com)
- Apple Developer Program signup ($99/year) — enrolled, pending activation
- Add privacy policy link in app About screen — done (gitavani.app/privacy)
- App Store screenshots (iPhone 6.9", iPad 13") — 8 each, all V2 features + 4 themes
- App Store metadata (description, keywords, category) — pushed via API
- Update website landing page for V2 features
- Developer enrollment activation — confirmed
- Create app in App Store Connect — metadata, screenshots, categories, age rating, review notes
- Upload build via Xcode — v1.0.0 (build 1), archived and uploaded via xcodebuild
- TestFlight build — distributed to 3 testers (Family Testers group)
- iPad layout refinements — larger default font size (22pt vs 18pt)
- Update help screen for V2 features
- V3 audio — 701 verse recordings bundled at 96kbps
- App Store submission — v1.0.0 (build 3) submitted for review
Status: Distributed via GitHub Releases + F-Droid (pending review) + Play Store (pending closed testing)
- Project setup — Kotlin + Jetpack Compose, min API 26, Gradle 8.11.1
- Data loading — 35.6 MB JSON parsed on Dispatchers.IO with loading spinner
- Models — all 6 model classes ported with kotlinx.serialization
- Theme system — 4 themes with exact iOS color values, MaterialTheme wrapper
- Navigation — Navigation Compose with 7 routes
- Chapter list (Home) — book cover header, search icon, resume reading banner
- Chapter detail — summary card, search, verse list
- Verse detail — HorizontalPager swipe, Sanskrit, transliteration, translations, commentaries
- Audio playback — MediaPlayer with lifecycle awareness, 701 MP3s from assets, play/pause/stop
- Search — global (home) and chapter-scoped with 300ms debounce
- Favorites — heart toggle, favorites screen with Recent/Chapter sort
- Share — themed image card (matching iOS) with text fallback via FileProvider
- Settings — theme picker (2x2 grid), font size slider, language toggle, transliteration switch
- About screen — dynamic version via BuildConfig, credits, license, privacy, external links
- Help screen — feature guide with Material icons
- Onboarding — 4-page HorizontalPager with Skip/Get Started
- Edge-to-edge display with themed status bar
- App icon — iOS lotus + open book design at all mipmap densities
- Code review — MediaPlayer leak fix, lifecycle awareness, try/catch safety, release minification
- Release signing — keystore + keystore.properties (gitignored), conditional config for F-Droid
- GitHub Actions — automated APK + AAB builds on tag push (
.github/workflows/release.yml) - GitHub Releases — v1.0.0 APK available for direct download
- F-Droid — MR #34390 submitted, pending review. Fastlane metadata in repo (
fastlane/metadata/android/). Summary/description pulled from fastlane (not YAML). - Play Store developer account ($25) — created
- Signed release build (AAB) — 134 MB, under 150 MB limit
- Play Console device + phone verification — done
- Play Store listing (description, screenshots, graphics) — done
- Internal testing release — v1.0.0 published Feb 19
- Identity verification — pending
- Closed testing (12 opted-in testers required for production)
- Production release
| Feature | Status |
|---|---|
| Data loading | Done |
| Chapter list (Home) | Done |
| Chapter detail | Done |
| Verse detail (Reading) | Done |
| Sanskrit + transliteration | Done |
| Hindi/English translations | Done |
| Author picker | Done |
| Commentaries (17 scholars) | Done |
| 4 Themes | Done |
| Font size control | Done |
| Bookmark/resume | Done |
| Swipe navigation | Done |
| Prev/Next buttons | Done |
| Settings screen | Done |
| Audio playback | Done |
| Search | Done |
| Favorites | Done |
| Share (image card) | Done |
| Onboarding | Done |
| Help screen | Done |
| About screen | Done |
| App icon | Done |
| Edge-to-edge | Done |
| Release signing | Done |
| Release AAB (134 MB) | Done |
| Play Store listing | Done |
| Internal testing release | Done |
| GitHub Actions CI/CD | Done |
| GitHub Releases (APK) | Done |
| F-Droid submission | Pending review (MR #34390) |
| Closed testing (12 testers) | Not started |
| Production release | Blocked |
- 2 verses (BG12.3, BG12.18) have only 1 translation each — correct, other scholars did not comment
- 2 commentaries have U+FFFD encoding issues (BG8.1, BG12.18) — upstream data, commentaries are V2
| Metric | Value |
|---|---|
| Chapters | 18 |
| Verses | 701 |
| Hindi translations | 2,050 (3 authors) |
| English translations | 6,133 (9 authors) |
| Commentaries | 11,189 (V2) |
| File size | 35.6 MB |
| Feature | Status |
|---|---|
| Data pipeline | Done |
| Chapter list (Home) | Done |
| Chapter detail (Verse list) | Done |
| Verse detail (Reading screen) | Done |
| Sanskrit + transliteration | Done |
| Hindi/English translations | Done |
| Author picker | Done |
| Language-aware chapter titles | Done |
| Theming (4 themes, WCAG compliant) | Done |
| Theme applied to nav bars | Done |
| Font size control (global) | Done |
| Bookmark/resume | Done |
| Swipe navigation | Done |
| Prev/Next buttons | Done |
| Settings screen | Done |
| Settings gear on all screens | Done |
| Onboarding | Done |
| Help screen | Done |
| About/Credits screen | Done |
| App icon | Done |
| Privacy manifest | Done |
| Accessibility labels | Done |
| Async data loading | Done |
| Favorites | Done |
| Search | Done |
| Dynamic Type | Done |
| Share verse | Done |
| Sanskrit verse audio | Done |
| App Store submission | Waiting for Review |
| iPad layout | Done |