Skip to content

Latest commit

 

History

History
223 lines (200 loc) · 10.2 KB

File metadata and controls

223 lines (200 loc) · 10.2 KB

Current State

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.

What's Done

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)

What's Next

  • 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

Android App

Status: Distributed via GitHub Releases + F-Droid (pending review) + Play Store (pending closed testing)

What's Done (Android)

  • 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

Distribution Setup (Android)

  • 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

Android Feature Status

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

Known Issues

  • 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

Data Stats

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

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