🎌 Random Anime Quotes - Get inspiring quotes from your favorite anime characters 🖼️ Beautiful Character Images - Each quote comes with stunning anime character artwork 🎨 Modern Material Design 3 - Clean, elegant UI with smooth animations 📱 Responsive Design - Optimized for all Android screen sizes 🔄 Swipe to Refresh - Intuitive gesture controls for new quotes ⚡ Fast & Reliable - Robust error handling and network resilience 🌙 Dark Theme - Eye-friendly dark interface with gradient backgrounds
- Android Studio Arctic Fox or later
- Android SDK 24+ (Android 7.0)
- Kotlin 1.8+
-
Clone the repository
git clone https://github.com/yourusername/quotopia.git cd quotopia -
Open in Android Studio
- Launch Android Studio
- Select "Open an existing project"
- Navigate to the cloned directory
-
Build and Run
./gradlew installDebug
- Launch the app - Quotopia will automatically load a random anime quote
- Get new quotes - Tap the "New Quote" button or swipe left/right
- Enjoy the experience - Each quote includes character name and anime series
- Retry on errors - If network issues occur, tap "Try Again"
Quotopia follows modern Android development best practices:
- UI Framework: Jetpack Compose with Material Design 3
- Architecture: MVVM (Model-View-ViewModel)
- Networking: Retrofit + OkHttp with Gson
- Concurrency: Kotlin Coroutines + StateFlow
- Image Loading: Coil for async image loading
- Dependency Injection: Manual DI with Repository pattern
app/
├── src/main/java/com/ryuken/quotopia/
│ ├── data/
│ │ ├── Quote.kt # Data models
│ │ └── QuotesRepository.kt # Data layer
│ ├── network/
│ │ ├── QuotesApiService.kt # API interface
│ │ ├── WaifuApiService.kt # Image API interface
│ │ └── RetrofitClient.kt # Network configuration
│ ├── viewmodel/
│ │ └── QuoteViewModel.kt # Business logic
│ └── MainActivity.kt # UI components
└── ...
- Animechan API - Anime quotes database
- Waifu.pics API - Anime character images
- Elegant card design with rounded corners
- Animated quotation marks with glow effects
- Typography hierarchy for quote text and attribution
- Character and anime series information
- Smooth loading animations with progress indicators
- Engaging loading messages and emoji
- Seamless state transitions
- User-friendly error messages
- Retry functionality with animated buttons
- Network-specific error descriptions
- Connection timeout: 15 seconds
- Read timeout: 20 seconds
- Automatic retry with exponential backoff
- Comprehensive error handling for various network conditions
- Efficient image caching with Coil
- Coroutine-based async operations
- Memory-conscious logging levels
- Optimized recomposition in Compose
Quotopia includes robust error handling for:
- ❌ Network connectivity issues
- ⏱️ API timeout scenarios
- 🔄 Rate limiting (429 errors)
- 🖥️ Server unavailability
- 📱 Malformed API responses
- 🔒 Null safety throughout the app
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Kotlin coding conventions
- Use meaningful variable and function names
- Add comments for complex logic
- Ensure proper error handling
This project is licensed under the MIT License - see the LICENSE file for details.
- Animechan API for providing the anime quotes database
- Waifu.pics for beautiful anime character images
- Android Jetpack Compose team for the amazing UI toolkit
- Material Design team for the design system
If you encounter any issues or have questions:
- 🐛 Report bugs
- 💡 Request features
- 📧 Contact: [email protected]
Made with ❤️ and ☕ by [Your Name]
"The only way to do great work is to love what you do." - Steve Jobs