Skip to content

Beginner · Dart basics · topic 1 of 50 · 20 min

Flutter and Dart: the big picture

Explanation

Flutter is Google's toolkit for building apps for Android, iOS, the web and desktop from one codebase, and Dart is the language Flutter apps are written in. Flutter draws every pixel itself with its own rendering engine, so apps look the same everywhere. Dart compiles to fast native code for release and supports hot reload during development.

One codebase, many platforms

Traditionally, a company that wanted an Android app and an iPhone app needed two teams: one writing Kotlin for Android, one writing Swift for iOS. Flutter lets one team write one codebase in Dart and build apps for Android, iOS, the web, Windows, macOS and Linux. For startups and agencies in India, where budgets are tight and most users are on Android but some customers use iPhones, this is very attractive.

How Flutter is different

Most cross-platform tools translate your UI into the platform's own buttons and text fields. Flutter instead draws everything itself on a canvas, using its own rendering engine (Impeller is now the default renderer on iOS and on modern Android devices). That is why a Flutter app looks and behaves the same on every phone, and why custom designs and animations are easy.

Why Dart?

  • During development, Dart runs with a just-in-time (JIT) compiler that supports hot reload: change code and see the result in about a second without losing the app's state.
  • For release, Dart is compiled ahead of time (AOT) into fast native machine code, so apps start quickly and run smoothly.
  • Dart has sound null safety, classes, async/await and a familiar C-style syntax; developers who know Java, Kotlin, JavaScript or C# pick it up quickly.
Think of it like this: Most cross-platform tools are like translators who turn your speech into each local language using local words. Flutter is like bringing your own projector and screen to every venue: whatever the hall, the audience sees exactly the same film.

Who uses Flutter

Flutter is used by many startups, agencies and large companies. A well-known public example in India is Google Pay, whose app was rebuilt with Flutter. Many smaller apps you use daily (local delivery, education, booking apps) are also Flutter apps, because one team can ship to Android and iOS together.

Flutter, native or React Native?

ChoiceStrengthsTrade-offs
Flutter (Dart)One codebase, consistent custom UI, hot reload, good performanceLarger app size than a minimal native app; platform-specific features may need plugins or native code
Native Android (Kotlin) / iOS (Swift)Full platform access, newest features first, best platform feelTwo codebases and usually two teams
React Native (JavaScript)Uses web skills and native componentsDifferent architecture; performance and styling trade-offs

There is no single best choice. Flutter is excellent for most business apps, startups and MVPs (minimum viable products). Apps that depend deeply on the newest platform features, or games, may choose differently.

Common mistakes when starting

  • Skipping Dart and jumping into widgets. Weak Dart makes Flutter feel confusing; spend a week on Dart first.
  • Believing Flutter means "no native knowledge ever". Publishing, permissions and some plugins still need basic Android and iOS understanding.
  • Copying old tutorials written before Dart 3 and null safety. Prefer recent material.

Need help?

Stuck on a word or an idea? Search this course, or every course, and jump straight to the explanation or a worked question.

Try:

Watch the lesson

Flutter and Dart: the big picture · 1/6

One codebase → many platforms

Flutter is Google's toolkit for building apps for Android, iOS, web and desktop from one codebase.

Prefer a video by a teacher? Find free videos on “what is flutter dart explained cross platform introduction” on YouTube ↗

In real life: One team, two app stores

A Bengaluru startup building a pet-care booking app has three developers. With Flutter, they ship the Android and iOS apps on the same day from one codebase, and later add a simple web version for clinic staff. A bug fix in the booking logic is made once and reaches all platforms.

dart
void main() {
  const platforms = ['Android', 'iOS', 'Web'];
  print('One codebase for: ${platforms.join(', ')}');
}
Prints: One codebase for: Android, iOS, Web

Practice (0/2 done)

Task 1 · Question

Which language are Flutter apps written in?

Task 2 · Practice

Write a short note (6 to 8 lines) for a small business owner explaining what Flutter is, one reason it could save money for their app, and one situation where native development might be better.

Quick quiz

Question 1

1.How does Flutter render its UI?

Question 2

2.What makes hot reload possible during development?

Question 3

3.How is Dart compiled for release builds?

Question 4

4.Which is a fair trade-off of Flutter?

Read more (free)

Open a question to see the answer and why. The first ones are this topic's own quiz, so try the quiz above before you peek.

How does Flutter render its UI?

Answer: It draws everything itself with its own engine

That is why it looks consistent everywhere.

What makes hot reload possible during development?

Answer: Dart's JIT compilation in debug mode

JIT lets code be swapped into the running app.

How is Dart compiled for release builds?

Answer: Ahead of time into native code

AOT gives fast start-up and smooth performance.

Which is a fair trade-off of Flutter?

Answer: Some platform features need plugins or native code

Plugins bridge to native APIs.

Which key triggers hot restart in the flutter run terminal?Related

Answer: R

Lowercase r is hot reload; capital R is hot restart.

From Project structure and hot reload

Does the Flutter SDK include Dart?Related

Answer: Yes, Dart is bundled

The Flutter SDK ships with the Dart SDK.

From Installing Flutter

What do you need to build a Flutter Windows desktop app?Related

Answer: Visual Studio with the C++ desktop workload

flutter doctor lists it.

From Flutter on the web and desktop

Why do many startups and agencies like Flutter?Related

Answer: One team can ship Android, iOS and web from one codebase

Saves time and cost.

From Flutter jobs and freelancing in India

Pass the quiz (60% or more) or mark this topic as done when you are ready.

Your progress is saved on this device only.

Next steps

  1. 3 more topics in “Dart basics” before its exam: Your first Dart program, variables and types, Control flow and collections, Functions.
  2. Module 1 exam: Dart basics · 13 questions · 20 min, without help. 4 topics of this module still to finish first.
  3. Then the next module, Null safety and object-oriented Dart. 50 topics left in the course before the final exam.