Shipaton 2025 - Day 36 - Room Backed Lessons List Sorted by Topic
Shipaton 2025 Day 36: Room-backed Lessons screen for Learn Lithuanian Android app - A→Z topic sort boosts discoverability with navigation and readies filters.
Mantas Butenas
9/6/20251 min read
Introduction
Today’s Shipaton push was all about turning raw lesson data into a clean, predictable catalog. I wired up the Lessons screen to the Room database through the repository layer and shipped a default alphabetical (A→Z) sort by topic. The result: learners now land on an organized list that’s easy to scan, faster to navigate, and ready for future filters.
Why This Matters
✔️ Predictable structure: When topics are alphabetized, your eyes know where to look. “Adjectives” will always come before “Cases,” which comes before “Verbs,” etc.
✔️ Faster scanning: Grouping by topic reduces cognitive load because learners can jump straight to the section they care about.
✔️ Future-proofing: With sorting in place, adding filters becomes straightforward.
The Approach
I followed a standard Android architecture path: Room → DAO → Repository → ViewModel → UI.
✔️ Room persists lessons locally for instant loading and offline access.
✔️ DAO exposes explicit queries, including sorting.
✔️ Repository provides a single source of truth, abstracting data sources.
✔️ ViewModel collects data as a stream for the UI to render reactively.
✔️ Jetpack Compose UI groups lessons by topic.
Conclusion
Stay tuned for more updates from this Shipaton adventure as I implement more features that will make learning Lithuanian even more enjoyable! Let's make this experience one that resonates with our learners and encourages them to embrace this beautiful language.