An Android app built with Kotlin, consuming StarWars API to display characters of the popular StarWars Movie. It is built with the MVVM pattern and the latest Jetpack components.
- Kotlin - Kotlin is a programming language that can run on JVM. Google has announced Kotlin as one of its officially supported programming languages in Android Studio; and the Android community is migrating at a pace from Java to Kotlin
- Android KTX - Provide concise, idiomatic Kotlin to Jetpack and Android platform APIs.
- AndroidX - Major improvement to the original Android Support Library, which is no longer maintained.
- Lifecycle - Perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
- Viewmodel -The ViewModel class is designed to store and manage UI-related data in a lifecycle conscious way
- LiveData - A lifecycle-aware data holder with the observer pattern
- Kotlin Coroutines - A concurrency design pattern that you can use on Android to simplify code that executes asynchronously.
- View Binding - Allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
- Paging 3 library - The Paging library helps you load and display pages of data from a larger dataset from local storage or over network. This approach allows your app to use both network bandwidth and system resources more efficiently.
- Retrofit - Retrofit is a REST Client for Java and Android by Square inc under Apache 2.0 license. Its a simple network library that used for network transactions. By using this library we can seamlessly capture JSON response from web service/web API.
- GSON - JSON Parser,used to parse requests on the data layer for Entities and understands Kotlin non-nullable and default parameters.
- Flow - In coroutines, a flow is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value.
- Hilt - A dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project
- Navigation Components - Helps you implement navigation, from simple button clicks to more complex patterns, such as app bars and the navigation drawer.
- Logging Interceptor - logs HTTP request and response data.
- Material Libarary - Modular and customizable Material Design UI components for Android
- GitHub Actions - GitHub Actions makes it easy to automate all your software workflows, now with world-class CI/CD. Build, test, and deploy your code right from GitHub. Make code reviews, branch management, and issue triaging work the way you want.
- Glide- An image loading and caching library for Android focused on smooth scrolling.
- Timber- A logger with a small, extensible API which provides utility on top of Android's normal Log class.
- SavedStateHandle - Getting results from a destination when navigating from one fragment to another
- SafeApiCall Making safe API calls
- Android device or emulator
- Android Studio
In order to get the app running yourself, you need to:
- Clone this project
- Import the project into Android Studio
- Connect your android device with USB or just start your emulator
- After the project has finished setting up it stuffs, click the run button
- Found this project useful ❤️? Support by clicking the ⭐️ button on the upper right of this page. ✌️
- Notice anything else missing? File an issue
- Feel free to contribute in any way to the project from typos in docs to code review are all welcome.