An elegant, modern Android application to explore, save, and like inspirational quotes using Jetpack Compose. It supports offline persistence, search, categories, and synchronization with a local JSON backend.
Layer | Technology |
---|---|
Language | Kotlin |
UI | Jetpack Compose, Material 3 |
State | ViewModel, StateFlow, Coroutines |
Persistence | Room (SQLite) |
Dependency Injection | Manual |
Network/Backend | Retrofit (JSON-based local fetch) |
Gradle Version | Kotlin DSL |
Min SDK | 24 |
📂 app/
├── data/ # Data models (Quote, Category, etc.), Room DB, Retrofit APIs, Repository
├── ui/
│ ├── screen/ # Screen composables (SearchScreen, LikedQuotes, etc.)
│ └── theme/ # Centralized theme for the application
├── viewmodel/ # QuoteViewModel with all app logic
├── SplashActivity.kt # Optional splash screen activity
└── MainActivity.kt # App entry point
- View Quotes by Category
- Like and Save Quotes (stored locally)
- Powerful Keyword Search
- On-Demand Sync with JSON Data
- Clean & Adaptive Jetpack Compose UI
For simplicity and offline-first approach:
- Quotes are fetched from a static JSON file stored locally or hosted on GitHub.
- On first app launch or manual sync, existing DB records are compared, and only new quotes are added (preserving likes/saves).
- JSON is parsed via Retrofit with a simple
@GET
endpoint for fetching the quote list.
[
{
"id": 1,
"text": "Your heart is the size of an ocean...",
"author": "Rumi",
"category": "Love"
}
]
- Clone the repository
- Open in Android Studio
- Build the project
- Run on an emulator or device (API 24+)
Developed with ❤️ by an experienced Full Stack Developer with 8+ years of experience in backend and modern Android UI. I specialize in delivering end-to-end product solutions clients truly love.