๐
LOL-Champs
If this project is useful, please give it a star
โญ
A Android Sample App with champion information of the League of Legends(LOL) using Android Jetpack.
LOL-Champs is a small demo application based on modern Android application tech-stacks and MVVM architecture. Especially, This project focused on StateFlow
, not LiveData
, which is available with AAC DataBinding from the Android Studio Arctic fox version.
Also this project fetch data from the network and cache data into the local database.
๐
Android Studio IDE setup
For development, the latest version of Android Studio is required. (At least Arctic Fox version)
๐
Used Libraries
- Foundation - Components for core system capabilities, Kotlin extensions and support for multidex and automated testing.
- AppCompat - Degrade gracefully on older versions of Android.
- Android KTX - Write more concise, idiomatic Kotlin code.
- Architecture - A collection of libraries that help you design robust, testable, and maintainable apps. Start with classes for managing your UI component lifecycle and handling data persistence.
- Data Binding - Declaratively bind observable data to UI elements.
- Lifecycles - Create a UI that automatically responds to lifecycle events.
- Room - Access your app's SQLite database with in-app objects and compile-time checks.
- ViewModel - Store UI-related data that isn't destroyed on app rotations. Easily schedule asynchronous tasks for optimal execution.
- UI
- Material - Build beautiful, usable products using Material Components for Android
- Third party and miscellaneous libraries
- Glide - for image loading
- Hilt - for dependency injection
- Retrofit - A type-safe HTTP client for Android and Java.
- Kotlin Coroutines - for managing background threads with simplified code and reducing needs for callbacks
- CarouselRecyclerView - for creating carousel recyclerview
โจ
MAD Scorecard
๐
Architecture
LOL-Champs is based on MVVM design pattern and repository pattern
๐ก
Change LOL's Version
LOL-Champs uses the LOL API to load data. If you want update the API version, update the value LOL_VERSION
in the build.gradle
file of the app module.
buildConfigField "String", "LOL_VERSION", '"11.16.1"' // change this version
๐ก
Non-Goals
The focus of this project is on Android Jetpack and the Android framework. Thus, there are no immediate plans to implement features outside of this scope.
๐ท
Screenshots
โ๏ธ
License
Designed and developed by 2021 KimReady (JunBi Kim)
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.