Flutter Basics · Lesson 1 of 6
Why Flutter, and getting it running
Understand cross-platform development, Flutter's trade-offs, and get an app running on a real phone.
Prerequisite, honestly: you should have completed a programming course — python-for-beginners or javascript-basics — and ideally oop-fundamentals, because every single thing in Flutter is a class and the widget tree is inheritance in daily use.
The problem Flutter solves: Android apps were traditionally written in Kotlin or Java, iPhone apps in Swift. Two codebases, two skill sets, two sets of bugs, everything built twice. Cross-platform frameworks write once and run on both. Flutter is Google's, it renders its own interface rather than wrapping the platform's, and the result is that the same code produces an app that looks and behaves identically on both — plus web and desktop, though phones are where the work is.
Why Flutter rather than React Native, the main alternative: React Native suits teams that already write React (react-basics), because the language and much of the thinking transfer. Flutter uses Dart, a language almost nobody knows in advance, which sounds like a disadvantage and is not — Dart is easy for anyone who knows Python, Java or JavaScript, and Flutter's consistency across platforms and its performance are why it has grown fastest in markets like Pakistan. Our employer research named Flutter three times and React Native once; the local demand signal favours Flutter.
The honest limits: an app that needs deep platform-specific integration still requires native code, apps ship larger than native equivalents, and anything genuinely bleeding-edge on a platform arrives in Flutter later.
SETUP, which is the hardest part of this whole course and worth budgeting an evening for: install the Flutter SDK, install Android Studio for the Android toolchain and emulator, then run flutter doctor — a command that tells you exactly what is missing and is the most useful thing in the toolkit. Work through everything it flags until every line is a tick. VS Code with the Flutter extension is the lighter editor option once the SDK is in place.
Then create and run: flutter create hello_app, cd hello_app, flutter run. The counter app appears. Change some text in lib/main.dart, save, and watch HOT RELOAD update the running app in under a second without losing its state. That loop — edit, save, see it instantly on a real phone — is what makes Flutter pleasant to learn, and it is the moment most people decide they like this.
One local note: developing for iPhone requires a Mac for the final build and an Apple developer account to distribute. Android needs neither. Start on Android — that is where Pakistan's users are anyway.
Complete the setup until `flutter doctor` shows no errors, then run the default app on an emulator AND on your own Android phone over USB (enable Developer Options and USB debugging). Change the app title and the counter's step to 5, and confirm hot reload updates the running app. Note how long the setup took; it is the worst part and it is behind you.
Check what you learned
Create your free BvLogic ID to take the quiz and record your score.
Create your BvLogic ID