Skip to content
Sign In Create account
Mobile apps

Apps people open more than once, on iPhone and Android.

We design and build mobile apps for iPhone, iPad and Android — native when the device is the point, cross-platform when the product is. We take them through store review ourselves, publish them under your accounts, and keep them working when the next version of iOS or Android arrives.

Your developer accounts, your store listings, your source code. We work inside them; we never hold them.

Not a phone app? If it runs in a browser or behind a login at work — a business system, a SaaS product, a dashboard — that is our software development page. Software development

What we build

Six parts of shipping an app, and all six are ours.

An app is not only the screens in the store. It is the server it talks to, the review it has to pass and the operating system update it has to survive — and a studio that does only the first part hands you the other three as surprises.

iOS apps

Swift and SwiftUI, built against Apple's own frameworks for iPhone and iPad. Sign in with Apple, notifications, widgets and the privacy disclosures review asks for — decided while building, not argued about afterwards.

Android apps

Kotlin and Jetpack Compose, tested on the phones people actually hold rather than the newest one — which is where the memory limits, the unusual screen ratios and the older Android versions are.

Cross-platform apps

Flutter or React Native: one codebase on both stores when the product genuinely suits it. We will tell you when it does not, because the day you find out yourself is the expensive one.

The backend behind the app

Accounts, sign-in, sync, notifications, uploads and the admin screen your team runs it from. Every app needs a server; we build it, or connect properly to the one you have.

Taking over an existing app

An app somebody else built that nobody can release any more. An honest read of what is there first, and a written answer on whether continuing or rebuilding costs you less.

Releases and upkeep

Apple and Google change their rules on their own schedule, every year. New OS versions, SDK deadlines, store policy changes and the features real use asks for — planned for, not discovered.

Not sure whether your idea is native, cross-platform or not an app at all? That is the first thing the conversation settles, and it is free.

Describe your app

What it looks like

Three things a good app gets right, drawn.

These are wireframes and they are honest about it. A rail of App Store screenshots on a studio page is either somebody else's product or a mock-up pretending not to be one, and we would rather show you the thinking.

On the screen

A list, a detail, and one thing to do

Most useful apps are that, and the craft is in what happens when the network is slow, the list is empty or the thing you tapped has gone. Those states are designed, not discovered in review.

  • Works before the data arrives, and says so
  • Reachable one-handed on a large phone
  • Every state drawn — empty, loading, failed, offline

Off the network

Keeps working in a lift

Apps are used on trains, in basements and at the edge of the signal. What somebody did offline is kept on the phone and sent when the connection comes back — once, and in order.

  • Changes kept on the device until they can be sent
  • Sent once, never twice, when the signal returns
  • Conflicts settled by a rule, not by luck

Into the stores

From a test build to both stores

Review is part of the work, not the moment it stops. Test builds on your own phone first, then App Store and Google Play review, then a staged release that can be paused.

  • Test builds on your phone before anything is public
  • Account deletion, sign-in and privacy rules met up front
  • Released in stages, and halted if something is wrong

The honest part

Native, cross-platform, or no app at all.

Every studio that builds apps has a commercial reason to recommend one. Here is how we actually decide, including the answer that costs us the project.

When you do not need an app

  • People would use it once and never open it again — that is a website
  • It is a form and a confirmation, and the browser already does both
  • Nothing it does needs the camera, location, notifications or offline use
  • The people using it sit at a desk at work, not on a phone
  • You want it in the stores for credibility rather than for use
  • The budget covers building it but not two years of keeping it in the stores

How we choose when you do

  • Native, when the device is the point

    Camera, sensors, background work, real offline use, tight animation or deep platform features — the things that are the reason it is an app rather than a page.

  • Cross-platform, when the product is the point

    Forms, lists, accounts and content on both stores, with one team and one codebase. Most business apps are this, and pretending otherwise is how a budget doubles.

  • A web application, when neither is

    No install, no review queue, no store rules, and a fix reaches everybody the moment it ships. Often the right answer, and rarely the recommended one.

    That is software development
  • And we will say which, in writing

    With the reasoning, before you have paid for anything, knowing that "you do not need this" is sometimes the answer. A studio that cannot say it is a studio you cannot trust when it does not.

