MVVM’s Model implementation in Android application. Room
What is Model in MVVM architecture?
As we said in the previous article Model is the data in our application. These are classes representing objects that we persist in our database or that we get from network calls to services. It is another name for the domain objects.
Persisting data locally in Android application
When it comes to persisting data locally in an Android application the only options are SharedPreferences and SQLite database. However SharedPreferences are good for storing user settings but they are not created for persisting large sets of data or relational data. So the only option for this kind of data is SQLite. Everybody who has previously used SQLite knows the pain of manually writing SQL statements for fetching and persisting data from the database, creating the tables manually, creating cursors for reading the data back and manually parsing the returned records to objects from our Model. Here Room comes to rescue.
What is Room?
- Using POJOs with annotations for schema for creating database tables
- Automatic object mapping from database records to POJOs and vice versa
- Out of the box implementation for the basic CRUD operations
- Exposing observables as query results – reactive programming
- Running CRUD operations on a background thread
Letzte Beiträge
Share :
Share :
Weitere Beiträge

Dependency Injection with Spring 5
As we learned in the previous chapter dependency injection is a very powerful technique. DI is provided by the Spring 5 Framework implementation of the Inversion of Control (IoC) principle.

Repository in Android’s MVVM architecture
Repository is a class which purpose is to provide a clean API for accessing data. What that means is that the Repository can gather data from different data sources(different REST APIs, cache, local database storage) and it provides this data to the rest of the app.

ViewModel
ViewModel – it is a model of the view. The purpose of the ViewModel is to apply any business logic to the Model before exposing it to the View for consumption. This way the View is free of business logic.