A beautiful, Instagram-inspired daily quote discovery app built with Kotlin & Jetpack Compose ❤️
A personal Android project using ZenQuotes API
Features • Screenshots • Tech Stack • Installation • Architecture
- 📜 Daily Quotes: Discover inspiring quotes from famous personalities
- ⬆️⬇️ Vertical Swipe Navigation: Instagram-style vertical paging for seamless quote browsing
- ❤️ Double-Tap to Like: Intuitive double-tap gesture with beautiful heart animation
- ⭐ Favorites Collection: Save your favorite quotes for later viewing
- 📤 Easy Sharing: Share quotes with friends via any messaging or social media app
- 🗑️ Swipe to Delete: Remove favorites with a smooth swipe-to-dismiss gesture
- Latest Material 3 Expressive Design: Beautiful, cohesive UI following Material You and new Expressive guidelines
- Instagram-Inspired Interface: Familiar and friendly user experience
- Smooth Animations: Delightful micro-interactions and transitions
- Dark Mode Support: Comfortable reading in any lighting condition
- Custom Typography: Elegant Funnel Display and Museo Moderno font families
- Language: Kotlin
- UI Framework: Jetpack Compose
- Minimum SDK: 33 (Android 13)
- Target SDK: 36
- Architecture: MVI (Model-View-Intent)
- Dependency Injection: Hilt/Dagger
- Navigation: Navigation 3 Compose
- Networking:
- Retrofit for API calls
- OkHttp for logging
- Gson for JSON parsing
- Local Database: Room
- API: ZenQuotes API
• Jetpack Compose (Material 3 Expressive, Navigation 3, UI)
• Hilt for Dependency Injection
• Retrofit & OkHttp for Networking
• Room for Local Database
• Kotlin Coroutines & Flow
• Material Icons Extended- Android Studio (Hedgehog | 2023.1.1 or later)
- JDK 21
- Android SDK 33+
-
Clone the repository
git clone https://github.com/Quantum3600/Quotd.git cd Quotd -
Open in Android Studio
- Open Android Studio
- Select "Open an Existing Project"
- Navigate to the cloned directory
-
Build the project
./gradlew build
-
Run on emulator or device
- Click the Run button or press
Shift + F10 - Select your target device
- Click the Run button or press
The app follows MVI (Model-View-Intent) architecture pattern with Clean Architecture principles:
📦 com.trishit.quotd
┣ 📂 data # Data layer (API, Database, Models)
┣ 📂 ui # UI layer (Screens, ViewModels)
┣ 📂 components # Reusable Compose components
┣ 📂 di # Dependency Injection modules
┗ 📂 theme # Material 3 theming
- HomeScreen: Main quote discovery screen with vertical pager
- FavouriteScreen: Collection of saved quotes
- QuoteViewModel: State management and business logic
- Room Database: Local persistence for favorites
- Retrofit Service: Network calls to ZenQuotes API
Uses VerticalPager from Jetpack Compose Foundation to create Instagram-like quote browsing:
val pagerState = rememberPagerState(initialPage = 1, pageCount = { 3 })Custom gesture detection with animated heart popup:
- Double-tap triggers favorite action
- Beautiful spring-based animation
- Smooth fade-in/fade-out effects
Material 3 SwipeToDismissBox for intuitive favorite removal:
- Swipe left or right to reveal delete action
- Heartbroken icon indicator
- Smooth dismissal animation
This app uses the ZenQuotes API to fetch inspirational quotes.
Endpoint: https://zenquotes.io/api/quotes
No API key required! 🎉
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under Apache License (version 2.0). Please check the Privacy Policy for data handling information.
Trishit Majumdar (@Quantum3600)
- 📧 Feel free to reach out for collaborations!
- ZenQuotes API for providing the quote data
- Jetpack Compose community for excellent resources
- All the inspiring personalities whose quotes make this app meaningful
Made with ❤️ using Kotlin & Jetpack Compose
⭐ Star this repo if you find it helpful!



