Field and workforce applications
Job dispatch, inspections, asset capture, signatures, photographs and forms, built for gloved hands, bright sunlight and no connection.
Data capture is designed so a partly completed job survives a dead battery, an app kill and a shift change without the engineer retyping anything.
A job that can be finished without a bar of signal.
Customer-facing applications
Accounts, ordering, bookings, self-service and notifications, with the onboarding path treated as the part most users will judge you on.
Accessibility and larger text sizes are handled in the layouts from the start, because retrofitting them into finished screens means rebuilding them.
An application a first-time user can finish a task in.
Offline and synchronisation
Local storage, queued writes, conflict resolution rules agreed with the business, and a sync state the user can actually see.
Conflict rules are a business decision rather than a technical default. Last write wins is a choice, and someone senior should make it knowingly.
Sync behaviour that is explainable when it surprises someone.
Cross-platform delivery
React Native and Flutter where one codebase is the right economics, with native modules written where the platform APIs demand it.
We will recommend native when the application leans on hardware, background behaviour or platform integration, and say why rather than defaulting either way.
A platform choice with the reasoning written down.
Backend and integration
The APIs behind the application: authentication, push notifications, sync endpoints, and integration into the systems already holding the data.
Mobile clients cannot be force-updated in the field, so interfaces are versioned and older clients keep working through a release.
A backend that tolerates old app versions in the wild.
Store release management
Signing and certificate lifecycle, provisioning, review submissions, phased rollout, crash monitoring and the fix release that follows.
Certificate and provisioning expiry is inventoried and alerted, because that is the release-day outage almost every mobile team has had once.
Releases that are a process rather than an event.