Web & software
Mobile apps: the weight and the asks decide more than the features
What makes people abandon an app is settled before the first feature: the download, the sign-up, the permissions.
This article is for somebody who has already settled the previous question: an app really is the right answer, the use is repeated, people know you. So it will not reopen that debate.
It deals with what comes next and actually decides the project’s fate. An app is almost never abandoned for what it does badly; it is abandoned before that, in the two minutes between deciding to download and using it for real.
Those two minutes contain three obstacles that development treats as technical details and the user experiences as questions: how much data is this going to cost me, why do I have to create an account, and why are you asking for that.
Three decisions, taken in the first weeks of a project, and more or less impossible to undo afterwards. That is this article’s subject, and it is why it says so little about features.
The first launch decides everything else
The full sequence of a first use has more steps than most teams imagine: seeing a mention, searching the store, choosing between results, reading a listing, deciding, downloading, waiting, opening, understanding, acting.
Each of those ten steps loses people, and the losses multiply rather than add. That is why effort invested in the tenth — the feature — has so little effect when the first three have not been worked on.
The most fragile moment is the very first screen after installation. The user has just spent time and data, has received nothing yet, and that is precisely where most apps ask them for something.
The rule that follows is simple and rarely applied: the first thing somebody sees has to be something that serves them, not something you are asking of them. A catalogue, an opening time, a balance, a tracker — anything proving the install was worth it.
Everything you need to ask for can wait until the user needs it. That is a resequencing rather than a reduction in features, and it is the most profitable change in the whole trade.
Weight: what your app costs to download
In a market where connectivity is overwhelmingly mobile and data is paid for by volume, download size is not a technical metric. It is a price, and the user calculates it.
A heavy app is refused twice: at download, by somebody checking what they have left; and at the first update, by somebody discovering the cost repeats.
The weight rarely comes from the code. It comes from images bundled at three resolutions, complete font families only half used, libraries added for a single function, and assets nobody remembered to remove.
The useful discipline is setting a ceiling at the start of the project and treating it as a design constraint rather than a final optimisation target. A ceiling set afterwards is never met; set beforehand, it steers dozens of decisions.
A consequence to accept: it means refusing things. A splash animation, a complete component library, a rendering engine for one screen. Those refusals cost less than the installs they preserve, and they are far easier to accept before the thing is built than afterwards.
Mandatory sign-up is the most closed door
Requiring an account before any use is the decision that costs the most users, and it is nearly always taken for good internal reasons.
It is defended by the need to know your users, to synchronise, to secure. All of those are real and none justifies putting the request on the first screen, before the person has seen what they get.
The question to ask feature by feature is: does this one need to know who this person is? Browsing a catalogue, opening times, a map, availability: no. Placing an order, seeing a history, receiving something: yes.
So the right architecture is in two stages and takes a little more work: everything that is browsed stays open, and the account is requested at the exact moment it becomes necessary, with the reason shown next to the request.
One case common in Algeria deserves naming: sign-up by phone number with a verification code. It is lighter than a password and it has a real cost — a message that does not arrive is a user lost with no recourse. Always provide a second attempt and another channel. That is three days of development and it recovers people who otherwise had no way of telling you.
Permissions: what you ask for and when
A permission request is a question put to somebody who does not know you yet, and the default answer to that kind of question is no.
The classic error is asking for everything at startup: location, contacts, camera, notifications, storage. Presented in series, those requests feel like a search, and they produce refusals that are then very hard to reverse.
The rule is the same as for the account: ask at the moment of use, with the reason visible. "So we can show you the nearest branches" gets an agreement the same request at launch does not.
You also have to treat refusal as a normal path rather than an error. An app that stops working because location was declined is treating a legitimate answer as a fault, and it will be uninstalled.
Finally, do not ask for what you do not need. Every superfluous permission is a legal risk, a reason for suspicion and one more line on the store listing, which publicly displays what you collect.
Offline behaviour is not optional here
An app is judged in the places where the network is poor, because that is where it gets taken out: an underground car park, a lift, a stockroom, a train, a badly covered neighbourhood.
The internet market observatory published by ARPCE counts, for the second quarter of 2025, some 59.10 million internet subscriptions in Algeria, of which 88.71% are mobile and 11.29% fixed.
That ratio says your user is mobile nearly all the time, and being mobile means crossing areas where the connection degrades without disappearing — which is the hardest case to handle, far harder than a clean loss of signal.
The three behaviours to define explicitly are therefore: what happens when the connection is slow, when it drops during an action, and when it comes back. The third is the one people forget, and it is the one that produces duplicates.
The acceptable minimum is that the app shows what it already knows rather than a blank screen, says what could not be sent, and retries without the user having to guess. That belongs in the rules, not after the tests.
- Mobile subscriptions88.71%
- Fixed subscriptions11.29%
ARPCE, internet market observatory, second quarter of 2025
Two platforms, two costs, and the question nobody asks
The usual debate is about technology: one shared codebase or two separate apps. That is a real question and it is not the first one.
The first is whether both are needed at all. Many projects launch on both platforms out of symmetry when their audience is overwhelmingly on one — which doubles the cost of building, testing and above all maintaining, for a fraction of the users.
The answer is not guessed, it is read: your website has been telling you for months which platform the people who visit you are on. It is data you already have and nobody looks at before deciding.
On the technology itself, the deciding rule is hardware use. An app that displays, captures and sends works perfectly well on a shared codebase; one that heavily uses the camera, the sensors or the background ends up paying dearly for its intermediary.
And there is a cost quotations nearly always omit: each platform has its own publication process, rules and review delays. That is not development, it is recurring administration, and it belongs in the annual budget. It is counted in days per year and it never goes away.
Updates are not deliveries
A website left untouched for a year stays online. An app left untouched for a year stops being installable, then disappears from results, then stops working on recent devices.
It is the most misunderstood difference between the two, and it has a direct budget consequence: part of the annual maintenance brings no visible novelty and is not negotiable.
So distinguish three kinds of update at contract time: those that fix, those that follow platform changes, and those that add. Only the third is discussable; the first two are the price of staying online.
The second kind runs on a calendar you do not control. Platforms announce their requirements in advance, and a project not following them ends up with a mandatory deadline discovered three weeks out.
A practical consequence for choosing a supplier: ask who watches those announcements. If the answer is "we will see when it happens", you will discover the deadline at the same time they do, which is the worse of the two positions.
Notifications: the one real advantage, and how it gets spent
An app has exactly one advantage a website cannot match: it can speak to you when you are not looking at it. Everything else is done just as well in a browser.
So it is the project’s most valuable asset, and it is the one that gets spent fastest. A notification that brings nothing to its recipient does not just cost an unopened message: it costs the right to send another.
The useful distinction is between transactional notifications — your order has shipped, your appointment is tomorrow, your code has arrived — and commercial ones. The first are expected, the second are tolerated in small doses and never asked for.
The rule we apply is never to send a commercial notification to somebody who has not yet received a useful one. Order matters: the first decides whether the rest are read or switched off.
And offer the setting. An app that lets people choose what they receive keeps people who would otherwise have disabled everything at system level — which is irreversible and invisible to you.
The store listing does work you think you are doing elsewhere
Between deciding to look for your app and installing it there is a page you do not write yourself, or rather one you write without thinking: the store listing.
It carries four things that decide: the name, the first sentence, the first images, and the size. The rest of the text is read by a minority and mostly serves to be found.
The images are what actually gets looked at, and the common error is putting raw screenshots there. What has to be shown is what the app lets somebody do, in the order they will do it, with one word per image. Four images built that way beat eight faithful screenshots.
The name matters more than people think because it is searched for. A brand name alone assumes you are known; a brand name followed by what the app does is found by both audiences.
Finally, store reviews follow the same rules as everywhere else in this series: they are written by people something happened to, the useful reply is short and factual, and the right moment to ask for one is straight after a successful action — never at launch.
What can be measured on an app
The figure everybody watches — installs — measures your advertising and nothing else. It rises when you spend and says nothing about the app.
The first useful measure is the share of installs that reach the first useful action. It judges the sequence described at the start of this article, and that is nearly always where the loss is.
The second is second-month retention: how many of the people who installed it still open it. An app losing everybody in the second month does not have a feature problem, it has a reason-to-exist problem.
The third is the share of uninstalls that follow a notification, if you send them. It is a painful figure and it is the only honest measure of your discipline on that point.
What we will not quote: the "average" retention rates published by platforms and consultancies. They aggregate every kind of use in every market — a game and an order tracker have nothing in common — and an average built on unrelated populations says nothing about yours, even when it is dated.
What to check before signing
The first question is about the first screen: what will somebody see straight after installing? If the answer is a form, the project already has its main defect and it will be expensive to correct later.
The second is about weight: what ceiling, decided when? A supplier answering "we will optimise at the end" is describing an intention, not a design constraint.
The third is about the publishing accounts. They have to be created in your company’s name, with your email address and your payment method, and you have to have access. An app published on a supplier’s account is an app you do not own.
The fourth is about compulsory maintenance: how much a year, who watches the platform announcements, and what happens if you stop. That last answer has to be "it will disappear", and a supplier who does not give it has not explained the trade to you.
The fifth is a test: ask how the app behaves when the connection drops mid-action. The answer immediately separates people who have shipped apps from people who have drawn them.
What we do, and what we will refuse to do
What we will refuse: putting account creation on the first screen. We know it simplifies the architecture and fills a user base faster; it is also the decision that loses the most people, and we would rather build the two-stage opening.
We will also refuse to ask for a permission at startup. Each will be requested at the moment of use, with its reason shown, and refusal will be handled as a normal path rather than a fault.
And we will refuse to ship an app without a written annual maintenance budget. An app without maintenance does not degrade slowly: it stops being installable, and you will hear about it from a customer.
What we do: a weight ceiling fixed before the first line, a first opening that shows something useful before asking for anything, defined behaviour for a slow, lost and restored connection, publishing accounts in your name, and a written distinction between updates that add and updates that are the price of staying online.
And what you should do without us this week: look in your website statistics at how your visitors split between the two mobile platforms. It is free, the data has existed for months, and it may tell you that you need only one of the two apps you were about to have priced.
Frequently asked questions
Should we require an account?
Not on the first screen. Everything that is browsed — catalogue, opening times, availability — stays open, and the account is requested at the exact moment it becomes necessary, with the reason shown next to the request.
Does app size really matter?
In a market where connectivity is overwhelmingly mobile and data is paid by volume, yes: it is a price the user calculates, at download and again at every update. Set a ceiling before the first line, not at the end.
When should permissions be requested?
At the moment of use, never at startup, and always with the reason visible. Plan for refusal as a normal path too: an app that stops working because a permission was declined gets uninstalled.
Should we publish on both platforms?
Look at your website statistics first: they have been telling you for months where your visitors are. Launching on both out of symmetry doubles building, testing and above all maintenance for a fraction of the users.
What happens if we stop maintenance?
The app stops being installable, disappears from results, then stops working on recent devices. It is the most misunderstood difference from a website, and part of that budget brings no visible novelty.
What retention rate should we aim for?
We do not quote published averages: they aggregate every use in every market, and a game has nothing in common with a tracking tool. Measure your share of installs that reach the first useful action — that is where the loss is.
Where we come in
The share of your visitors who return, and from which kind of device, decides whether a use exists. An app with no daily use is uninstalled before the month is out.
- We set a size ceiling before the first line, and we hold to it.
- We ask for each permission at the moment it is needed, never at launch.
- We put the annual upkeep in the same quote as the build.
The first screen will carry no mandatory sign-up: it would simplify everything for us, and it costs half the installations.
Read next
A published application: what it costs to keep alive
Development ends. The application does not: it ages on its own, on handsets you can no longer reach.Custom software: the specification you write is not the one you need
Nobody knows what they want before using it. A complete specification written beforehand is a guess set down in the present tense.Website, app or custom software: which one, and in what order
Three very different things share the name "IT project". Choosing the wrong one costs more than building the right one badly.
Let us talk about your project
A free audit, no commitment: we look at your online presence and tell you what is holding it back.