Case study · 02
Innings pro
An offline-first cricket scorer for Android and iOS built in Flutter. Set up a match, squads and toss, score every ball with one tap, check the full scorecard and share the result as an image — with no account and no signal needed. Everything is stored on the device in SQLite.

The challenge
Local cricket is scored on paper or in apps that need an account and a signal — often missing at the ground. The client wanted a scorer that opens and works anywhere, takes one tap per ball, and turns a finished match into a result worth sharing.
What I built
- 01
Match setup wizard
Create a match, pick the overs, add both squads (reusing saved teams), record the toss and officials — a step-by-step flow driven by GoRouter.
- 02
Ball-by-ball scoring
A scoring pad for runs, boundaries, wickets and extras, with the current over, batters, bowler figures and run rate always on screen, and undo for any ball.
- 03
Scorecards and results
Full batting and bowling cards per innings, built from the ball log, and a result screen with the margin, top scorer and best bowling figures.
- 04
Shareable result card
The result renders to an image off screen and shares to WhatsApp or anywhere else, with the match title, scores and standout performances.
- 05
Offline by design
Drift and SQLite are the single source of truth for matches, squads and balls. There is no server or sign-in; the only network traffic is consent-gated ads.
Screens

Ball-by-ball scoring 
Full scorecard 
Match result 
Welcome screen 
Shareable result card
Tech stack
- Flutter
- Dart
- Bloc
- GoRouter
- Drift
- SQLite
- Google Mobile Ads
Outcome
- Works entirely offline — no account, no API and no match data leaving the device.
- Clean Flutter architecture with Bloc, GoRouter and custom lint rules that enforce the project’s conventions.
- Unit, bloc, widget and migration tests, plus a device smoke test, run through one quality gate.
Next case study
Fifteen flowersGet in touch
Open for freelance projects, contract roles and collaborations — mobile apps and full-stack products in particular. WhatsApp gets the fastest reply.
- Phone
- +91 70488 09875
- Based in
- Rajkot, Gujarat, India
- Elsewhere