12 years of experience. 15+ apps delivered. One dedicated point of contact.
In short: I build iOS and Android apps for clients in San Francisco (873,965 residents) and across California. One single point of contact, 12 years of experience, delivery from concept to publication in 8 to 16 weeks.
I will tell you the truth, even when it's uncomfortable. That is the promise I make to all my clients from Cannes.
Creating an iOS or Android app takes time and money. So, no sugarcoating between us. With 12 years of experience under my belt, if your requirements are all over the place, I will pull the brakes.
The most important factor: I am here to make sure your investment actually serves your users. That is how we build great applications.
You have a mobile app project in San Francisco.
And you are asking yourself the big question. iOS or Android?
Let's look at reality.
Android holds a a large global market share.
That is massive.
Out of the 873,965 residents in San Francisco, the vast majority have an Android smartphone in their pocket.
If your customers use Android, you have no choice. You need to be there.
But careful. Making an Android app is not just ticking a box.
It is an ecosystem with its own rules. Its own design standards.
The most important factor is creating a smooth experience, no matter the phone brand.
Samsung, Xiaomi, Oppo, Google Pixel. Your app must run perfectly everywhere.
Building an app is not just writing lines of code in a basement.
It is a complete lifecycle.
We start with design. We do not draw randomly. We apply Android guidelines so the user in San Francisco feels right at home.
Then comes the code. We connect the app to your servers. We handle offline modes.
But the biggest part of the work comes after. Testing and publishing.
In short, publishing on the Google Play Store has become a real obstacle course.
Google has toughened its rules to clean up its store.
Today, for a new developer account, Google requires you to test the app with 20 different testers for 14 consecutive days.
No testers? No publication.
Then, you have to fill out the tedious data safety form.
Explaining exactly what you do with the user's location, photos, or contacts.
It is a question of trust.
All of this happens in the Google Play Console. It is the dashboard for your application.
I manage all this administrative and technical complexity for you. So your project launches smoothly in San Francisco.
San Francisco is the one place where I am usually not the first developer someone has spoken to, and often not the first to have written code for the idea. Inheriting a half-finished app is a different job from starting one — the first week goes on reading what exists and telling you honestly which parts are worth keeping.
That week is not billable padding, it is the most valuable week of the project. There are really only three verdicts. The code is sound and undocumented, in which case we keep it and I write down how it works. The code is unsound but the data model is right, in which case we keep the database and rebuild above it, which is far cheaper than it sounds. Or the foundations are wrong, in which case the honest answer is to start again, and hearing that early costs you a week instead of a quarter.
The hardest part of that conversation is usually not technical. Someone has already paid for the existing work, and "start again" sounds like admitting the money was wasted. It usually was not: the existing version taught you what the product should be, which is exactly what a first attempt is for. But sunk cost is a poor reason to keep an architecture that will slow every future change, and I would rather have that argument in week one than deliver a build that stays fragile forever.
The nine-hour gap is real and shapes how we work. Our days barely overlap — your early morning is my evening. That suits a project with defined weekly deliverables you review at your desk and I act on the next day. It suits badly a project that needs live discussion to make progress. I will tell you which of the two yours is before we start, because getting that wrong wastes a month for both of us.
The number one fear when starting an app project is losing control: you sign an estimate, hand over your idea, and hear nothing for three months. The way of working described here exists so that does not happen.
Three rules, the same on every project:
You test the app on your own phone every two weeks.
With Invent Better you get an installable build every two weeks, even when it is incomplete. That is the difference between following a project and waiting for one. You have access to the code repository from day one, and every decision is written down rather than remembered. A disagreement surfaces after two weeks, not at final delivery.
Software development is far too often treated as a terrifying black box.
In many traditional projects, you sign a massive specification document, you pay a hefty deposit, and then you just wait. For months, you receive nothing but vague updates. A few reassuring emails. A lot of "trust us, it is coming along great."
And then the day of the final big reveal in San Francisco arrives... and your heart sinks. The product looks and feels nothing like what you envisioned. But it is entirely too late, and your budget is completely gone.
The most important factor: when you work with me, that black box simply does not exist. Everything is entirely transparent.
I work with clients everywhere, from France to Canada.
It does not matter if you are based in San Francisco or elsewhere, the method is the same.
The key advantage is asynchronous and transparent communication.
No need for three-hour meetings that lead nowhere.
We use tools like Slack, Trello, or Jira. You see exactly where I am.
Every week, you receive an update on your Android phone.
You test the new feature directly from your office in San Francisco.
If there is weird behavior on a specific Samsung model, you report it to me and I fix it.
I manage the entire Google Play Console.
Signing certificates, store descriptions, translation management, store listings.
You do not have to dive into this administrative complexity. You stay focused on your business. I handle the technical side.
It is a partnership. I am here to advise you, not just execute.
If I have to say no to a feature because it will slow down the project, I will tell you. That is my role as an expert.
Sometimes, the Android app is not meant for the general public.
I worked for a technical intervention company whose teams travel all over the California area.
Their technicians needed a tool to record field data. Often in basements in San Francisco, where there is no cellular network.
The key advantage of Android here is hardware choice.
Instead of buying overpriced iPads, the company bought low-cost rugged Android tablets. Perfect for construction sites.
The technical challenge was making it work entirely offline.
I used Room DB, Android's local database.
The technician fills out the report, takes photos, and the app stores everything locally.
As soon as the tablet catches a network signal again, the app silently syncs the data with the company server in the background.
Furthermore, we used "Kiosk Mode".
The tablet is locked down. The technician can only launch the company app. Impossible to go on YouTube or change settings.
No need to go through the tedious public Google Play Store validation. The app is distributed privately, directly to the company fleet.
Maximum efficiency.
An Android app generally costs noticeably less than its iOS equivalent. The reason is practical rather than technical: Google's development tools are free and more flexible, and the Play developer account is a one-off fee rather than an annual one. The scope of your app still sets the figure — the platform only shifts it at the margin.
I do not have a reserved domain. I adapt to your market in San Francisco.
The key advantage of Android is its technical flexibility.
Not always, which is good news for the budget. An app that only handles its own user's data — a list, a tracker, a calculation — can keep everything on the phone and cost nothing to run. As soon as data has to be shared between people, synced across two devices, or seen by you on your side, a server is needed, and that is a cost that comes back every month.
It depends entirely on what was decided at the start, and it is one of the few choices that cannot be postponed. An app can keep its data on the device, let people work, then sync as soon as the network returns — with nobody pressing anything. It is essential the moment work happens in a warehouse, a basement, or on the road. Added afterwards, it often means rewriting half the app.
We pick a floor, and that choice has a price. Supporting older OS versions means more testing and giving up some capabilities. We look at who your users are: a consumer app and an internal tool deployed on a known fleet do not get the same answer. The floor can be raised later, when usage data shows nobody is left behind it.
It matters more than people think, because a heavy app is the first uninstalled when storage runs short. The weight rarely comes from the code: it is the bundled images and fonts. Loading images from the server rather than shipping them, and serving them at the right size, often halves it. That is invisible work, and it is the work that keeps the app installed.
Technically, sending costs almost nothing. What costs is everything around it: a server to decide what to send to whom and when, and enough care not to become intrusive. It is also the easiest mechanism to waste — a useless notification is the first cause of uninstalls, and an uninstalled app does not come back. Send few and make them useful, or send none.
Yes, with the user's permission, and how you ask matters as much as the feature. A permission demanded on first launch, with no context, is refused most of the time — and once refused it is painful to recover. Asked at the moment the person understands why, it is granted. Apple also requires a written explanation for every permission, and a vague one gets the app rejected.
Through the stores, and not instantly: Apple and Google review every version before it is published, and phones update at the pace of their own settings. So expect a share of your users to stay on an older version for weeks. That is why the server has to keep talking to previous versions, and why we avoid changes that break everything at once.
Often yes, and it all hangs on one thing: does your vendor provide a documented API. If they do, it is ordinary work. If they do not, or bill it per module, or refuse to open it to a third party, no app will work around that cleanly — workarounds exist and break at the vendor's next update. It is a question to put to your supplier before you put yours to me.
A website can be installed on the home screen, work offline and launch full-screen, with no store involved. It is a real third answer, and it is under-recommended because it earns less for whoever recommends it. Its limits: notifications stay restricted on iPhone, sensor access is partial, and you are not present in the stores — which matters if your customers look for you there.
Only if you have an audience in another language — and then it has to be designed in, not added on. Translation is not what costs; room is. German makes labels half again as long and overflows buttons drawn for English. Leaving room from the start costs nothing; redoing the screens afterwards costs days. The legal texts and the store listing count too.
While you hesitate, your competitors in San Francisco are moving forward.
The mobile world moves fast. Very fast. Today, most global web traffic comes from mobile devices. If you keep pushing back the creation of your app, someone else will happily take your spot in California.
But be careful, do not confuse speed with haste. Launching an unstable application is the worst possible strategy.
In short: you have to act fast, but above all, you have to do it right. ⏳

30 minutes to start
Book →Most of my projects run remotely, and in practice that changes very little. We talk over video whenever you need to, not only at major milestones, and you can reach me with questions at any point during the project — I always answer.
Once we are working together, travelling to meet you on site can absolutely be arranged if your project calls for it. Travel costs are quoted separately, upfront and with no surprises.