Shipaton 2025 - Day 33 - Laying The Data Layer With Entities And DAOs
Shipaton 2025 Day 33: Added Room entities and DAOs for words, categories & progress with core CRUD queries - clean data layer for Learn Lithuanian App, enabling predictable queries offline.
Mantas Butenas
9/3/20251 min read
Introduction
Today marks day 33 of the Shipathon 2025, and what a ride it has been! One of the most exciting parts of any project is laying the groundwork, and today, I dove deep into creating the core domain structures.
Room Entities and DAOs
So, what did I tackle today? I focused on developing the first Room entities and Data Access Objects (DAOs) for the Learn Lithuanian Android app. These are crucial elements that will streamline how the data is managed. Think of it as building the backbone of the application!
Essentially, these entities act as blueprints for what the data will look like, while the DAOs are responsible for handling all interactions with that data. I initiated the setup for words, categories, and progress tracking, which will serve as a clean starting point for the data layer. This structure should allow for smoother repository wiring and more predictable queries.
Why This Matters
Before features like spaced-repetition, offline quizzes, or fast search can feel great, the database has to be boring. Today I set that foundation with a small, explicit schema and a few well-chosen queries. The goals:
✔️ Predictable queries: obvious, explainable SQL you can trust.
✔️ Simple repositories: DAOs that map 1:1 to use cases.
✔️ Offline-ready: entities that won’t fight future sync or caching.
The Power of Clean Code
One of the stand-out results from today's efforts is a robust foundation for our upcoming offline features. By getting the CRUD (Create, Read, Update, Delete) and query methods drafted early on, I’m setting myself up for success in the long run. A clean data layer can significantly enhance efficiency and performance.
This initial setup will allow my app to serve users efficiently as they navigate learning Lithuanian. No more tangled webs of data management - instead, I’ll have a solid base that can grow as I make progress!
Conclusion
I sketched the app’s core schema (words, categories, progress) and drafted the first DAOs. The result is a clean, predictable data layer that will make repository wiring simple and unlock offline-first features next.