A sample android app consuming Overwatch API to display overwatch heroes, maps and patchs, it has been built with Architecture Components and MVVM pattern.
- Minimum SDK level 26
- Kotlin
- Coroutines
- Koin - For dependency injection.
- Firebase - For Crashlytics and Analytics
- Admob
- Exoplayer - ExoPlayer is an application level media player for Android.
- JetPack
- LiveData - Notify domain layer data to views.
- Lifecycle - Dispose of observing data when lifecycle state changes.
- Fragment-ktx - A set of Kotlin extensions that helps with fragment lifecycle.
- ViewBinding - Allows you to more easily write code that interacts with views
- ViewModel - UI related data holder, lifecycle aware.
- Navigator - Navigation refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app.
- Architecture
- Multi-module design for the app.
- MVVM Architecture (View - DataBinding - ViewModel - Model)
- Repository pattern (NetworkBoundResource)
- Clean Architecture approach.
- Gradle KotlinDsl
- Retrofit2 & OkHttp3 - Construct the REST APIs.
- Gson - Gson is a Java library that can be used to convert Java Objects into their JSON.
- Coil - For Loading images from Urls.
OverGuide is Multi-modular application with a meaningful separation for layers and features with the necessary grouping. With MVVM architecture with an additional Domain layer for each module by itself.
Modules Design:
- App
- Api
- Di
- Extensions
- Network
- Features
- Heroes
- Data
- Repository
- Response
- Di
- Ui
- Adapter
- ViewState
- Data
- Maps
- Data
- Repository
- Response
- Di
- Ui
- Adapter
- ViewState
- Data
- Patchs
- Data
- Repository
- Response
- Di
- Ui
- Adapter
- ViewState
- Data
- Heroes
- Write tests
- Implement feature strong x week
- Patch screen improvement
- Code cleanup
Designed and developed by .fingerfire - 2023
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.