Welcome to Flutter Basics - your complete guide to learning Flutter development from scratch! This repository contains beginner-friendly projects, step-by-step tutorials, and hands-on examples to get you started with Flutter.
- Flutter fundamentals and architecture
- Dart programming basics
- Building responsive UIs with widgets
- State management concepts
- Navigation between screens
- Working with APIs and data
- Best practices for Flutter development
This repository is designed for:
- Complete beginners to Flutter
- Developers new to mobile app development
- Anyone wanting to learn cross-platform development
- Students and workshop participants
Before starting, make sure you have:
- Basic programming knowledge (any language)
- A computer with internet connection
- Enthusiasm to learn! π
Windows:
# Download Flutter from https://flutter.dev/docs/get-started/install/windows
# Extract to C:\flutter
# Add C:\flutter\bin to PATH
macOS:
# Using Homebrew
brew install --cask flutter
# Or download from https://flutter.dev/docs/get-started/install/macos
Linux (Ubuntu/Fedora):
# Download Flutter
wget https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.24.3-stable.tar.xz
tar xf flutter_linux_3.24.3-stable.tar.xz
# Add to PATH
export PATH="$PATH:`pwd`/flutter/bin"
echo 'export PATH="$PATH:$HOME/flutter/bin"' >> ~/.bashrc
# Install Android Studio (recommended) or VS Code
# For Android development, install Android SDK
# Verify installation
flutter doctor
git clone https://github.com/DevJude254/Flutter_basics.git
cd flutter-basics
flutter-basics/
βββ 01-hello-world/ # Your first Flutter app
βββ 02-widgets-basics/ # Understanding widgets
βββ 03-layouts/ # Creating layouts
βββ 04-stateful-widgets/ # Managing state
βββ 05-navigation/ # Screen navigation
βββ 06-forms-input/ # Forms and user input
βββ 07-lists-cards/ # Lists and cards
βββ 08-networking/ # API calls and HTTP
βββ 09-local-storage/ # Data persistence
βββ 10-final-project/ # Complete app project
βββ exercises/ # Practice exercises
βββ resources/ # Additional learning materials
βββ README.md # This file
- Day 1-2: Hello World App - Your first Flutter app
- Day 3-4: Widget Basics - Text, Container, Column, Row
- Day 5-7: Layouts - Building beautiful UIs
- Day 1-3: Stateful Widgets - Managing app state
- Day 4-5: Navigation - Moving between screens
- Day 6-7: Forms & Input - User interactions
- Day 1-3: Lists & Cards - Displaying data beautifully
- Day 4-5: Networking - Fetching data from APIs
- Day 6-7: Local Storage - Saving user data
- Day 1-7: Complete App - Build a full-featured app
flutter create my_first_app
cd my_first_app
flutter run
Everything is a Widget:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Text('Hello, Flutter Dev!'),
);
}
}
Hot Reload:
- Save your file (Ctrl+S / Cmd+S)
- See changes instantly in your app!
Widget Tree:
MaterialApp
βββ Scaffold
βββ AppBar
βββ Body
βββ Column
βββ Text
βββ Button
- Start Small: Don't try to build complex apps immediately
- Experiment: Change colors, text, and see what happens
- Use Hot Reload: It's Flutter's superpower!
- Read Error Messages: They're usually helpful
- Practice Daily: Even 30 minutes makes a difference
// Use print statements to debug
print('Debug: Button pressed');
// Use debugPrint for better console output
debugPrint('Value of counter: $counter');
// Use assert for development-time checks
assert(counter >= 0, 'Counter should not be negative');
# Create new Flutter project
flutter create project_name
# Run the app
flutter run
# Run on specific device
flutter run -d device_id
# Get list of connected devices
flutter devices
# Check for issues
flutter doctor
# Clean build files
flutter clean
# Get dependencies
flutter pub get
# Upgrade Flutter
flutter upgrade
Each folder contains:
- README.md - Step-by-step tutorial
- starter/ - Starting code template
- solution/ - Complete working solution
- challenges/ - Extra practice problems
- Change app colors and fonts
- Add your photo to the app
- Create a simple calculator
- Build a personal profile page
- Todo list app
- Weather app with API
- Image gallery
- Shopping list with local storage
If you complete the course you will build:
- Add/delete expenses
- Categorize spending
- View spending charts
- Data persistence
- Beautiful, responsive UI
Features you'll implement:
- β Custom widgets and themes
- β Form validation
- β Local data storage
- β Charts and graphs
- β Navigation drawer
- β Dark/light mode toggle
- Flutter.dev - Official website
- Flutter Documentation
- Dart Language Guide
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-lesson
- Commit changes:
git commit -m 'Add new lesson on animations'
- Push to branch:
git push origin feature/new-lesson
- Submit a Pull Request
- Keep examples simple and well-commented
- Include step-by-step explanations
- Test all code before submitting
- Follow Flutter/Dart style guidelines
Found a bug or have a question?
- Check existing Issues
- Create a new issue with:
- Clear description
- Steps to reproduce
- Expected vs actual behavior
- Screenshots (if applicable)
Ready to dive in? Start with:
- Hello World App - Get your development environment working
- Join our community discussions
- Follow along with the weekly learning path
Happy Flutter Learning! ππ±
β Star this repository if you find it helpful! π΄ Fork it to customize for your learning journey! π’ Share it with friends who want to learn Flutter!
Made with β€οΈ by Jude for the Flutter community