Dholuo and English
# Hymnal-app
Dholuo and English
Hymnal App
A bilingual (English / Dholuo) offline hymnal app built with Flutter — Song of the Day, full-text search, favourites, and tap-to-highlight reading, all persisted locally so it works without a connection.
� �
Features
🎵 Song of the Day — rotates deterministically by date, no server needed
🔍 Search — matches title, hymn number, or any lyric line, in either language
❤️ Favourites — saved locally, survives app restarts
🖍️ Tap-to-highlight — mark meaningful lines while reading
🌐 English / Dholuo toggle — every screen respects the selected language
📴 Fully offline — all data and state persist via SharedPreferences
Setup
Install Flutter:
docs.flutter.dev
This repo ships only lib/ and pubspec.yaml. Generate the platform folders once, from inside the project directory:
flutter create .
Fetch dependencies:
flutter pub get
Run it:
flutter run
Project structure
lib/
main.dart # entry point
models/hymn.dart # Hymn / HymnVerse data classes
data/hymn_data.dart # sample hymn content (REPLACE Luo lyrics)
providers/hymnal_provider.dart # state + SharedPreferences persistence
theme/app_theme.dart # colors, type, ThemeData
screens/
root_screen.dart # bottom nav shell
home_screen.dart # Song of the Day + hymn list
search_screen.dart # live search
favourites_screen.dart # saved hymns
hymn_reader_screen.dart # lyrics + highlighting
widgets/hymn_row.dart # shared list row
Important: replace the placeholder Luo lyrics
lib/data/hymn_data.dart currently has PLACEHOLDER Dholuo translations — they are not accurate translations, just stand-ins so the bilingual toggle works in the demo. Replace the luo: fields with verified lyrics from a source you have the rights to use before this becomes a real app. English lyrics currently included are public-domain 19th-century hymns, safe to keep or swap out.
What's already wired up
Persistence: fa …