PocketScore is a modern, expressive, and user-friendly score-keeping application for Android. Built with Kotlin and Jetpack Compose, and designed with Google's Material Design 3 system, it offers a seamless experience for managing game nights, tracking scores, and celebrating victories.
PocketScore leverages Material Design 3 principles to provide a premium, cohesive user interface. The application is built with an offline-first architecture, ensuring data privacy and consistent performance without requiring an internet connection.
View screenshots at screenshots.
- Professional Scoring: High-performance in-app keyboard with tactile haptic feedback and gesture-based interactions.
- Adaptive Scoreboard: Support for Grid and List layouts with real-time leader and loser spotlighting.
- Strategic Insights: Pool probability calculations and performance-based player archetypes.
- Data Integrity: Automated local snapshots, manual backup management, and secure
.pscorefile portability. - Financial Utilities: Integrated match fee calculator with multiple settlement methods and live cost tracking.
- Deep Customization: Material You dynamic coloring, adjustable scoring rules, and customizable ball value presets.
For a detailed breakdown of all application capabilities, please refer to features.md.
- Language: Kotlin
- UI Framework: Jetpack Compose (Material Design 3)
- Navigation: Compose Navigation
- Architecture: MVVM with Clean Architecture principles
- State Management: ViewModel and StateFlow
- Persistence: DataStore and Kotlin Serialization
- Integrations: Firebase Firestore (Support), Firebase Analytics
The project follows a feature-first modular structure:
com.mwarrc.pocketscore
├── core/ # Core utilities and extensions
├── data/ # Repositories and data sources
├── domain/ # Domain models (Game, Player, History)
├── ui/ # UI Layer
│ ├── components/ # Reusable Compose components
│ ├── feature/ # Feature-specific screens
│ ├── theme/ # App theme and styling
│ ├── util/ # UI Utilities and helpers
│ └── viewmodel/ # ViewModels
└── util/ # App-wide Utilities and Analytics
- Android Studio (Latest Stable Release)
- JDK 17 or newer
-
Clone the repository
git clone https://github.com/mwarrc/PocketScore.git cd PocketScore -
Open in Android Studio
- Open Android Studio.
- Select "Open" and navigate to the cloned directory.
-
Build and Run
- Wait for Gradle sync to complete.
- Run the project with
Shift + F10on a connected device or emulator.
Contributions are welcome. Please follow the workflow below:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/your-feature-name). - Commit your changes with clear, descriptive messages.
- Push to your branch.
- Open a Pull Request for review.
PocketScore is open-source software licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
Built by mwarrc Jacob-Juma