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

red apple fruit on four pyle books
red apple fruit on four pyle books

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.