# Flutter

Flutter is an open-source framework from Google for building apps for iOS, Android, web, and desktop from one codebase, written in the Dart language, that draws its own interface instead of using each platform's built-in components.

Also called: Flutter app development, Dart, Flutter framework.

## In short

- Flutter builds apps for **iOS, Android, web, and desktop** from one codebase in Dart.
- It draws every pixel itself, so the app looks the same on every platform unless you style it per platform.
- It suits apps with a strong custom look and teams willing to work in Dart.
- Flutter on the web is better for app-like tools than for content sites that depend on search.

## How Flutter works

Google released the first stable version of Flutter, 1.0, in December 2018. Apps are written in Dart, a language also made by Google. Instead of asking iOS or Android to draw a button, Flutter draws the whole interface itself with its own rendering engine, much like a game engine draws a scene.

That design is the main thing to understand about Flutter. Because it controls every pixel, a Flutter app looks identical on an iPhone and an Android phone, and custom designs are straightforward to build. The trade-off is that Flutter has to recreate the look and behavior of each platform's controls, and it follows platform changes rather than getting them automatically.

**Diagram: Two ways to draw an interface.**

**Flutter**
- Draws every control itself
- Same look on every platform
- Custom designs are easy
- Platform style is recreated

**React Native and native**
- Uses the platform's own controls
- Looks at home on each platform
- Custom designs take more work
- Platform updates arrive automatically

_Neither approach is better in general. The right one depends on whether the product should look like its platform or like itself._

## What developers like about it

- **Hot reload.** Code changes appear in the running app in about a second, which makes interface work fast.
- **One codebase, many targets.** The same project can produce iOS, Android, web, Windows, macOS, and Linux apps.
- **A complete widget set.** Flutter ships with a large library of components, including Material and iOS-style ones.
- **Consistent rendering.** Fewer surprises where a screen looks right on one platform and broken on another.

Google uses Flutter in some of its own apps, and many companies run it in production, so it is a mature choice. The questions are about fit, not about whether it works.

## Flutter compared

| Factor | Flutter | React Native |
| --- | --- | --- |
| Language | Dart | JavaScript or TypeScript |
| Interface | Draws its own | Uses native components |
| Hiring pool | Smaller, Dart is less common | Large, shared with web React |
| Web output | App-like, less suited to search | Separate web code, often shared logic |
| Best for | Custom, brand-led interfaces | Platform-native feel, React teams |

See [React Native](https://www.choie.co/glossary/react-native) for the other main cross-platform option, and [native vs cross-platform apps](https://www.choie.co/glossary/native-vs-cross-platform-apps) for how both compare with building separately for iOS and Android.

Hiring matters after launch too. At Choie, the source code written for a client is theirs once each deliverable is paid for, so the framework has to be one their next developers can work in.

## When Flutter is a good choice

- **The design is strongly custom.** A distinctive brand look that should be the same everywhere.
- **You need many platforms from one team.** Mobile plus desktop, or kiosks and embedded screens.
- **Your team knows Dart or is willing to learn.** Developers coming from Java, Kotlin, or C# usually pick it up quickly.
- **The app is interface-heavy.** Animations, charts, and custom controls are where Flutter is strongest.

Think twice if the product needs a website that ranks in search, since Flutter's web output is drawn rather than written as ordinary HTML. A separate site, or a [progressive web app](https://www.choie.co/glossary/progressive-web-app) built with standard web tools, usually serves that better. Also consider hiring: if you expect to grow an in-house team, check how easily you can find Dart developers where you hire.

> **Choose with the team in mind.** The framework a team knows well usually produces a better app than the theoretically better framework it is learning. It is a [tech stack](https://www.choie.co/glossary/tech-stack) decision as much as a technical one.

A Choie [mobile app build](https://www.choie.co/services/mobile-app-development) covers iOS, Android, or both as real apps, not wrappers around a website, with the approach agreed in the written scope. Builds start at $19,000.

## Common mistakes

- **Ignoring platform conventions.** An app that looks like Android on an iPhone can feel wrong to iOS users.
- **Using Flutter web for a marketing site.** Content that should be found by search engines belongs in standard HTML.
- **Underestimating native work.** Payments, notifications, and some device features still need per-platform setup.
- **Choosing it only for speed.** Fast interface work helps, but the core work of a product takes the same thinking in any framework.

That thinking comes first in Choie's builds. Weeks one and two settle the flows, the hierarchy, and what to cut, with a first live link on the first Friday, because those choices shape an app more than its framework does.

## Common questions

### Is Flutter better than React Native?

Neither is better across the board. Flutter suits teams that want one custom look drawn the same on every platform, while React Native suits teams that know React and want each platform's own interface components.

### What language does Flutter use?

Flutter apps are written in Dart, a language developed by Google. It feels familiar to developers who know Java, Kotlin, C#, or TypeScript.

### Can Flutter build web apps?

Yes. Flutter can build web apps, which suit app-like tools and dashboards. Because the interface is drawn rather than written as standard HTML, it is a weaker choice for content sites that depend on search.

### Is Flutter good for startups?

It can be, especially for apps with a custom design that need to ship on iOS and Android with one team. Consider how easily you can hire Dart developers if you plan to grow an in-house team. When Choie scopes a mobile build, the platforms and the approach are written down before work starts.

Related: [Native vs cross-platform apps](https://www.choie.co/glossary/native-vs-cross-platform-apps), [React Native](https://www.choie.co/glossary/react-native), [Custom mobile app](https://www.choie.co/glossary/custom-mobile-app), [Progressive web app (PWA)](https://www.choie.co/glossary/progressive-web-app), [Tech stack](https://www.choie.co/glossary/tech-stack).

HTML: https://www.choie.co/glossary/flutter
