We build iOS and Android apps from one codebase, with the notifications, widgets and Live Activities that make an app worth keeping.

Overview

A good app earns its place on the home screen by doing one thing noticeably better than the browser. It is there when the phone is locked, and when the signal is gone. We build iOS and Android apps from one codebase that feel native on each platform, work offline and ship on a predictable cadence.

Much of an app's value now sits outside its own screens: a notification at the right moment, a widget, an order's progress on the lock screen. Our guide Beyond the app icon covers what each of these can and cannot do.

What we build

Most app projects are one of three kinds.

AppWhat it needsExamples
Customer appOrdering or booking, payments, loyalty and notificationsOrder ahead, memberships, tickets
Companion appAn account, device or service people already use, in their pocketEveryday habits, health, connected products
Staff and field appOffline forms, photos, sync and your company sign-inInspections, deliveries, sales visits

Beyond the icon

Most of what people see of an app happens outside it. The four surfaces below are where an app earns attention without being opened. Each has its own rules on both platforms, and we design for those rules.

Notifications

A notification is the app speaking when it is closed, so it has to be worth the interruption. Both platforms make people opt in: iOS asks the first time an app requests permission, and since Android 13 notifications are off until the person allows them. We ask when it makes sense, after the first order and not at first launch, which is what Apple recommends.

Then we keep the promise: one notification per event, sent when it happens, that opens the right screen. Marketing messages need explicit consent on the App Store, and the app gets a settings screen where people can change their mind.

Widgets

A widget puts one piece of the app on the home screen or the lock screen: the next booking, the usual order, today's numbers. It is for glancing. Apple is clear that widgets are not small apps and do not update in real time: a widget that is viewed often typically gets 40 to 70 refreshes a day. A widget can carry a button or a toggle, so one tap can reorder or check in without opening the app.

Android widgets follow the same idea with their own sizes and refresh limits. We design each size deliberately and choose the one action that deserves the space.

Live Activities

A Live Activity shows something that is happening now: an order being prepared, a ride arriving, a workout. On iPhone it appears on the Lock Screen and, on models that have one, in the Dynamic Island. It also shows on a paired Apple Watch, in CarPlay and on the Mac. It can run for up to eight hours and stays on the Lock Screen for up to four more.

Android's equivalent is Live Updates, introduced with Android 16, for ongoing activities the person started, such as navigation, a call or a delivery. Neither platform allows ads or promotions there. We use them for tasks with a clear start and end, update them from the server, and end them the moment the task is done.

Watch apps

Notifications from your phone app already reach a paired watch. A watch app goes further: people act from the wrist in a few seconds, showing a pickup code, confirming a dose or starting a session. Apple's guidance notes that people use a watch app's notifications, complications and widgets more than the app itself, so we design those first.

An Apple Watch app can run without the phone app, and Google recommends the same for Wear OS. We build watch apps natively, in Swift and Kotlin, alongside the shared codebase.

Voice and AI

Typing on a phone is slow and speaking is not. We add voice where it removes steps: say the order, dictate the note, ask for the booking. The app shows that it is listening, turns speech into text and then into an action the person confirms before anything happens.

Recent versions of iOS and Android can recognise speech on the device, which keeps the audio on the phone. Where a request needs more understanding, an AI model interprets it and the app asks before it acts. Our AI agents service builds the part behind the microphone.

Offline

Connections drop in lifts, in basements and on the road. The app stores what people need on the device, lets them carry on, queues their changes and syncs when the connection returns, settling conflicts by rules we agree with you.

Both iOS and Android decide when an app may work in the background. We design sync around what the system allows and never promise a fixed schedule.

Process

Prototype early, lay solid foundations, then ship features weekly into testers' hands. Releases go out in stages: to a small share of users first, then to everyone once the crash-free rate holds.

  1. Prototype

    A clickable build in real hands within the first two weeks.

  2. Foundations

    Sign-in, data, navigation and analytics, done once and done properly.

  3. Features

    Weekly builds to TestFlight and Google Play's testing tracks, so you can hold every change.

  4. Release

    Store listings, review, a staged rollout and crash monitoring.

Deliverables

Apps for both stores, the services behind them and a release pipeline your team can run. You own the code, the developer accounts and the data.

  • Product prototype
  • iOS app
  • Android app
  • Widgets, Live Activities and watch app
  • Notifications and analytics
  • Backend and sync
  • Store listings
  • Release pipeline

Stack

React Native and Expo with TypeScript for the shared code, and native code in Swift and Kotlin where the product needs it: widgets, Live Activities and watch apps. Behind the apps sit a typed API layer, push notifications through Apple's and Google's services, payments, analytics and crash reporting. Fixes to the shared code can go out over the air between store releases; native changes go through review.

  • Mobile

    Level 5/5

    Cross-platform apps

    Lvl 5
    100%
  • Platform

    Level 4/5

    Widgets and Live Activities

    Lvl 4
    80%
  • Data

    Level 4/5

    Offline and sync

    Lvl 4
    80%
  • Platform

    Level 4/5

    Release engineering

    Lvl 4
    80%
  • AI

    Level 4/5

    Voice and AI features

    Lvl 4
    80%
  • Design

    Level 4/5

    Accessibility

    Lvl 4
    80%

FAQ

Answers to the questions we hear most often about app projects.

Native or cross-platform?

Cross-platform by default. One React Native codebase covers most of an app on both platforms, and we write native code in Swift and Kotlin where the product needs it, such as a watch app. If a fully native build is the better choice for your product, we'll say so before we start.

Do you handle App Store and Google Play submission?

Yes: listings, screenshots, privacy details, review and rollout. Apple says it reviews 90% of submissions in under 24 hours on average, and Google warns that some reviews take seven days or longer, so we plan launch dates with room for both.

Can the app work offline?

Yes, and we design for it from the start. What people need is stored on the device, their changes queue while there's no connection and sync when it returns. iOS and Android decide when an app may work in the background, so we never promise a sync at a fixed minute.

Can you update the app without a store review?

Partly. Changes to the shared JavaScript code and to images can go out over the air between store releases, as long as they don't change what the app is for. Anything native, such as a new permission or a new widget, goes through the stores.

Do widgets and Live Activities work on both platforms?

The ideas do, under different names and rules. iOS has widgets and Live Activities. Android has widgets and Live Updates, which are limited to ongoing activities the person started, such as navigation or a delivery, and phone makers can add their own conditions. We design each one for its platform.

Do we need a watch app?

Often not at first. Notifications from your phone app already appear on a paired watch without one. A watch app earns its place when people need to act from the wrist: show a pickup code, check in, track a session.

How long does an app take?

A first version usually takes about three months: two weeks to a clickable prototype, around four weeks of foundations, then features released weekly to testers, and two to three weeks for store preparation and the rollout.

Will the app be accessible?

We build for larger text sizes, VoiceOver and TalkBack, sufficient contrast and reduced motion, and we test with them switched on. In the EU, the European Accessibility Act has covered consumer e-commerce and banking apps since 28 June 2025.

Who owns the code and the store accounts?

You do. The repository, the Apple and Google developer accounts, the push keys and the analytics are in your name. Apple's developer programme costs 99 USD a year and Google Play has a one-time 25 USD registration fee.

All names, companies, people and figures in the examples and illustrations on this page are fictional and shown for demonstration only. They do not correspond to real clients, customers or results.