Beginner · Dart basics · topic 1 of 50 · 20 min
Flutter and Dart: the big picture
Explanation
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.
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?
| Choice | Strengths | Trade-offs |
|---|---|---|
| Flutter (Dart) | One codebase, consistent custom UI, hot reload, good performance | Larger 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 feel | Two codebases and usually two teams |
| React Native (JavaScript) | Uses web skills and native components | Different 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
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.
void main() {
const platforms = ['Android', 'iOS', 'Web'];
print('One codebase for: ${platforms.join(', ')}');
}Practice (0/2 done)
Which language are Flutter apps written in?
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
Read more (free)
Related help
Related topics
- Your first Dart program, variables and typesDart basics · same module
- Control flow and collectionsDart basics · same module
- FunctionsDart basics · same module
- Project structure and hot reloadFlutter setup and your first app
- Installing FlutterFlutter setup and your first app
- Flutter on the web and desktopPublishing to the stores and the web
Questions people ask about this
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
Does the Flutter SDK include Dart?Related
What do you need to build a Flutter Windows desktop app?Related
Answer: Visual Studio with the C++ desktop workload
flutter doctor lists it.
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.
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
- 3 more topics in “Dart basics” before its exam: Your first Dart program, variables and types, Control flow and collections, Functions.
- Module 1 exam: Dart basics · 13 questions · 20 min, without help. 4 topics of this module still to finish first.
- Then the next module, Null safety and object-oriented Dart. 50 topics left in the course before the final exam.