Back to all articles
Systems•
October 1, 2026
•
6 min read

EasyNoteAudio V2.0: Architecting a Modern Accessible Note App with Room DB & MVVM

A deep-dive into the V2.0 modernization of EasyNoteAudio: migrating legacy SQLite persistence to Jetpack Room DB, introducing reactive MVVM architecture, and building hands-free voice accessibility.

Anderson Torres
Anderson Torres
Software Engineer & Creator

Mission: Voice-First, Accessible Note-Taking

Note-taking applications often assume the user has two free hands, full mobility, and plenty of time. **EasyNoteAudio** was founded on an accessibility-first mission: creating a convenient, reliable note-taking system designed for users who need hands-free note-taking due to physical disabilities or busy work environments.

By integrating native **Speech-to-Text (STT)** and **Text-to-Speech (TTS)**, users can speak their thoughts aloud and listen back to their notes entirely hands-free.


Key Architectural Upgrades in V2.0

With the release of **V2.0**, EasyNoteAudio underwent a complete architectural overhaul from its academic beginnings to modern production-grade Android engineering:

1. Migration to Jetpack Room Database The legacy SQLite helper implementation was replaced with Android's official **Jetpack Room Persistence Library**: - **Compile-Time SQL Verification**: Eliminates runtime SQL syntax errors. - **Automated Schema Migration**: Safely preserves user notes and to-dos across database upgrades. - **DAO Pattern**: Clean separation of persistence operations with asynchronous executor pools.

java
@Dao
public interface NoteDao {
    @Query("SELECT * FROM notes ORDER BY isPinned DESC, updatedAt DESC")

@Insert(onConflict = OnConflictStrategy.REPLACE) long insert(Note note);

@Delete void delete(Note note); } ```

2. Reactive MVVM Architecture Business logic was extracted from fragile Android Fragment lifecycles into decoupled, lifecycle-aware **ViewModels**: - **`NoteViewModel` & `ToDoViewModel`**: Manage data operations without tying memory to activity recreation (e.g., screen rotation). - **LiveData Streams**: Automatically update the UI when database records change without manual adapter refreshes.

3. Hands-Free Voice Accessibility Engine - **Speech-to-Text (STT)**: Direct integration with Android's SpeechRecognizer intent for instant speech dictation with punctuation handling. - **Text-to-Speech (TTS)**: Clean background audio playback allowing users to listen to long-form notes while on the move.

4. Modern Material 3 UI & Organization - **Color Categories & Pin-to-Top**: Easily organize critical notes by color priority and keep important reminders pinned at the top of the feed. - **Real-Time Search & Live Word Counters**: Instant fuzzy filtering across titles and note bodies, with live word and character counters in the editor. - **To-Do Lists with Priority Flags**: Task due dates, checkboxes, and safe deletion with undo Snackbars.


Open Source Repository - **GitHub Repository**: [github.com/And3rsonTorres/EasyNoteAudio](https://github.com/And3rsonTorres/EasyNoteAudio) - **Tech Stack**: Java, Android SDK, Android Jetpack (Room, LiveData, ViewModel), Material 3.

Tags:#Android#Java#Jetpack Room#MVVM#Accessibility#Speech-to-Text#TTS#Material 3
More Articles