This is an automated archive made by the Lemmit Bot.
The original was posted on /r/androiddev by /u/imaginativeshohag on 2025-01-28 19:55:04+00:00.
Hello everyone! 👋
I’m thrilled to share Why Not Compose!, one of my open-source showcase projects today. 🎉
What is “Why Not Compose!”?
It’s a collection of animations, compositions, and UIs built using Jetpack Compose—a sort of Compose cookbook, showcase, or playground. As an early adopter of Jetpack Compose, I’ve always enjoyed exploring its potential. While following official examples like the Now in Android open-source app, I found some implementations a bit complex. So, I was inspired to simplify and reimplement features in my way, storing finalized implementations in this repo.
The result? A repository that not only aids me in daily tasks but also allows me to quickly share implementations with my colleagues. I hope this resource can help you, too! 😊
Check it out
- 📂 GitHub: Why Not Compose!
- 📱 Google Play: Play Store Link (5k+ installs, 4.8 rating)
Notable Features
- MVVM Pattern
- Navigation Component
- Hilt
- Dark mode support
- Ready-to-use Compositions
- Material 3
- Gradle Kotlin DSL
- CI/CD
- ktlint, CodeQL
- Baseline profile generation
- Fastlane for Play Store publishing
- Animated Splash Screen (Introduced in Android 12)
App Sections
- Animations: Explore animations built with Compose APIs.
- Compositions: Ready-to-use Compose components—App bar, badge, list, dialogs, swipe-to-refresh, swipe-to-dismiss, etc.
- UIs: Prebuilt UI screens—Map view, OTP verification, web view, pager, and more.
- Tutorials: 15+ real-world examples of Compose solutions.
Screenshots
Some screenshots from the repository (Part 1)
Some screenshots from the repository (Part 2)
Tutorial Highlights
- Counter (Beginner): Simple counter implementation.
- Counter with ViewModel (Beginner): Counter with a ViewModel.
- AnimatedVisibility (Beginner): Animate UI using
AnimatedVisibility
. - Lottie (Beginner): Explore Lottie animations.
- Select and Crop Image (Intermediate): Pick and crop images with uCrop.
- Capture and Crop Image (Intermediate): Capture images via the camera app and crop using uCrop.
- Permission Handling (Beginner): Handle runtime permissions in Compose.
- Data Fetch & Paging (Advanced): Use the Android Jetpack Paging library.
- Tic-Tac-Toe (Advanced): A simple game with basic AI.
- ExoPlayer (Advanced): Integrate ExoPlayer with Compose.
- CMS (Advanced): Example of a Content Management System using “Go REST” APIs.
- Memory and Storage Caching
- Deep Link (Intermediate): Handle deep links.
- Navigation Data Pass (Intermediate): Pass data with the Navigation component.
- Reactive Model (Beginner): Reactive MVVM example.
- Baseline Profiles (Intermediate): Check install status using
ProfileVerifier
. - Barcode Scanner (Intermediate): Scan barcodes using Google Code Scanner and ML Kit.
How You Can Help
- Suggestions: I’d love your ideas for features or improvements.
- Contributions: Feel free to clone, fork, and contribute!
Please let me know what you think, and I hope you find this repository as useful as I do. 🚀
Happy coding! 🧑💻