V
voltek/GameStack
Android game backlog app on the IGDB API (Kotlin, Compose, MVI, Clean Architecture) — and a live case study…
View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
- Star count
- 1 ★ · voltek/GameStack · read from the GitHub search API · (checked 2026-11-13 20:00:50)
- Source
- read directly from its GitHub page · type: open-source project
- Harvest history
- first seen 2026-10-29 · last seen 2026-11-14 · seen 17× · listed by 1 sources
- Score
- score 103 · 1 ★ · 1 sources · repo
FAQ (answers come from our records)
Who is it for?
We filed it under these tags: 开源项目. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository
voltek/GameStack;first catalogued 2026-10-29;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.# GameStack
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Native Android app for exploring video games and managing a personal game
library, using the IGDB API as the data source.
Search games, view details, organize personal lists, and rate what you've
played. Not a store, not a gaming platform — a catalog and personal library app.
Full product scope lives in docs/project/GameStack-Spec-v1.md.
Architectural/technical rules live in CLAUDE.md.
The repository tooling — what enforces those rules, and what was ruled out on the
way to it — is inventoried in docs/project/TOOLING.md.
## Tech Stack
Kotlin + Jetpack Compose (no XML)
MVI + Clean Architecture (UI / Domain / Data)
Retrofit + Kotlinx.serialization
Room — local persistence (lists, ratings)
Hilt — dependency injection
Coil — image loading
Navigation Compose (Safe-type routes)
Material3 — dark theme only for MVP
Locked to portrait orientation for MVP
## Running the project
1. Open the project in Android Studio.
2. Get IGDB/Twitch API credentials (Client ID + Secret) from the
Twitch Developer Console.
3. Add them to local.properties (not checked into git):
properties
IGDBCLIENTID=yourclientid
IGDBCLIENTSECRET=yourclientsecret
4. Sync Gradle and run the app configuration on a device/emulator
(min SDK 26).
./gradlew build # build
./gradlew test # unit tests
./gradlew lint # lint
The same three run on GitHub Actions for every pull request and every push to
main — see .github/workflows/gate.yml. No API
credentials are needed there: local.properties is optional, the build falls
back to empty values, and nothing in the gate calls IGDB. It does still need the
network — Gradle resolves dependencies, and Robolectric fetches its own SDK jar
at test runtime.
## Current status
✅ Project scaffold: Hilt/Compose setup, theme, bottom nav shell
(Home / Search / Library)
✅ IGDB OAuth pipeline: Twitch client-credentials auth, token caching
and auto-refresh, request interceptor
✅ Search: debounced query pipeline, results/empty/error states, pull-to-refresh
with a non-destructive refresh-error banner (stale results stay on screen),
Compose screen tests under Robolectric
library, using the IGDB API as the data source.
Search games, view details, organize personal lists, and rate what you've
played. Not a store, not a gaming platform — a catalog and personal library app.
Full product scope lives in docs/project/GameStack-Spec-v1.md.
Architectural/technical rules live in CLAUDE.md.
The repository tooling — what enforces those rules, and what was ruled out on the
way to it — is inventoried in docs/project/TOOLING.md.
## Tech Stack
Kotlin + Jetpack Compose (no XML)
MVI + Clean Architecture (UI / Domain / Data)
Retrofit + Kotlinx.serialization
Room — local persistence (lists, ratings)
Hilt — dependency injection
Coil — image loading
Navigation Compose (Safe-type routes)
Material3 — dark theme only for MVP
Locked to portrait orientation for MVP
## Running the project
1. Open the project in Android Studio.
2. Get IGDB/Twitch API credentials (Client ID + Secret) from the
Twitch Developer Console.
3. Add them to local.properties (not checked into git):
properties
IGDBCLIENTID=yourclientid
IGDBCLIENTSECRET=yourclientsecret
4. Sync Gradle and run the app configuration on a device/emulator
(min SDK 26).
./gradlew build # build
./gradlew test # unit tests
./gradlew lint # lint
The same three run on GitHub Actions for every pull request and every push to
main — see .github/workflows/gate.yml. No API
credentials are needed there: local.properties is optional, the build falls
back to empty values, and nothing in the gate calls IGDB. It does still need the
network — Gradle resolves dependencies, and Robolectric fetches its own SDK jar
at test runtime.
## Current status
✅ Project scaffold: Hilt/Compose setup, theme, bottom nav shell
(Home / Search / Library)
✅ IGDB OAuth pipeline: Twitch client-credentials auth, token caching
and auto-refresh, request interceptor
✅ Search: debounced query pipeline, results/empty/error states, pull-to-refresh
with a non-destructive refresh-error banner (stale results stay on screen),
Compose screen tests under Robolectric
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[](https://anclum.com/en/s/voltek-gamestack/)
- Source
- github · https://github.com/voltek/GameStack
- Browse by field
- Open source
- Traction
- 1 ★
- added
- today
More like this
Filed under
Every tag opens the full list for that filter. Counts are the live catalogue figures.