Describe what you want it to do rather than what you want it to be, and we will tell you which of the three it is.

Describe your app

In every app

What we consider part of the job.

None of the following is a tier, an add-on or a line on the quote. They are what makes an app somebody can still release in three years.

The store accounts are yours

Apple Developer and Google Play registered to your company. We are added as team members, and removed the day you ask.

The source is yours from day one

In your repository, under your account, with the history intact — not handed over at the end as a zip file and a good luck.

Every state designed

Empty, loading, failed and offline are the four screens that decide whether an app feels finished, and the four nobody thinks to ask for.

Usable by everyone

Larger text that does not break the layout, VoiceOver and TalkBack labels, readable contrast and touch targets a thumb can hit.

Permissions you can defend

Only the ones it uses, asked for at the moment it needs them, and the store privacy labels filled in truthfully.

It tells you when it crashes

Crash and error reporting from the first test build, somewhere a person looks — not after the first bad week of reviews.

How it goes

Five stages, and an app on your phone by the end of the second.

Apps go wrong quietly and expensively, so the first two stages exist to make that visible while it is still cheap.

  1. 01 Shape What it has to do, for whom, and on which phones. No discovery-phase invoice.
  2. 02 Prototype A test build on your own phone before the expensive part starts. This is where scope changes cost nothing.
  3. 03 Build In slices you can install and try, from your repository, with every build on your phone as it lands.
  4. 04 Ship Store review, a staged release, crash reporting connected — and the handover done as a working session, not a document.
  5. 05 Evolve The yearly iOS and Android releases, SDK deadlines and what the first months of real use turn out to need.

Straight answers

The questions worth asking before you write to us.

Often not, and we would rather say so before you have paid for one. If nothing about it needs the camera, location, notifications or working offline, and people would open it now and then rather than daily, a web application does the same job with no install, no review queue and no store rules to keep up with.

It depends on whether the device is the point. If the product is forms, lists, accounts and content, cross-platform with Flutter or React Native is usually right, and pretending otherwise is how a budget doubles. If it leans on the camera, sensors, background work or real offline use, native Swift and Kotlin are worth what they cost. We will tell you which in writing, with the reasoning.

You do, from the first commit. The repository is yours, the Apple and Google developer accounts are registered to your company, the servers are in your name, and we work inside them as team members rather than holding them. There is no version of this where leaving is expensive.

That is our problem, not yours, and it is part of the work rather than the point where the work stops. The rules that catch people are account deletion, sign-in options, privacy disclosures, payments inside the app and anything that looks like a website in a wrapper — all decided while building rather than argued about after a rejection.

Yes, and from the second stage onwards. Test builds go to your own phone through TestFlight on iPhone and internal testing on Android, so you are tapping the real thing long before anybody else can see it.

Almost always, as soon as there are accounts, anything shared between users, notifications or data that has to survive a lost phone. We build it as part of the app rather than as a second project, or connect properly to a system you have — and it can run on your cloud account or on our own servers.

We will not name a number before knowing what it has to do, and the studios that do are quoting an app that is not yours. What we commit to is a shape and a figure in writing after the first stage, and a test build on your phone before the expensive part begins.

More than people expect and less than they fear. Apple and Google change requirements every year, libraries age, and an app nobody has touched for two years usually cannot be released at all without work first. Planning for that from the start is cheaper than discovering it, which is why it is a stage in the process above rather than an upsell after it.

Usually, and it is a large part of what we do. The first thing is an honest read of what is there — what builds, what is tested, which libraries are abandoned, which store deadlines are coming — and a written answer on whether continuing or rebuilding is cheaper.

Free consultation

Tell us what your app has to do. We will tell you what it takes.

What it has to achieve, and for whom, is worth more than a description of the screens. You get a real answer from the person who would build it — including "you do not need this", when that is the answer.

Please do not put passwords, keys or API tokens in this message. We will ask for access properly once we have agreed what needs doing, and never by reply to a form.

Most enquiries are answered within one business day.