A gamified Android app to learn debugging skills by finding and fixing bugs in code.
- 30+ Debugging Challenges - Real-world bugs to solve
- 2 Learning Paths - Java Fundamentals & Loops/Control Flow
- Daily Challenges - New bug every day with bonus XP
- Achievement System - 20+ achievements to unlock
- Progress Tracking - XP , levels, streaks, stats
- 100+ Challenges - All difficulty levels
- 6 Learning Paths - Complete curriculum
- Battle Arena - Multiplayer competition
- Unlimited Practice - No daily limits
- Ad-Free Experience
- Detailed Analytics
- Lifetime Option - $99.99 one-time
- Android Studio Hedgehog or newer
- JDK 11+
- Android SDK 34
- A physical device or emulator (API 26+)
- Clone the repository
- Open in Android Studio
- Sync Gradle files
- Run on device/emulator
- The app seeds the database with 30 bugs on first launch
- Users start at Level 1 with 0 XP
- Daily challenges reset at midnight local time
-
Change Package Name
- Update
applicationIdinapp/build.gradle.kts - Example:
com.yourcompany.debugmaster
- Update
-
Create Signing Key
keytool -genkey -v -keystore release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias debugmaster
-
Configure Signing in Gradle
- Add to
gradle.properties:
RELEASE_STORE_FILE=../release-key.jks RELEASE_STORE_PASSWORD=your_password RELEASE_KEY_ALIAS=debugmaster RELEASE_KEY_PASSWORD=your_password - Add to
-
Update App Icon
- Replace icons in
app/src/main/res/mipmap-* - Use Android Studio Image Asset Studio
- Replace icons in
-
Set Up Google Play Console
- Create developer account ($25 one-time)
- Create new app listing
- Set up internal testing track first
-
In Google Play Console:
- Go to Monetize > Products > Subscriptions
- Create products with these IDs:
debugmaster_pro_monthly- $4.99/monthdebugmaster_pro_yearly- $39.99/year
- Create in-app product:
debugmaster_lifetime- $99.99 one-time
-
Testing:
- Add license testers in Play Console
- Use internal testing track
- Test purchase flows
-
Screenshots (2-8 per device type)
- Phone: 1080x1920 or 1920x1080
- Tablet 7": 1200x1920
- Tablet 10": 1600x2560
-
Feature Graphic
- 1024x500 PNG/JPEG
-
App Icon
- 512x512 PNG (32-bit with alpha)
-
Store Listing
- Short description (80 chars)
- Full description (4000 chars)
- Category: Education
- Tags: coding, programming, debugging, learning
You must have a privacy policy. Template included at docs/privacy-policy.md
app/
├── src/main/
│ ├── java/com/example/debugappproject/
│ │ ├── billing/ # Google Play Billing
│ │ ├── data/
│ │ │ ├── local/ # Room database
│ │ │ ├── repository/ # Data repositories
│ │ │ └── seeding/ # Initial data
│ │ ├── model/ # Data classes
│ │ ├── ui/ # Fragments & ViewModels
│ │ │ ├── home/
│ │ │ ├── learn/
│ │ │ ├── profile/
│ │ │ ├── subscription/
│ │ │ └── ...
│ │ └── util/ # Utilities
│ ├── assets/
│ │ └── bugs.json # Bug database
│ └── res/ # Resources
└── build.gradle.kts
- Architecture: MVVM with Repository pattern
- Database: Room (SQLite)
- DI: Hilt
- Navigation: Jetpack Navigation
- Billing: Google Play Billing Library 6.1.0
Track these for optimization:
bug_started- User begins challengebug_completed- Challenge solvedhint_used- Hint requestedpath_completed- Learning path finishedsubscription_viewed- Pro screen openedsubscription_purchased- Successful purchasesubscription_cancelled- Purchase cancelled
Edit app/src/main/assets/bugs.json:
{
"id": 31,
"title": "Your Bug Title",
"language": "Java",
"difficulty": "Easy|Medium|Hard",
"category": "Loops|Strings|etc",
"description": "What's wrong?",
"brokenCode": "code with bug",
"expectedOutput": "what should happen",
"actualOutput": "what actually happens",
"explanation": "why the bug occurs",
"fixedCode": "corrected code"
}{
"bugId": 31,
"level": 1,
"text": "First hint (vague)"
}This project is proprietary. All rights reserved.
For issues or feature requests, contact: your-email@example.com
Made with ❤️ for developers who want to master debugging!