App Development
Your customers do not think in platforms. They start an order on the phone during lunch and expect to finish it on a laptop that evening. If the phone app and the website were built as two projects, that is where the cracks show: different prices, different login, a basket that empties itself.
We plan the phone app and the web app together. One API holds the rules. The screens on iOS, Android and the browser are thin layers over it. A change to a discount rule is then made once, not three times.
If you only need one of the two today, we still design the API so the second can be added later without a rewrite.

What is shared and what is not
Sharing everything produces an app that feels foreign on every device. Sharing nothing triples the cost. This is where we draw the line.
Shared: accounts and sessions
A person signs up once. Password reset, email verification and account deletion behave the same on every device because they live on the server.
Shared: prices, stock and rules
Validation happens in the API. The phone may check a field early for speed, but the server has the last word.
Shared: notifications
One service decides that a message is due, then sends it by push, email or SMS according to what the person chose.
Separate: navigation
Tabs along the bottom on a phone, a sidebar on a wide screen. Each platform keeps the habits its users already have.
Separate: device features
Camera, location, biometrics and background tasks are written for the phone. The browser version gets a sensible alternative or leaves the feature out.
Separate: offline behaviour
A field app must keep working in a lift or a basement. We decide per screen what is stored on the device and how conflicts are settled when the signal returns.
Frameworks we work in
Cross-platform frameworks suit most business apps. We go native when the app leans hard on the device: heavy camera work, Bluetooth hardware, long background tasks.
- Cross-platform mobile
- FlutterReact Native
- Native mobile
- Swift / SwiftUIKotlin / Jetpack Compose
- Browser
- ReactNext.jsVue.jsTypeScript
- API and data
- LaravelNode.jsPostgreSQLMySQL
- Delivery
- TestFlightPlay Console test tracksFastlaneGitHub Actions
From sketch to store listing
Five stages. The order matters more than the speed.
Discovery and clickable screens
We agree who the users are and what they must be able to do on day one. You get a screen flow you can tap through before any code exists.
API first
The data model and the endpoints are written and documented early, so phone and browser work can proceed side by side.
Builds on your own phone
Every two weeks a new build arrives through TestFlight and a Play test track. You try it on a real handset, not in a slide deck.
Store submission
We prepare listings, screenshots, privacy declarations and the data-safety form. Review by Apple and Google takes as long as it takes, and we plan the launch date around that.
After launch
Crash reports and store reviews are read weekly. New operating system versions are tested before the public release, not after complaints.
Details that get apps rejected
Most rejections are avoidable. We check these before the first submission.
- Account deletion offered inside the app wherever sign-up is offered
- Permission prompts that explain why the camera or location is needed
- A demo login for the store reviewer
- Privacy labels that match what the app really collects
- Digital goods sold through the store billing system where the rules require it
- No placeholder text, broken links or empty screens
- A working support address and privacy policy page
- Target API level current for Google Play
Budgeting an app
Our rates are published. Pick the role and move the sliders for an indicative budget.
Rate card
| Role | Hourly | Monthly* |
|---|---|---|
| Frontend / WordPress | AED 110 | AED 17,600 |
| Backend / API | AED 118 | AED 18,880 |
| Full-stack | AED 129 | AED 20,640 |
| Mobile (React Native / Flutter) | AED 129 | AED 20,640 |
| DevOps / Cloud | AED 147 | AED 23,520 |
| AI / Automation engineer | AED 165 | AED 26,400 |
| QA / Test engineer | AED 92 | AED 14,720 |
| UI / UX design | AED 103 | AED 16,480 |
*160 hrs/month full-time. Rates are indicative for planning, in UAE dirhams (converted from our US-dollar rates at the fixed peg of 3.6725), before VAT where applicable, and depend on seniority, contract length and timezone overlap. Longer engagements and multi-role teams are discounted — ask.
Do you need a store app at all?
A store app earns its cost when
- People will open it several times a week.
- It needs push notifications, the camera, location or offline use.
- Your users expect to find you in the App Store or on Google Play.
- You can fund updates each time the operating systems change.
A responsive web app is enough when
- Visits are occasional, such as a yearly renewal or a single booking.
- Everything it does works in a browser tab.
- You would rather not pay store commission on digital sales.
- You want to release changes the same day without a review queue.
What people ask first
Whose developer accounts are used?
Yours. We help you open the Apple and Google accounts in your company name and you invite us as team members. Apple asks organisations for a D-U-N-S number, so start that early.
Flutter or React Native?
Both are sound choices in 2026. We lean towards React Native when your web front end is already React and the team knows TypeScript, and towards Flutter when the design is highly custom.
Can you promise approval by Apple?
No. Review decisions belong to Apple and Google. What we can do is follow the published guidelines and respond quickly when a reviewer asks for a change.
We already have a website. Can the app use it?
Often, yes, if the site has an API or one can be added. We read the existing code first and tell you what can be reused.
Who pays the store fees?
You do, directly to Apple and Google, because the accounts are yours. They are not included in our invoice.
Tell us who will use it
A few lines about the users and the three things they must be able to do is enough to begin. An answer reaches you within one business day.
