Growth

ASO for Flutter Apps: Getting Found on Both Stores

You can build a flawless app and get 40 downloads a month. App Store Optimisation is the difference — and Flutter apps have two specific handicaps worth knowing about.

Appix Engine 8 min read
ASO for Flutter Apps: Getting Found on Both Stores

Most app marketing budget is wasted before it's spent

The majority of app installs still start with a search in the store itself. If your listing doesn't rank and doesn't convert, paid acquisition is just renting attention at a loss. ASO is the cheapest install channel you have, and it compounds.

The two stores are not the same problem

This is the mistake we see most often — one listing copy-pasted into both consoles.

  • App Store. Indexes your app name (30 characters), subtitle (30), and a hidden 100-character keyword field. Your description is not indexed. Keywords should be comma-separated with no spaces, and never repeat a word already in the name or subtitle — that's wasted space.
  • Google Play. No keyword field. It indexes your title (30), short description (80) and the full long description (4000). Repetition helps a little, keyword-stuffing gets you suppressed. Aim for natural use of your main term three to five times.

A practical consequence: on iOS your description is pure conversion copy — write it for humans. On Android it is doing double duty as ranking signal and sales pitch. Write them separately.

Screenshots do the converting

Users decide in the first two screenshots, and most never swipe past three. Treat them as a landing page, not a gallery:

  • Put a short benefit caption above each screen. A bare UI screenshot says nothing to someone who hasn't used the app.
  • Lead with your single strongest outcome, not your login screen.
  • The first two must work as thumbnails in search results, where they appear at a fraction of full size. Test them small.
  • Localise them for real markets. Translated screenshots consistently outperform translated descriptions.

The two Flutter-specific handicaps

1. App size. Flutter's runtime means a bigger download, and size correlates with install drop-off — sharply so on slower connections. Mitigations that actually work:

  • Ship an Android App Bundle, never a universal APK. Play then delivers only the ABI and resources each device needs.
  • Build with --split-per-abi if you're distributing APKs outside Play.
  • Run --analyze-size before release and look at what's actually in there. It's usually uncompressed images and unused font weights, not your Dart code.
  • Subset your fonts. Shipping a full multi-language font family to an English-only app is common and pure waste.

2. First-launch impression. Store algorithms weight retention heavily, and a slow first launch is where Flutter apps historically lost users. Impeller's ahead-of-time shader compilation has largely fixed the old jank, but you still need to keep the first frame cheap — no blocking network call before the first paint, and a real splash rather than a white flash.

Ratings: ask, but ask correctly

Rating is both a ranking factor and a conversion factor. The pattern that works is boring and effective:

  • Use the native in-app review API on both platforms. Never send users to the store manually — you'll lose most of them.
  • Trigger after a success moment, never after an error and never on launch. Order delivered, workout completed, invoice sent.
  • Respect the quota. iOS silently caps prompts at three per year; over-asking just burns them.
  • Reply to negative reviews. Both stores surface responses, and a reply that leads to an edited review is worth more than a new five-star.

Measure the funnel, not the installs

Both consoles give you impressions → product page views → installs. That funnel tells you which problem you have. Low impressions is a keyword problem. Good impressions but few page views means your icon and title aren't earning the tap. Plenty of views but few installs is a screenshots and ratings problem.

Fix the stage that's actually leaking. Most teams rewrite keywords when their real problem is that screenshot one is a login form.

Building something with Flutter?

We'll tell you honestly whether Flutter is right for it — including when it isn't. Free 30-minute call, no pitch deck.