Bogadex is a minimalist yet functional Android application showcasing modern development standards with a focus on clean architecture, code quality, and progressive enhancements. It uses the BoardGameGeek API to explore, filter, and present board game collections elegantly.
Bogadex is a side project crafted with passion. It aims to demonstrate modern Android practices using Jetpack Compose, Material 3, and a scalable architecture. The app is a playground for exploring new concepts while keeping things simple, robust, and open.
- Browse your BoardGameGeek collection
- Sort and filter your games with Compose UI
- Background data refresh & sync with Work Manager
- Dark mode with Material 3 dynamic theming
- Offline access via Room & caching
- Android & Community best practices oriented
- Full MVVM with a modular, scalable structure
- Built-in CI/CD with quality gates (lint, test, sonar)
Area | Tools & Libraries |
---|---|
Language | Kotlin (100%) |
UI | Jetpack Compose, Material 3 |
Architecture | MVVM β MVI, Repository, UseCases |
Dependency DI | Koin |
Data Layer | Room, Retrofit (soon Ktor), DataStore |
Asynchronous | Kotlin Flow, Coroutines, Work Manager |
Image Loading | Coil |
Build Tools | Gradle (optimized), GitHub Actions |
Quality | KtLint, Spotless, Unit & Instrumentation Tests, Kover, SonarCloud |
Bogadex adheres to:
- Conventional Commits for clarity and semantic versioning.
- SemVer for meaningful releases.
- CI-enforced formatting via Spotless/KtLint.
- Clear module boundaries by feature and responsibility.
The project embraces automated testing and code quality:
- Unit & instrumentation tests
- Linting on commit
- SonarCloud coverage & code smell detection
- GitHub Actions for validation pipelines
- Code coverage with Kover
This project evolves gradually in spare time. Here are upcoming explorations:
- π§© Widgets (Glance + Compose) β guide
- π Retrofit β Ktor β migration article
- ποΈοΈ UI/UX improvements β cookbook
- π§ Navigation - Migrate to jetpack navigation 3
- π Performance improvements β video
- π Rewrite test structure & introduce test automation
- 𧨠Global error handling with local logs technical and use friendly message overridable
- βΏ Accessibility optimisations
Bogadex follows a Clean Architecture and modular approach:
- MVVM + MVI for UI logic
- UseCases as business logic orchestration
- Modular structure per feature
- Repository pattern for separation of concerns
Bogadex uses the BoardGameGeek XML API to query data from the largest board game database.
The API provides rich details (titles, thumbnails, stats, etc.) through REST-like XML endpoints.
Bogadex is inspired by many developers, creators, and open-source projects that share knowledge generously:
-
Jaewoong Eum (skydoves) Creator of Pokedex and many other modern Android examples. Inspiring clean architecture and Compose integrations.
-
Philipp Lackner Developer advocate and educator β YouTube Channel Clear and insightful videos on advanced Android patterns, KMM, DI, Compose, and testing.
-
Rocket.Chat (open source messaging platform) Reference for scalable architecture and community-led development.
-
Pokedex by skydoves A well-designed Android app using Jetpack Compose, Hilt, and modern UI patterns.
Bogadex is a personal project made with β€οΈ on personal time. If you find it useful, feel free to support via Ko-Fi. It helps with tools, hosting, and motivation!
This project is licensed under the terms of the BSD 3-Clause.