Mobile App
BESSE ships a cross-platform mobile app for iOS and Android, built from a single codebase, so every stakeholder — municipalities, haulers, facilities, brokers — can participate from the field, not just a desk.
What it does
- Marketplace on the go — browse live auctions, create listings (photos, material type, quantity), and bid directly from the phone. The municipal marketplace and a non-municipal "Organic" stream (agricultural, food & organic, industrial materials) are separate tabs.
- Sign in like any app — Google or email login; a secure embedded wallet is provisioned automatically (see Authentication). Bids and purchases are signed by the user's own wallet.
- Live shipment tracking — when a sale leads to a delivery, the app shows the shipment on a live map with driver location updates and ETA, and lets drivers capture proof-of-delivery photos (compressed on-device for reliability on poor connections).
- Landfill directory & disposal requests — for material that can't be sold, users can browse a landfill directory (list or map view), request disposal quotes, and negotiate through an in-app message thread with a clear status flow (pending → quoted → accepted → completed).
- Impact dashboard — the same EPA WARM environmental metrics as the web app, on mobile charts.
Built for real-world conditions
The app's users are often standing in yards, warehouses, and truck cabs, so offline tolerance is a design principle rather than an afterthought:
- The app always opens signed-in: session, settings, and reference data (materials catalog, exchange rate) persist on-device.
- Live screens render from a local cache when offline and re-sync automatically on reconnection.
- Photo uploads compress first and retry with backoff on weak signal.
- Long-running payment operations (on-chain confirmations take 60–90 seconds) are staged and resumable, so a dropped connection resumes mid-flow instead of restarting.
Technology
| Layer | Choice |
|---|---|
| Framework | React Native (Expo) with TypeScript, New Architecture enabled |
| Navigation | Expo Router — file-based routes with deep linking |
| State | Redux Toolkit (patterns shared with the web app) + on-device persistence |
| Live data | Firestore subscriptions — updates are pushed to screens, never polled |
| Native capabilities | Apple Maps / Google Maps, GPS location, camera & QR scanning, secure storage, native crypto module for wallet operations |
| Distribution | iOS TestFlight and Android internal track, via an automated one-command release pipeline |
The mobile app deliberately contains no smart-contract ABIs: all privileged blockchain operations go through the same cloud functions as the web app, so contract upgrades never require a mobile release.