On this page
In short
- Choose browser, native or cross-platform by what the job needs offline and from the hardware, not by preference.
- Design offline-first where connectivity is patchy: a local store, an outbox of changes, idempotent sync and written conflict rules.
- On shared devices, give the device a limited identity and attribute every record to the person using it.
- Plan device management, private distribution and forced updates with IT before the first build, not at rollout.
What's different about apps for operations teams
- Connectivity is uneven. Metal buildings, freezers, basements, tanks and remote sites all create dead zones. The app has to keep working through them.
- Devices are shared. A tablet on a line or a handheld in a charging rack may be used by several people in a day.
- The hardware matters. Rugged Android handhelds with built-in scanners, tablets in cases, and phones used with gloves or in bright light.
- IT manages the device. Apps are installed, configured and updated through mobile device management, not the public app stores.
- The data feeds other systems. Inspections, readings, work orders and counts end up in databases, the MES or reports, and have to be trustworthy when they arrive.
If the app shows live machine data, our guide to getting plant data across the OT/IT boundary covers reading it without touching the control network; control actions stay in the control system. For office, sales and service staff, often on their own phones, see a mobile app for your staff.
Browser, native or cross-platform
Options for building a mobile app for plant-floor and field teams
Web app in the browser (optionally a progressive web app)
- Strengths
- Runs on any device, updates instantly, one codebase with your desktop screens
- Watch for
- Offline storage, background sync and hardware access vary by browser and are most limited on iOS
Native iOS (Swift, SwiftUI)
- Strengths
- Best performance and integration on iPhone and iPad: camera, notifications, background work, secure storage
- Watch for
- iOS only; a separate build if you also run Android devices
Cross-platform (React Native)
- Strengths
- One codebase for iOS and Android with native device access
- Watch for
- Some device features, such as vendor scanner SDKs, need native modules
Low-code platform
- Strengths
- Fast for simple forms if you already license it
- Watch for
- Offline behavior, scanner support and complex logic are limited to what the platform provides
| Option | Strengths | Watch for |
|---|---|---|
| Web app in the browser (optionally a progressive web app) | Runs on any device, updates instantly, one codebase with your desktop screens | Offline storage, background sync and hardware access vary by browser and are most limited on iOS |
| Native iOS (Swift, SwiftUI) | Best performance and integration on iPhone and iPad: camera, notifications, background work, secure storage | iOS only; a separate build if you also run Android devices |
| Cross-platform (React Native) | One codebase for iOS and Android with native device access | Some device features, such as vendor scanner SDKs, need native modules |
| Low-code platform | Fast for simple forms if you already license it | Offline behavior, scanner support and complex logic are limited to what the platform provides |
A browser app is often right for screens used on fixed, well-connected devices. A native or React Native app usually earns its place when people must keep working offline, when the app relies on scanners or the camera, or when it needs push notifications and background sync. Many rugged handhelds run Android, and their scanners are commonly reached either as keyboard input or through the manufacturer's SDK or intent-based services, so confirm the device model early.
Designing for offline work
Offline-first means the app reads from and writes to a store on the device, and synchronizes with the server whenever it can. The person using it never waits for the network to save their work.
Devices talk only to the API. They never connect directly to PLCs, historians or production databases.
- Client-generated IDs. Each record gets a unique ID on the device, so a change sent twice after a dropped connection is applied once.
- An outbox, in order. Pending changes are queued and sent in order, retried with back-off, and kept until the server confirms them.
- Visible sync status. People can see what's waiting to send and when the device last synchronized. Silent failures are how data goes missing.
- Reference data downloaded ahead. Lists of assets, lines, parts and checklists are cached with a version, so forms work offline and the server knows which version was used.
- Server-side validation too. The device checks entries as they're made, and the server checks them again, because the rules may have changed while the device was offline.
- Two time stamps. Record when the event happened on the device and when the server received it. Device clocks drift, so treat the device time as reported, not authoritative.
- Decide what must be online. Some actions, such as approvals or anything that depends on another person's latest change, may be better blocked offline with a clear message.
Conflict rules for each kind of record
When two people change the same thing while one of them is offline, the app needs a rule. Write the rules down per record type with the people who own the process, rather than letting the last sync win by accident.
Common conflict strategies for offline mobile apps
New entries: inspections, readings, counts, photos
- Typical strategy
- Append-only. Each is a new record, so there's nothing to conflict with
Reference data: assets, checklists, part lists
- Typical strategy
- Read-only on the device; the server's latest version replaces the cached copy
Shared records: work orders, tasks
- Typical strategy
- Field-level merge where fields don't overlap; otherwise reject the later change and ask the person to review
Status changes: close, approve, assign
- Typical strategy
- Check the record's version on the server; refuse if it changed since the device last saw it
Corrections to submitted data
- Typical strategy
- A new correction record with a reason, never an overwrite of the original
| Kind of record | Typical strategy |
|---|---|
| New entries: inspections, readings, counts, photos | Append-only. Each is a new record, so there's nothing to conflict with |
| Reference data: assets, checklists, part lists | Read-only on the device; the server's latest version replaces the cached copy |
| Shared records: work orders, tasks | Field-level merge where fields don't overlap; otherwise reject the later change and ask the person to review |
| Status changes: close, approve, assign | Check the record's version on the server; refuse if it changed since the device last saw it |
| Corrections to submitted data | A new correction record with a reason, never an overwrite of the original |
Shared devices and sign-in
A device signed in with one person's account all shift makes every record anonymous. The common pattern is a limited identity for the device or station, with each person identifying themselves for their session, by badge scan or short PIN, backed by your company identity provider. Our guide to SSO and least privilege for internal apps covers the station-identity design.
- Platform shared-device features. Microsoft Entra ID offers a shared device mode for iOS and Android apps built to support it (on iOS it also needs the Microsoft Enterprise SSO plug-in deployed through your MDM), and Apple supports Shared iPad for organizations using Apple Business Manager. Check which fits your devices and identity provider before designing sign-in.
- Local data follows the person. Cached records and the outbox are tied to the user who created them, and anything sensitive is cleared or locked when they sign out.
- Unsent work survives a handover. If someone signs out with changes still in the outbox, they should still sync under that person's name, not be lost or reassigned.
- Short sessions. Sign out after inactivity, and let the next person switch in quickly.
Device management and distribution
Company-owned devices are usually managed with a mobile device management (MDM) tool such as Microsoft Intune, Jamf or similar. Plan the app's distribution and configuration with whoever runs it.
Distribution and management options for internal mobile apps
Private distribution
- iOS and iPadOS
- Custom apps through Apple Business Manager, installed by your MDM
- Android
- Private apps through managed Google Play, installed by your MDM
Per-site configuration
- iOS and iPadOS
- Managed app configuration pushed by the MDM (for example, the server address for each plant)
- Android
- Managed configurations through the same MDM
Single-purpose devices
- iOS and iPadOS
- Single App Mode or Guided Access
- Android
- Lock task (kiosk) mode through the MDM or a dedicated-device setup
Protecting company data
- iOS and iPadOS
- App protection and managed-app policies from the MDM
- Android
- Work profile or fully managed device policies
| Need | iOS and iPadOS | Android |
|---|---|---|
| Private distribution | Custom apps through Apple Business Manager, installed by your MDM | Private apps through managed Google Play, installed by your MDM |
| Per-site configuration | Managed app configuration pushed by the MDM (for example, the server address for each plant) | Managed configurations through the same MDM |
| Single-purpose devices | Single App Mode or Guided Access | Lock task (kiosk) mode through the MDM or a dedicated-device setup |
| Protecting company data | App protection and managed-app policies from the MDM | Work profile or fully managed device policies |
- Avoid public store listings for internal apps. Private distribution keeps the app off the public stores. Apple's Developer Enterprise Program is only for cases the standard program can't cover, and requires 100 or more employees and Apple's verification, so Apple Business Manager is the usual route for companies that can use it.
- A minimum supported version. The server can tell an outdated app to update before it syncs, so old versions with old rules don't keep sending data.
- Staged rollouts. Update one line, one crew or one site first, then everyone.
- Crash and sync reporting. Collect crash reports and sync errors centrally, so problems are found before someone reports missing data.
Designing for gloves, glare and scanners
Practical design checks for the plant floor and the field
- Large touch targets and spacing that work with gloves.
- High contrast that stays readable in bright light and under plant lighting.
- Scanning a barcode or QR code instead of typing wherever an ID exists.
- Numeric keypads for numbers, with limits checked at entry.
- Photos captured with the record, compressed, and queued like any other change.
- Forms that save progress as they go, so an interruption doesn't lose work.
- Battery, charging racks and cases chosen for a full shift.
- Wi-Fi coverage and roaming checked where the app will actually be used.
Many of these apps replace paper forms and clipboards.
Planning an app for your operators or crews?
Tell us who will use it, on which devices, and where connectivity is patchy. On a scoping call we'll talk through the app type, the offline design and device management, and what a fixed-price build would cover.
Not ready to talk yet? Draft a project brief first
Testing and rollout
- Test where it's used. Walk the app through the dead zones, the freezer, the far end of the yard. Airplane mode on a desk is a start, not a test.
- Test long offline periods. A device offline for a full shift, or a weekend, then brought back with a large outbox.
- Test the awkward cases. Two people editing the same work order, a device with the wrong clock, an app update while changes are still waiting to send.
- Pilot with one team. One line or one crew first, with a quick way to report problems, before rolling out wider.
- Write acceptance criteria for offline behavior. For example: "A record created offline appears on the server within 2 minutes of the device reconnecting, exactly once."
Questions to settle before you build
Take this to operations, IT and security
- Who uses the app, on which devices, and are devices personal or shared?
- Where is connectivity poor, and what must keep working offline?
- Which records are new entries, and which are shared records that can conflict?
- Which scanners, cameras or other hardware does the app need to use?
- Which MDM manages the devices, and how will the app be distributed and configured per site?
- How do people sign in on shared devices, and which identity provider backs it?
- Which systems receive the data, and which one is the record for it?
Our experience includes native iOS apps in Swift, SwiftUI and UIKit, cross-platform apps in React Native, push notification systems, and web and mobile HMIs and dashboards for production data. See mobile app development for what we build, and the manufacturing page for what we build for plants.
Sources
- Shared device mode overview (Microsoft)
- Shared iPad overview (Apple)
- Distributing apps for business and Apple Developer Enterprise Program (Apple)
- Publish private apps from managed Google Play and lock task mode (Google)
About the publisher
Published by Webb Technologies. Our experience includes manufacturing execution systems, web and mobile HMIs, and dashboards fed from historians and OPC UA, with extensive Rockwell FactoryTalk work, as part of 15+ years of professional software development.
Our manufacturing software services →See it applied
- Demo with simulated data. Not client work.See a working demo →A live, read-only plant-floor dashboard. It runs in your browser.
- Illustrative sample. Not client work.See a sample scope for a plant-floor dashboard →An invented production and downtime dashboard for one line: what's in and out, the systems and data sources, acceptance criteria, milestones and the security and IT review.
Share this guide
Related services
- Mobile app development Native iOS apps in Swift and iPhone-and-Android apps from one React Native codebase.
- Manufacturing & industrial MES, quality tracking, web and mobile HMIs, and dashboards for production data.
- Web application development The APIs, dashboards and admin screens a mobile app depends on.
Topics