Wishlister is a sleek, Steam‑themed mobile app built with Kotlin and Android Studio, A cataloging app designed for gamers to track, rate, and review their personal game collection, played or soon to be, AAA or indie!
⚠️ This is a student project built entirely from scratch to practice Kotlin, Firebase integration, and Android UI/UX design. While it reuses some core concepts I learned during my To Do List App project, the Wishlister app was developed independently from the ground up!
On launch, you arrive at Your Collection:
- A two‑column grid of tall, CD‑case‑style cards showing each game’s cover art made using Recycler Views.
- If your collection is empty, a friendly message prompts you to add games.
Tap Search Games to open a live‑search screen:
- Type to filter 100+ popular and indie titles in real time.
- Tap a result to add it instantly to your collection (marked “unplayed” by default).
Select any game card to view its Detail screen:
- Controller icon toggles between unplayed (white) and played (green).
- Review box lets you type and save short notes.
- Remove button deletes the game (and its review) from your collection.
- The background blends the game’s cover art into a Steam‑style gradient.
- Steam‑inspired gradient backgrounds, rounded cards, and pill‑shaped buttons.
- Logo fade‑in animation on the login screen.
- Adaptive layouts ensure everything looks great on phones of all sizes.
- Authentication (Would create a unique username & password for each user - anonymous testing for this demo).
- Realtime Database under
/users/{uid}/gamesstores:- Game ID, name, played status, and review tied to each unique user (So Users can log in anywhere and keep thier notes saved!).
- Live listeners keep your UI in sync whenever data changes.
Through building Wishlister, I gained hands‑on experience with:
- Kotlin fundamentals: data classes, null safety, ViewBinding, and Activity lifecycles
- RecyclerView & Adapters: creating custom view holders, handling click events, and grid layouts
- UI/UX Design: crafting custom drawables, gradient backgrounds, pill‑shaped buttons, and responsive layouts
- Firebase Integration: setting up Realtime Database listeners, writing and reading structured data, and basic Authentication flows
- Animations & Transitions: implementing fade‑in effects and visual polish for a more engaging user experience
- Debugging & Data Handling: filtering out null or orphaned entries, handling async callbacks, and improving app stability.
To run and build this project successfully, you’ll need the following setup:
- Android Studio
- Kotlin or Java (depending on your implementation)
- Android device or emulator for testing
| Dependency | Version |
|---|---|
agp |
8.1.0 |
kotlin |
2.0.21 |
core-ktx |
1.16.0 |
junit |
4.13.2 |
junitVersion |
1.2.1 |
espresso-core |
3.6.1 |
appcompat |
1.7.1 |
material |
1.12.0 |
activity |
1.10.1 |
constraintlayout |
2.2.1 |






