A internship app to demonstrate skills needed for developing a good, modular and scalable Android app using Kotlin, Android Architecture Components (ViewModel & Room), Dagger and Retrofit 2 among others.
Some of the features of the app include:
- Effective Networking - Using a combination of Retrofit, RxJava and Room, we are able to handle networking in the most effective way.
- MVVM architecture - Using the lifecycle aware viewmodels, the view observes changes in the model / repository.
- Kotlin - This app is completely written in Kotlin.
- Android Architecture Components - Lifecycle awareness has been achieved using a combination of ViewModels and Room.
- Offline first architecture - All the data is first tried to be loaded from the db and then updated from the server. This ensures that the app is usable even in an offline mode.
- Dependency Injection - Common elements like context, networking interface are injected using Dagger 2. (In progress)
- Android Support Libraries
- Retrofit 2
- OkHttp
- Glide
- Room
- ViewModel
- RxJava
- Anko
- Dagger 2 (to be used for Dependency Injection)
GUI and manual testing.
Three screens, basic design.