Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mohamedma872/dubizzle_androidtask
https://github.com/mohamedma872/dubizzle_androidtask
Last synced: 7 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/mohamedma872/dubizzle_androidtask
- Owner: mohamedma872
- Created: 2021-12-26T01:53:08.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2022-08-30T12:02:21.000Z (about 2 years ago)
- Last Synced: 2023-12-22T07:24:11.595Z (11 months ago)
- Language: Kotlin
- Size: 3.53 MB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Dubizzle_AndroidTask
DubizzleTaskA sample app to demonstrate the building of a good, modular and scalable Android app using Kotlin, Android Architecture Components (LiveData, ViewModel & Room), Dagger, RxJava and RxAndroid among others.
# Features
Some of the features of the app include- **Effective Networking** - Using a combination of Retrofit, Rx, Room and LiveData, we are able to handle networking in the most effective way.
- **Modular** - The app is broken into modules of features and libraries which can be combined to build instant-apps, complete apps or lite version of apps.
- **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 LiveData, ViewModels and Room.
- **Dependency Injection** - Common elements like `context`, `networking` interface are injected using Dagger 2.
- **Feature based packaging** - This screen-wise / feature-wise packaging makes code really easy to read and debug.
![alt text](https://github.com/mohamedma872/Dubizzle_AndroidTask/blob/master/Screen%20Shot%202021-12-26%20at%204.32.08%20AM.png)
![alt text](https://github.com/mohamedma872/Dubizzle_AndroidTask/blob/master/Screen%20Shot%202021-12-26%20at%204.50.23%20AM.png)
![alt text](https://github.com/mohamedma872/Dubizzle_AndroidTask/blob/master/Screen%20Shot%202021-12-26%20at%204.51.15%20AM.png)
![alt text](https://github.com/mohamedma872/Dubizzle_AndroidTask/blob/master/Screen%20Shot%202021-12-26%20at%205.08.29%20AM.png)
![alt text](https://github.com/mohamedma872/Dubizzle_AndroidTask/blob/master/Screen%20Shot%202021-12-26%20at%205.37.39%20PM.png)
![alt text](https://github.com/mohamedma872/Dubizzle_AndroidTask/blob/master/Screen%20Shot%202021-12-27%20at%201.57.34%20PM.png)
# Testing:
To run all the unit tests, run `./gradlew test`. This would test the repositories and the viewmodels.To run all the instrumented tests, run `./gradlew connectedAndroidTest`. This would test the LocalDataSources (Room)
# Build info:
- Compile SDK - 31
- MinSDK - 21, Target - 31# Libraries used
* [Android Support Libraries](https://developer.android.com/topic/libraries/support-library/index.html)
* [Dagger 2](https://google.github.io/dagger/)
* [Retrofit](http://square.github.io/retrofit/)
* [OkHttp](http://square.github.io/okhttp/)
* [Glide](https://github.com/bumptech/glide)
* [Room](https://developer.android.com/topic/libraries/architecture/room.html)
* [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel.html)
* [LiveData](https://developer.android.com/topic/libraries/architecture/livedata.html)
* [RxJava](https://github.com/ReactiveX/RxJava)
* [RxAndroid](https://github.com/ReactiveX/RxAndroid)# License
Copyright 2021 Mohammed ahmed