Mapping Out Which Bin Decision Tree
Mapping Out Which Bin Decision Tree
The logical flow for the Which Bin app ended up being much more complicated than I imagined when setting out to build the app.
This flowchart captures all the decision branches users can take, from first launch through ongoing app usage, including edge cases like permission denial, GPS timeout, location validation, and error recovery scenarios.
Key Decision Points & User Paths:
π App Launch Flow
- βEntry Pointβ: App determines if user has confirmed address
- βTwo Main Branchesβ: Existing users go to main app, new users see welcome screen
π± Onboarding Flow
- Welcome Screen β User taps βGet Startedβ
- βLocation Permission Handlingβ:
- Not determined β Show permission request
- Already denied/restricted β Show denied screen with manual entry option
- Already granted β Skip to GPS resolution
- βGPS Resolution with 15-Second Timeoutβ:
- Success within 15s β Location validation
- Timeout β Allow manual entry
- Error β Permission denied path
- βLocation Validation (Graduated)β:
- Within Guildford Borough β Address confirmation screen
- Outside Guildford but in UK β Outside service area screen
- Outside UK β International outside service area screen
- βAddress Confirmationβ:
- Show loading spinner while data loads
- Display map + postcode when ready
- WebView address selection
- Store address with UPRN
- Completion Screen β βStart Using WhichBinβ β Main app
βοΈ Settings & Manual Postcode Entry
- Manual postcode entry from outside service area
- Settings access from main app
- Postcode validation and updates
- Full data reset option (returns to welcome screen)
π Main App Navigation
- Bin Schedule Display (primary interface)
- βUser Actionsβ:
- Settings access
- Location tap β Settings with postcode focus
- Pull to refresh collection data
- View collection details
- Error Handling with retry options
π Key Features Highlighted:
- 15-second GPS timeout with automatic fallback
- Graduated location validation (Guildford β UK β International)
- Loading spinners during address data resolution
- Manual entry options at multiple decision points
- Data reset functionality that returns users to onboarding
- Error recovery paths throughout the app
This post is licensed under CC BY 4.0 by the author.