Shipaton 2025 - Day 32 - Laying the Groundwork for Room in Learn Lithuanian App

Shipaton 2025 Day 32: Started Room database for reliable local caching to speed up Learn Lithuanian, especially offline.

Mantas Butenas

9/2/20251 min read

a stack of stacked blue and white plates
a stack of stacked blue and white plates

Getting Started with Room Database

Today wasn’t a flashy “it all works!” kind of day and that’s OK. I focused on the groundwork for adding a Room database: I pulled in the dependency and began sketching out my entities. Nothing is finalized yet, but the shape of the data layer is starting to emerge. For those who might not be familiar, Room is a part of Android’s Jetpack library and is a fantastic way to manage local storage in your applications.

What I Did Today

✔️ Added Room dependencies to the project (runtime + Kotlin extensions + compiler).

✔️ Drafted initial entities for words and categories, keeping the schema minimal while I figure out indexing, relationships, and migrations.

✔️ Outlined the plan for DAOs and repositories.

Why Room Database Matters

✔️ Offline-first: Learners can review vocabulary without a connection.

✔️ Speed: Lists render from local cache instantly.

✔️ Scalability: A clear schema and migrations make it safe to grow the content set.

Key Takeaways

✔️ Progress isn’t just commits - it’s decisions. Today’s decisions make tomorrow’s code simpler.

✔️ Locking down just enough of the schema before DAOs helps avoid early migrations.

✔️ A tiny, working vertical slice will validate all these choices fast.