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.
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.
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.
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.
01ShapeWhat it has to do, for whom, and on which phones. No discovery-phase invoice.
02PrototypeA test build on your own phone before the expensive part starts. This is where scope changes cost nothing.
03BuildIn slices you can install and try, from your repository, with every build on your phone as it lands.
04ShipStore review, a staged release, crash reporting connected — and the handover done as a working session, not a document.
05EvolveThe 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.