CleverCards is a simple flashcard application. It is designed to help users learn and memorize information more effectively. The application allows users to create, edit, and delete flashcards, as well as quiz themselves on the flashcards they have created.
Technologies Used
Jetpack Compose
Material 3
Firebase
Authentication
Firestore
Cloud Storage
OpenAI API
DALL·E 3
Coil
Image loading
Features
Login with Google or email/password (using Firebase Authentication)
Create flashcard decks
Decks can have a title, description, and be set to public or private
Decks can have a cover image that can be generated by OpenAI's DALL·E 3 or uploaded from the user's device
Flashcards can have question text, answer text, and images for both the question and answer
Practice flashcard decks
Practice mode allows users to flip through flashcards
Users can see their recently practiced decks
Home Page
Shows a grid of user's decks and all public decks
Learning Outcomes
Building CleverCards provided a meaningful exploration of native Android development. I gained a deeper appreciation for working with native frameworks like Jetpack Compose, especially compared to cross-platform solutions like Flutter. The experience taught me:
The power of native development: I found that building with Jetpack Compose offered greater control over UI elements and tighter integration with Android’s ecosystem, leading to a smoother, more seamless user experience.
Balancing functionality with simplicity: Developing an app with features like image generation via OpenAI’s DALL·E 3 while maintaining a clean, intuitive user interface challenged me to prioritize usability without overcomplicating the design.
Problem-solving in real-world scenarios: Integrating Firebase for authentication and database management made me think about data consistency, security, and user privacy on a deeper level.