Lottie World
A Lottie animations playground app to mess around with animations and clean architecture with MVVM.
Video
https://github.com/wajahatkarim3/LottieWorld/blob/main/art/LottieWorld.mp4
Features
- Loads the Featured, Recent, and Popular animations
- Allows users to add animations in Favorites
- Loads Featured Animators.
- Shows a list of news from the Blogs
- Allows users to Play/Pause/Control animation in details screen
- Allows users to scan QR code of animations and play in the app
- Allows users to share the URL of animation
- Comes in both light and dark mode.
- Creates a fake user logged in logout state for demo purposes.
📱
Download Demo on Android
Download the APK file from here on your Android phone and enjoy the Demo App :)
Architecture
- Built with Modern Android Development practices (MVVM)
- Utilized Repository and Usecase patterns for data
- Includes unit tests for Repository, ViewModels, Usecases, API Service response.
- Include unit test for the DAO and Room database.
🛠
Built With - Kotlin - First class and official programming language for Android development.
- Coroutines - For asynchronous and more..
- Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- LiveData - Data objects that notify views when the underlying database changes.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
- Navigation Components - For Navigation between screens with Fragments
- Dependency Injection
- Hilt - Easier way to incorporate Dagger DI into Android apps. This is in the main branch.
- Retrofit - A type-safe HTTP client for Android and Java.
- Material Components for Android - Modular and customizable Material Design UI components for Android.
- Gradle Kotlin DSL - For writing Gradle build scripts using Kotlin.
- MockK - For Mocking and Unit Testing
- Lottie - For Lottie Animations
- Zxing Barcode Scanner - For QR Code scanning
- Coil - For Image loading
👨
Developed By
Wajahat Karim