Inspiration : I wanted a lightweight, fast, and native Android way to track my backlog without bloated social features or cluttered interfaces.
What it does: GameTracker allows users to add games, categorize them into statuses (Backlog, Playing, Completed), and search their collection instantly. It operates on a freemium model: users can track up to 5 games for free. Adding a 6th game triggers a RevenueCat-powered paywall, offering a lifetime "Pro" unlock for unlimited tracking.
How we built it: App is built natively for Android using Kotlin and Jetpack Compose. State management is handled through Compose's reactive data flows (State Hoisting). For local persistence, we utilized SharedPreferences and Gson to serialize the game lists directly to the device. We integrated the RevenueCat SDK (purchases and purchases-ui) to manage user entitlements and subscription logic.
Challenges we ran into: Gradle & Memory Issues: Integrating the RevenueCat SDK initially crashed our builds due to JVM heap space limits. We had to manually configure gradle.properties to allocate 2GB of memory to the Gradle daemon.
Accomplishments that we're proud of: Successfully navigating complex SDK dependency issues and building a bulletproof workaround for the hackathon. We engineered a custom Jetpack Compose "Mock Paywall" that intercepts the RevenueCat limit, simulates a successful purchase, saves the Pro state persistently, and instantly unlocks the UI—allowing us to demonstrate the architecture without paying store fees.
What we learned: A deep dive into Gradle memory management, Jetpack Compose reactive filtering (combining tab states with search queries without excessive recomposition), and the strict platform realities of integrating production billing SDKs outside of live app store environments.
What's next for Untitled: Upgrading from local JSON storage to a cloud database, integrating the IGDB API to automatically pull official game box art, and eventually launching officially on the Google Play Store with live RevenueCat transactions.
Built With
- kotlin
Log in or sign up for Devpost to join the conversation.