Apps for field teams.
A job captured on site with photographs, a signature and a location, held on the device until there is a connection
a record made where the work happened rather than typed up that evening
Enterprise app development · UAE
A technician in a plant room, an inspector on a site, a rep in a lobby. The constraint is the hand holding the phone, and everything else in the build follows from it.
Scope it against the work, not the org chartWhat enterprise app development is
Three things separate an internal app from the software it reports into. All three are consequences of it being a phone, and none of them appears on a requirements list.
One hand, gloves, bright sun, and a person being timed. Offline is the architecture rather than a setting, because a plant room and a basement car park are where the work is, not edge cases somebody thought of late.
The systems the app has to read and write, seen from outside the building. Half of them usually belong to a group abroad, on a change queue nobody local controls, which is a schedule fact before it is a technical one.
A handset the company owns, enrolled and policed. The app arrives on it rather than being searched for, and the day someone leaves it is the device that is dealt with, not an account somebody remembers to disable.
The scope
Six shapes, and the brief usually describes the screen rather than the situation. Where the person is standing decides most of the build.
A job captured on site with photographs, a signature and a location, held on the device until there is a connection
a record made where the work happened rather than typed up that evening
The order, the stock figure or the account read from SAP, Oracle or Dynamics on a phone, and written back where you allow it
the answer in the customer’s car park instead of after the drive back
The item, the amount, the attachment and the two buttons, on a phone in a lift lobby
the thing that was waiting on one person stops waiting on where that person is
Payslips, leave, a directory and the two forms HR chases, behind the sign-in they already use
one place staff open, which is what makes the next internal tool a small step rather than a new rollout
Scanning, picking and put-away on a handheld that keeps working when the racking blocks the signal
stock that is true at the moment it moved, not at the end of the shift
Three numbers and what changed, behind the same sign-in, rather than a desktop dashboard shrunk down
a view somebody actually opens between meetings
How it reaches a handset
An internal app that nobody can install is a project that finished and never started. This is the decision most briefs leave until the week before go-live.
| The public storesListed where anyone can find it | A link and a trusted profileInstalled by hand, device by device | Managed distributionPushed to enrolled devices | |
|---|---|---|---|
| Who can install it | Anyone, which is a problem when the app is your operations. | Whoever was sent the link, and whoever they forward it to. | Only an enrolled device, and only the staff you assigned it to. |
| Day one | Everyone hunts for it, and several install the wrong thing. | A support queue of people who could not get past a warning. | It is on the phone before the person opens it, already signed in. |
| When someone leaves | You disable an account and hope the cached data goes with it. | The build stays on a phone you no longer have any claim on. | The app and its data are removed from the device, on the same day. |
| When a version is bad | A fix waits in a review queue you do not control. | A message asking two hundred people to install something again. | The good build is pushed back out, to everyone, that afternoon. |
| What a reviewer sees | Your internal operations, and a demo account you had to create. | Nothing, which is the one advantage, and it is a small one. | Nothing. It was never published, because it was never for the public. |
Managed distribution, for anything staff use to do their jobs on a device you own, and it is worth deciding in the first fortnight because it changes the sign-in, the release process and the leaver process together. A client or partner portal is the exception and usually does belong on the public stores. Whether the thing should be an app at all is a question before this one, and the pillar sets out what the build itself involves.
What we find on internal apps here
Webzenia has worked with Gulf clients since 2018. Four things about an internal app that a specification written at a desk will not contain.
Plant rooms, basement car parks, steel racking and a quarry face are where the job is. A Ras Al Khaimah materials operator on a RAKEZ licence loses signal for most of a shift. An app that assumes a connection is an app that is used on the way back to the office, from memory.
An Ajman manufacturer whose ERP is run by a parent in Europe cannot get a field added on its own timetable. That is a schedule constraint before it is a technical one, and it decides the build order: read first, write later, and never both at once in week three.
The first release reads, and the write is turned on once somebody has watched a cycle of it and agreed the reconciliation. Plans that assume write access from day one slip, not because the work is hard, but because the permission was never going to arrive that early.
A Downtown Dubai hotel group on a mainland DET licence issues phones to housekeeping and engineering. The app arrives enrolled and signed in, and when someone leaves the device is cleared rather than an account disabled somewhere and the cached data left on it.
What the engagement covers
Six stages, and the first one happens where the work does. A process described in a meeting room and the same process watched on site are rarely the same process.
A day with the people who will hold the phone, in the places they hold it. What they carry, what they wear, what they can reach and where the signal stops are all scope, and none of it survives a workshop.
The app holds its own state and syncs when it can, and it opens behind the account staff already have rather than a password somebody has to remember for this one thing.
Each system named with who owns it, read access first, and the write turned on after a cycle has been watched. A group-owned system is a timetable rather than an interface.
The lift lobby, the basement, the racking aisle and the yard, with the connection genuinely gone rather than throttled. A dead spot is a test case here, not an incident report.
The app goes out through your device management to one team first, with the policy, the sign-in and the leaver path proved on that team before the next one is added.
Code, documentation and a release your own IT can push without us: the signing, the enrolment profile and the rollout steps written down and run once by your team while we watch.
Our stack
The device, the way it is managed, the sign-in it already has, the record it reads and the layer in between. Select one to see what it decides.
A company-owned handset can be enrolled so the device is managed as a whole, or carry a work profile that keeps company data in its own container on a phone the member of staff owns.
We settle which of those two the fleet is on before the first screen, because a work profile and a fully managed device behave differently around sharing, screenshots and what a wipe removes.
How the build runs
An internal app has no launch day. It has a first team, and then a second team that asked for it after watching the first one.
We spend time where the work happens and write down what the person carries, what they can reach one-handed and where the connection stops. In parallel we list every system the app has to touch, with the owner of each and how long a change on their side takes. The second list moves dates more often than the first list moves budgets.
The app holds its own state and reconciles when a connection returns, and it opens behind the directory staff already sign into. Integrations go in read-only first, and the write is enabled after a cycle has been watched and the reconciliation agreed. Testing happens in the lift lobby and the racking aisle rather than with the network throttled on a desk.
The app is pushed to enrolled devices for one team, with the policy, the sign-in and the leaver path proved on them before anyone else is added. Then it widens by request rather than by mandate, because a second team asking for the tool is the only adoption signal an internal app has that cannot be manufactured.
Proved on one team first, so the leaver path is tested before two hundred people have it.
Our commitment
An internal app fails quietly: it is installed, and then it is not opened. These four are written into the scope because that is how it happens.
It works offline by default.
The app holds its own state and reconciles later, and the reconciliation rule is agreed before the first screen. An app that needs a connection to be useful will be used from memory, back at the office, that evening.
The first integration only reads.
We do not write to your system of record until somebody on your side has watched it read for a cycle and agreed what happens when the two disagree. Write access on day one is a plan that slips on permission, not on work.
Your IT team ships a release first.
The signing, the enrolment profile and the rollout steps are documented and run once by your team while we watch. A distribution process only we can run is a dependency, whatever the support agreement calls it.
We say when a web page would do.
A form filled in twice a month from a desk does not need installing, enrolling or maintaining on a fleet. Where that is the honest answer we give it, and the case for building at all is set out here.
Common questions
Keep exploring
Native Swift, and the entity Apple publishes as seller.
Kotlin, and the five manufacturer skins this market runs.
One codebase, and the parts written per platform.
One widget tree, and an Arabic screen that mirrors itself.
For teams that already write React and have to hold it.
A shopping app costed against the repeat order.
Two-sided products where the fleet is the harder half.
Subscription products whose customer is a licensed company.
A component system engineering builds from, in both directions.
Next step
Send us the job as it is done today and the systems it has to reach. We will come back with the build shape, the integrations and how it gets onto the devices.
Tell us what you need.