Android UI/UX6 min read

App Onboarding for Indian Users: Language, OTP and Low-Data Design

The first minute decides whether a new user stays. Learn how to design language choice, OTP autofill, permission timing and small downloads for Indian users, and the mistakes that lead to uninstalls.

App Onboarding for Indian Users: Language, OTP and Low-Data Design

Most apps lose a large share of new users in the first few minutes, and the reasons are rarely about the main feature. They are about the front door: a long download, a language the person does not read comfortably, an OTP that never arrives, or a permission pop-up that appears before the app has earned any trust. This post walks through the first-run flow we recommend for Indian users, with the facts about the Android features involved.

Before the app opens: download size

For many users in India, the first hurdle is the download itself, on a limited data plan or a patchy connection. Google's app-size guide says people avoid downloading apps that seem too large, particularly in emerging markets with spotty 2G and 3G networks or limited data plans. It recommends publishing as an Android App Bundle, a format where Google Play builds a smaller package tailored to each phone, and states that Play enforces a compressed download limit of 200 MB for bundles, against 100 MB for apps uploaded as plain signed APKs. Ask your developer to turn on code and resource shrinking and to check the final size on the Play Console before launch. A smaller download also installs faster on low-storage phones.

Language first, not buried in settings

A user who reads Tamil best but whose phone is set to English should not be forced to struggle through English screens. Android 13 added per-app language preferences: users can pick a language for each app in system settings, and apps can set their own language at runtime through the LocaleManager interface. Google's page says your app can be set up to appear in that settings list.

For onboarding, show a simple language picker on the first screen, using each language in its own script (தமிழ், हिन्दी, English), and let the user change it later from a visible profile menu. Make sure every screen, including error messages and OTP texts, exists in the languages you offer. Half-translated apps feel unfinished.

Phone login with OTP that fills itself

Phone-number login with a one-time password (OTP) is the norm in India. The typing of a six-digit code is where many users give up, especially when the SMS arrives late. Google offers two ways to let the app read it automatically:

  • SMS Retriever API. Per the documentation, it performs verification without manual code entry and without requiring any extra app permissions. Your server includes a one-time code and a short app hash in the SMS, and Google Play services passes the message to your app. This is the best experience, and it requires you to control the SMS text format.
  • SMS User Consent API. Used when you cannot control the message format. The user is shown a prompt asking whether to share a single SMS with the app, and the code is filled in if they agree. If they decline, they type the code.

Whichever is used, keep a manual entry box, a visible resend timer and a clear error message. Do not ask for permission to read all SMS messages for this; neither API needs it. Read our glossary entry on OTP verification for how the server side works, and remember that your SMS provider and its approved templates decide how reliable delivery is.

Ask for permissions when they are needed

Google's permission guidance is plain: ask for a permission in context, when the user starts to interact with the feature that needs it. Showing camera, location, contacts and notification pop-ups on the first screen is the quickest route to "Don't allow" taps. Since Android 13, notifications also need a runtime permission, and the notification guide notes that apps targeting older versions lose flexibility in when to ask. A better pattern: let the user browse, and ask for notification permission after their first order or booking, with a one-line reason such as "Get a message when your order is on the way."

A first-run checklist

  1. Language choice on screen one, in native scripts.
  2. Let people look around before demanding a login, if your business allows it.
  3. Phone number, then OTP with autofill, resend timer and manual fallback.
  4. Ask only for the details needed to finish the first task; collect the rest later.
  5. Request each permission at the moment of use, with a short reason.
  6. Show one useful result within the first minute, such as a first product, a first booking slot or an empty dashboard with a clear next step.
  7. Work on weak networks: show cached content, retry quietly and explain failures in plain words.

Mistakes that cause uninstalls

  • Forcing registration before showing any value.
  • Four permission pop-ups in a row.
  • An OTP screen with no resend option or a timer that is too short.
  • A language picker that lists only English names for languages.
  • A splash screen or tutorial carousel that delays the real task.
  • An app that breaks without a good connection.

Measure it, then improve it

Track how many people complete each step: install, language, number entered, OTP verified, first action. A big drop at one step tells you where to spend. VS Tech Builders designs onboarding together with the login and notification flows, using Firebase and Kotlin. See offline-first app development, push notifications, multilingual websites in India, launching on the Play Store and our contact page.

Sources

Checked on 3 November 2026. Technology changes quickly; always confirm details with the official source before you act on them.

Frequently asked questions

How can an Android app read the OTP automatically?

Use Google's SMS Retriever API, which needs no extra permission but requires your SMS to include a one-time code and an app hash. If you cannot control the message format, use the SMS User Consent API, which asks the user to share a single message. Always keep a manual entry box and a resend option as a fallback.

Does my app need permission to read SMS for OTP autofill?

No. Google states that the SMS Retriever API works without requiring extra app permissions, and the User Consent API only asks the user to share one message. Requesting broad permission to read all SMS makes users suspicious and is unnecessary for verification. Choose one of the two APIs and ask your developer which fits your SMS format.

When should an app ask for notification permission?

Ask at the moment the user would benefit, such as after their first order, booking or payment, with a short reason. Google advises asking for permissions in context, when the user starts the feature that needs them. On Android 13 and higher notifications need a runtime permission, so a first-screen pop-up is easy to refuse.

How large can an Android app be on Google Play?

Google's app-size guide says Play enforces a compressed download limit of 200 MB for apps published as Android App Bundles, and 100 MB for apps uploaded as signed APKs. Larger sizes are possible with Play Feature Delivery and Play Asset Delivery, but Google warns bigger apps can hurt install success, so keep the first download small.

VS
Written by
VS Tech Builders

A software studio in Madurai building custom management systems, websites and Android apps for businesses in India, Malaysia and Singapore.

Discuss your project