This is an Android mobile application developed as part of the university subject "Mobile Apps Development". It has 2 main parts: discovery of new cat breeds and a quiz about the cat breeds.
Catapult consists of 4 main segments:
-
User Segment:
- Creating a local account on the first run of the app
- Profile screen: profile details and history of played games
- Edit profile details screen
-
Cat Breeds Segment:
- Breeds list screen: list of all cat breeds, complete with previews and a search option
- Breed details screen: detailed information about the selected breed
- Gallery of breed photos
- Photo viewer
-
Leaderboard Segment:
- Leaderboard screen: list of published games on the global leaderboard, sorted descending by score
-
Quiz Segment:
- Start quiz screen: button to start the quiz
- Quiz screen: quiz consists of 20 questions (image of a cat and a question about it with 4 offered answers). The questions are generated randomly when the user starts the quiz. The questions include:
- Which breed is the cat?
- Which temperament belongs to this cat?
- Which temperament does not belong to this cat?
- Model-View-Intent (MVI) pattern for architecture
- Kotlin Coroutines for asynchronous programming
- Jetpack Compose for the user interface
- Jetpack Room for the database
- Jetpack DataStore for storing the local user profile
- Hilt Dependency Injection for dependency management
- Light and Dark Theme utilizing Material Design 3 from Jetpack Compose
- App Drawer Navigation for navigating the app
- Animations for the transition between quiz questions
Local SQLite database using Jetpack Room. All the information is kept in the database, except the local user profile information which is kept in the DataStore. Database schema can be seen here.
Two APIs were used: The Cat Api and Leaderboard Api.