All projects
Shipped
2026· Android Developer

GameHub

Android multi-game platform — 7 games, one account

gamehub.app
GameHub

Overview

Seven independently-designed casual games — Memory Match, Neon Dash, Piano Tiles, Photo Puzzle, Quiz Challenge, Rapid Tap, and Word Quest — sharing one account system, one leaderboard, and one modular codebase instead of seven disconnected apps.

Key features

  • Seven playable games behind a single sign-in
  • Cloud-synced player profiles via Firebase Auth and Firestore
  • Global leaderboards and per-game statistics
  • Modular Activity/Adapter/Model structure shared across all games

Architecture & engineering decisions

01

Modular architecture with reusable Activities, Adapters, Models, and Utility classes shared across all seven games

02

Firebase Authentication and Firestore for secure sign-in and cloud-synchronized profiles

03

Global leaderboards and score tracking backed by Firestore

04

Custom Views and touch handling per game (e.g. Piano Tiles timing, Neon Dash movement)

05

SharedPreferences for persistent local storage and offline score caching

Product gallery

View full gallery →
gamehub.app
GameHub global leaderboard
gamehub.app
GameHub Memory Match
gamehub.app
GameHub Neon Dash Runner
gamehub.app
GameHub Piano Tiles
gamehub.app
GameHub Photo Puzzle
gamehub.app
GameHub Quiz Challenge
gamehub.app
GameHub Word Quest
gamehub.app
GameHub personal statistics
gamehub.app
GameHub 3x3 memory grid
gamehub.app
GameHub 4x4 memory grid

Challenges & how I solved them

Sharing one profile, leaderboard, and stats system across seven independently-built games

Centralized profile and score logic into shared utility classes so every game wrote to the same Firestore schema instead of maintaining its own.

Implementing custom touch handling tailored to each game's mechanics within one app

Built game-specific custom Views on top of a shared base Activity, keeping only the interaction logic per-game while reusing navigation and profile chrome.

Keeping local SharedPreferences state reliably in sync with Firestore across sessions

Treated SharedPreferences as an offline cache and Firestore as source of truth, reconciling on app resume rather than writing to both on every event.

Lessons learned

  • A shared core (auth, profile, leaderboard) is what makes a multi-game app maintainable — without it, seven games become seven apps.
  • Designing for offline-first cache reconciliation early avoided painful retrofits later.

Stack

Kotlin
Android SDK
XML Layouts
Firebase Auth
Firestore
Games in one app7
RoleAndroid Developer
Year2026