~/openarch/services/mobile-apps-// service

Mobile apps for people who are not at a desk

The apps we build are mostly used standing up: on a shop floor, in a clinic corridor, in a warehouse with no signal. That constraint decides the architecture far more than the feature list does.

//the real conditions

Offline is the normal case, not the edge case

An app that assumes connectivity fails exactly when it matters - during a stock count in a basement, at a site visit, on a train. We design for intermittent networks from the start: actions are captured locally and committed when the connection returns, and the interface is honest about what has synced and what has not.

That turns out to require real thought rather than a library. Two people editing the same record offline will conflict, and the resolution rule has to come from the business, not from whichever write happened to land second. We decide those rules with you, write them down, and make them visible in the app rather than silently discarding someone's work.

The same discipline applies to the device itself. We test on mid-range Android handsets several years old, because that is what the people doing the work are actually holding.

//native or cross-platform

Choosing the platform honestly

Most business apps do not need separate native codebases. Flutter and React Native both produce apps that feel native for the kind of interface most operations work requires, from one codebase, which halves the ongoing cost of every feature you add afterwards.

Native is the right answer when you are deep in platform capability - sustained background location, heavy camera or sensor work, tight integration with platform payment or health frameworks. We will say which case you are in and why, and the reasoning should survive you repeating it to someone else.

Either way the app is one client against a documented API, not a monolith with the business logic smeared across the interface. That is what makes it possible to add a web dashboard or a second app later without rebuilding the core.

//shipping and after

Store submission, releases and the long tail

App Store and Play Console submission is a process with its own failure modes - privacy declarations, data safety forms, permission justifications, review rejections that arrive without useful detail. We handle it, and we publish under your developer accounts so you own the listings and the signing keys.

Releases go out on a cadence rather than when something breaks. Crash reporting and analytics are in place at launch, so a regression on one Android variant surfaces from telemetry instead of from a phone call.

An app is a long commitment. iOS and Android ship breaking platform changes every year, and an app nobody maintains stops installing cleanly within about two. We would rather agree the maintenance arrangement at the start than have that conversation in year three.

We build from Mumbai, and for the operations apps that make up most of this work we would rather spend the first day with the people who will use it than take the requirements secondhand.

//what you get

What ships with the build

  • 01

    Offline-first where it matters

    Local capture with explicit sync state and conflict rules you decide, not whichever write landed last.

  • 02

    Tested on the real device

    Mid-range Android handsets several years old, on a congested network - the conditions the work actually happens in.

  • 03

    One codebase where that fits

    Flutter or React Native when cross-platform is right, native when the platform capability genuinely demands it.

  • 04

    Your accounts, your keys

    Published under your App Store and Play Console identities, with signing keys handed to you.

  • 05

    Telemetry from day one

    Crash reporting and analytics live at launch, so regressions surface from data rather than from a complaint.

//questions

Questions we are actually asked

The main drivers are the number of distinct user roles, whether it works offline, and how many external systems it talks to. A single-role app over an existing API is a different order of work from a multi-role app with offline sync and payments. We scope those dimensions separately so you can see which one is driving the number and decide what to cut.

Cross-platform for most business and operations apps, because one codebase halves the cost of every future feature. Native when you need sustained background location, heavy camera or sensor work, or deep platform payment and health integrations. The decision should be defensible in a sentence; if it is not, it is probably being made for the wrong reason.

Yes, including the privacy and data safety declarations that cause most first-time rejections. We publish under your developer accounts rather than ours, so the listings, reviews and signing keys belong to you from the first release.

Yes, and for field and floor apps it should. Actions are captured locally and committed when connectivity returns, with sync state visible in the interface. The part that needs your input is the conflict rule - what should happen when two people edited the same record offline - because that is a business decision, not a technical one.

Budget for it deliberately. iOS and Android both ship breaking changes annually, SDKs reach end of life, and an unmaintained app stops installing cleanly within roughly two years. A maintenance retainer that covers platform updates, dependency upgrades and crash triage is far cheaper than the rebuild that replaces it.

Tell us what you are trying to build.

A short first conversation, no deck. If we are the wrong studio for it we will say so and point you somewhere better.