Liber Da Silva - Android expertise example
Example app with latest development standards in Android SDK and Kotlin
- List movies by Most Popular, Top rated and Upcoming categories using The Movie DB database.
- Movie details and full description.
- Online movie search engine.
- The whole app and its search engine works in online and offline mode. It always works online but if it detects no connection it automatically consumes the local information.
Technologies and techniques
- MVVM - MVVM architecture with Repository as "single source of truth".
- Kotlin - Written entirely in this language.
- Kodein - Dependencie injection for effective layers separation and total independence of components.
- Kotlin Coroutines - Asynchronous tasks management.
- LiveData - For communication between components through the Observer pattern.
- Navigation - For navigation between views.
- Room - For data persistence.
- Glide - An image loading and caching library.
- Groupie - Manage complex RecyclerView layouts.
- Retrofit y GSON - For TheMovieDB API consume.
Detailed explanation and responsibility of relevant classes
- Views (ui package):
MainActivityrender the app and initialize Navigator. The main Fragments (in list package) will be called when the different categories are selected.
MovieListFragment, abstract class that solves all movie lists logic. The detail view is
MovieDetailFragment. Finally it's important to note
ScopedFragmentas Helper for handling the coroutines scopes to avoid problems with the life cycles of a Fragments.
- ViewModels (ui package):
- Repository (data.repository package):
MovieRepositoryis the interface and
- Model (data.db package): SQLite database managed with Room library. The DB configuration class is
MovieEntryis the movie entity.
MovieDaointerface has the methods and its database scripts representation.
- Remote Data Source (data.network package):
TheMovieDbApiServicehas the endpoints config.
MovieDataSourceis the data source interface and
- Add unit tests.
- Add tv shows.