App Development Fundamentals
Learn Dart and Flutter — write one codebase that runs as a real mobile app on both iOS and Android.
1
units
11
lessons
22
practice questions
~165
minutes
Start learning today
Create a free account, then unlock this and every other Pro course with Learnix Pro for KES 999/month.
Create free account I already have an accountOutcomes
What you'll be able to do
Write basic Dart code — variables, functions, classes
Understand how Flutter builds a UI from widgets
Build layouts with Row, Column and Container
Manage simple state with StatefulWidget
Navigate between multiple screens
How it works
Read it, see it, practise it
Each lesson explains one topic clearly, shows worked examples, checks your understanding with quick questions and ends with a practical task you complete yourself.
Clear explanations
Step-by-step lessons in plain language
34 in this course
Worked examples
Real code and examples you can copy and run
44 in this course
Quick checks
Test your understanding as you go
11 in this course
Fill the blank
Recall the key commands and syntax
11 in this course
Hands-on workspace
A practical task at the end of every lesson
11 in this course
Syllabus
Everything you'll encounter
Why Flutter? Cross-Platform in One Codebase
Building an app for both iPhone and Android used to mean building it twice. Flutter lets you write it once and get both — that's the whole idea, and it's a big deal.
Dart Basics
Dart is the language Flutter apps are written in, and if you've ever brushed up against JavaScript or Java, its variables, functions and classes will feel comfortably familiar.
Flutter Widgets Basics
A StatelessWidget describes a piece of screen that never changes on its own, like a printed poster — it's the simplest widget and the natural place to start.
Layouts: Row, Column and Container
Column stacks widgets vertically, Row lines them up horizontally, and Container wraps a widget in padding, size, or a background — together these three build nearly every screen you'll ever make.
State Management Basics
A StatefulWidget can redraw itself when its data changes — setState() is the phrase you use to tell Flutter "something just changed, please redraw this."
Navigating Between Screens
Flutter treats your app's screens like a stack of plates — Navigator.push places a new one on top, Navigator.pop lifts it off and reveals whatever was underneath.
Working with Lists: ListView
Real apps rarely show a fixed handful of items — ListView is Flutter's widget for displaying a scrollable list of however many items your data actually has, built efficiently no matter how long that list gets.
Forms and User Input
TextField and TextEditingController are how a Flutter app captures what a user types — the same building block behind every login form, search box, and comment box you'll ever build.
Making API Calls from a Flutter App
Most real apps aren't self-contained — they fetch data from a server over the internet using the exact same request/response pattern from the AI Fundamentals course, just for regular app data instead of AI responses.
Local Storage: Remembering Data on the Device
Not everything needs a server — SharedPreferences lets a Flutter app save small pieces of data directly on the phone itself, so simple settings and preferences survive even after the app is closed.
Styling and Theming Your App Consistently
Setting colors and fonts one widget at a time gets messy fast — Flutter's ThemeData lets you define your app's look once, centrally, and have every widget pick it up automatically.
Finish the course, earn a verifiable certificate
Complete every lesson to receive a Learnix certificate with a unique number anyone can verify online.