Mobile app development: Apps that keep working when the signal drops.
For most business apps we recommend cross-platform: one Flutter or React Native codebase for iOS and Android, with native code where a device feature needs it. A 4-week sprint ends with release under your App Store and Play Store accounts.
No signal in the basement, but the driver keeps working: the scan, photo and signature wait on the phone.
From one codebase to both app stores, feature by feature.
Behind ✦ Explore AI features on each card is what AI can add to that part of the app. AI prepares drafts and suggestions, your team approves them, and the app works the same with AI switched off.
9:41
Jobs
Fit-out firmDelivered›
Design studioOn the way›
Tugasan
Fit-out firmDihantar›
Design studioDalam perjalanan›
9:41
Jobs
Fit-out firmDelivered
Design studioOn the way
Tugasan
Fit-out firmDihantar
Design studioDalam perjalanan
+
One codebase✦ Malay draft · your team checks
01✦ AI
iOS and Android from one codebase
One Flutter or React Native codebase builds both apps, so every feature and fix reaches iPhone and Android users in the same release.
Flutter or React Native, chosen in week 1 for your users and their devices
Screens that follow each platform’s habits, such as back gestures, date pickers and sharing
Tested on the phones your users already carry, including mid-range Android
Native code where a device feature needs it
On request
Sign-in by passkey, email code or SMS
✦ Optional AI
App text in each languageScreen text and messages drafted in Bahasa Indonesia and Bahasa Melayu from your English copy, checked by your team before release.
Help answered from your guidesUsers’ questions answered in the app from your own guides and policies, with the source linked, or passed to your support team.
Search in plain wordsJobs, orders or products found the way people describe them, matched only to the records that person is allowed to see.
Drivers, inspectors and store staff keep working without signal. Every scan, photo and signature is saved on the phone first and sent when the signal returns.
Work saved on the phone first, then sent in the order it was done
Each record keeps the time the work was done, even when it syncs hours later
Uploads cut off halfway are sent again, without duplicates
Jobs, forms and maps for the shift downloaded before people set off
Clear status on every item: saved on the phone, sending or sent
The same record changed on two phones is merged by rules, or flagged for a supervisor
✦ Optional AI
Voice notes into reportsNotes dictated on site are transcribed and drafted into the report’s fields, such as cause and parts used, for the technician to confirm.
Answers from manuals, with the pageQuestions answered from your equipment manuals and SOPs with the page cited, once there is signal. Without signal, the question waits.
Conflicting edits explainedWhen two people changed the same record offline, the differences are written up side by side for a supervisor to choose.
✦ Read on the phoneBatch B-2410 · Exp 03/2027Confirm
03✦ AI
Barcode, camera and GPS features
Scan a code instead of keying it in, take a photo as proof, and record where the work was done, so the phone replaces most of the typing.
Barcode and QR scanning with the phone camera
Photos stamped with time and location, made smaller before upload
Signatures and checklists as proof of delivery or inspection
GPS check-in at each site and a map of the day’s jobs
All of it works offline and waits in the queue with the rest of the work
On request
Rugged handheld scanners
✦ Optional AI
Labels read on the phoneBatch numbers, expiry dates and serials read from printed labels by a model on the phone, even without signal. Staff confirm each value.
Documents into form fieldsDelivery orders, receipts or nameplates photographed and read into the form, with every field for the user to confirm before saving.
Photos flagged for reviewPhotos checked for likely damage or defects when they sync, and put first in a supervisor’s review queue. The model ranks them, and a person decides.
Messy addresses tidiedFree-text addresses, such as “Blk 12, beside the market, level 3”, turned into a structured address and map pin for dispatch to confirm.
Your delivery is on the wayArriving 14:30–15:00. Tap to track.
Payment receivedS$24.00 by PayNow. Receipt in the app.
Penghantaran anda dalam perjalananDijangka tiba 14:30–15:00.
✦ Translated from English · approved by your team
04✦ AI
Push notifications and in-app payments
The app notifies people when something changes, such as an order on its way or a job assigned, and takes payment without sending them to a website.
Notifications that open the right screen in the app
Notification settings each user controls
Cards, e-wallets and bank transfers through gateways such as Stripe and Xendit
Saved cards and receipts, with card details held by the gateway, not the app
App Store and Google Play billing only where the stores require it, for digital goods and subscriptions
✦ Optional AI
Notification text in each languageOrder, delivery and reminder messages drafted in English, Bahasa Indonesia and Bahasa Melayu, and approved by your team before they are used.
Messages translatedChat between dispatch and drivers, or staff and customers, translated between English, Bahasa Indonesia and Bahasa Melayu, with the original kept alongside.
Payment slips matchedBank transfer screenshots read and matched to the open order for finance to confirm. The bank statement stays the final check.
Approvals with contextA notification to approve a request opens with its history and the figures that matter summarised alongside. The approver decides.
✦Which stops are late today?2 stops, both after 15:00Filters: today · 15 min or more late
DO-2214 · Design studio15:20
DO-2219 · Hardware shop15:40
05✦ AI
Admin console for your team
A web console where your team manages users, jobs and content, and sees what is happening in the field, without asking a developer.
Users, roles and devices, with access removed in one place
Jobs, forms and checklists your team edits without a new app release
Live status of every job and device, including its last sync
Messages to teams or customer groups, with a record of what was sent
Exports, and links to your ERP (enterprise resource planning) or other systems through their APIs
✦ Optional AI
Ask your dataAsk “which stops are late today?” and get the list, with the filters used and a link to each record.
Daily exceptions summaryLate jobs, missing signatures and phones that have not synced are found by rules, and AI writes a short summary for supervisors.
One queue for AI suggestionsEvery AI draft from the app waits here with its source photo or note, and a person accepts, edits or rejects it.
AI on or off per teamEach AI feature can be switched off per team or site, and every screen keeps working without it.
Sync picks up where it stopped after a dropped signal. Photos upload in the background.
What’s new✦ Draft to edit
Sync picks up where it stopped after a dropped signal. Photos upload in the background.
06✦ AI
App Store and Play Store release
We publish the apps under your company’s Apple and Google accounts and see them through store review, so the listings, signing keys and reviews stay yours.
Developer accounts set up in your company’s name
Store listings, screenshots and privacy details prepared with you
Store review handled, including changes a reviewer asks for
Signing keys handed over with the source code
On request
Test builds for your team through TestFlight and Google Play testing tracks
Phased rollout and crash reporting, so a problem shows up before everyone has the update
✦ Optional AI
Release notes drafted“What’s new” text drafted from the work merged since the last version, in each language, for your team to edit.
Store review repliesReplies to App Store and Google Play reviews drafted for your team to post. Nothing is posted automatically.
Crash reports groupedCrash and error reports grouped after each release and summarised for your developers, who confirm the cause.
Feedback sorted by topicStore reviews and in-app feedback sorted into bugs, requests and questions, with links, for planning the next release.
A 4-week sprint, from first call to the app stores.
For companies in Singapore, Malaysia and Indonesia, in English and Bahasa Indonesia. You talk to the technical lead throughout, from the first call to handover.
4 weeks · 3 steps
Week 1Week 2Week 3Week 4Week 1
Week 1
Listen, understand & prototype
We listen to the people who do the work, map the problems to solve and deliver a clickable prototype to test on real phones by the end of the week.
Week 2–3 · 2 weeks
Core build
We build the core features and integrations on your real data, and demo them on a staging link every week.
Week 4
Live production & handover
We deploy to production and hand over the source code, documentation and admin access.
How we work
Offline first, where it matters
Drivers, inspectors and store staff lose signal in basements, yards and plant rooms. Their apps save the work on the phone and send it when the signal returns.
One codebase, two stores
Flutter or React Native gives you iOS and Android from one codebase, so features reach both platforms at once and there’s one app to maintain.
Tested with the people who use it
We test the main flow with real users in week 1, on the devices they already carry, before building it out.
Released under your accounts
We publish under your own App Store and Play Store accounts, and you receive the source code, signing keys and documentation.
Planning an app for customers or a field team? Talk it through with our technical lead.
Cross-platform (Flutter or React Native) is our recommendation for most business apps: one codebase, both stores. Native code is the right call when an app depends heavily on device hardware, and we say so in week 1.
Can the app work without internet?
+
Yes. An offline-first app saves work on the device and sends it when the signal returns. The handheld app in our WMS and the technicians’ app in our EAM both work this way.
Are the AI features in the app optional, and do they work offline?
+
Yes, they’re optional. Each AI feature is switched on per team, can be turned off at any time, and every screen works without it. One feature works without signal: a model on the phone reads printed labels. Features that need a larger model, such as voice notes drafted into reports, run once the phone has signal; until then the work waits in the queue with everything else. Nothing AI drafts is saved until someone on your team confirms it.
Do we own the source code?
+
Yes. You own 100% of the source code from the first commit, and at handover you receive the code, the documentation and admin access.
Who will we talk to?
+
The technical lead who does the work, with a domain specialist who has done this kind of work before. We reply within 24 hours, there’s no account manager in between, and we sign an NDA on request.