Introduction to Mobile App Development
• Introduction to mobile app development
• History
• Platforms
• Native vs Hybrid Apps
• Existing Tools
• Why Flutter? Why Dart?
• Mobile Development ket terms
Introduction to Dart
• History and Introduction
• Basics: Enviroment, Syntax, Data Types, Variables, Operators, Loops, Decision making, List, Map, Functions, Parameters (Default+Named)
• OOP with Dart: Class, Constructor, Inheritance, Interfaces, Mixins, Overriding, Operator overloading
• Intermediate Dart: Keywords, Null Safety, Getters & Setters, Exception handling
• Advanced Dart: Lambdas, Higher Order Functions, Closures, Future, Stream.
Introduction to Flutter
• Introduction and History
• Flutter project overview
• Flutter UI
• Flutter Architecture
• Flutter Key Terms
Development Environment Setup
• Installing Dart+Flutter on Windows/Linux/Mac
• Setting up Emulators
• Setting up VMWare & XCode for iOS development
• Connecting with Android and iOS devices
Git Basics
• Creating repository on local and GitHub
• Pushing local changes into the repository
• Pulling and cloning projects from the repository
• Branching
• Merging and pull requests
UI Design with Flutter
• Flutter App Structure
• Introduction to Widgets
• Build Method
• Stateful vs Stateless Widgets
• Some Important Widgets
• Layout Widgets
• Handling gestures
• Building complex UI
• Navigation and Routing
Communicating with the world
• Consuming REST API's
• Working with JSON
• JSON to models
• Displaying data from API
• Future & sync await
• Using third party packages
Data storage & Assets
• Using Assets
• Reading and Writing FIles
• Shared preferences
• SQLite (Creating databases, issuing queries)
• Firebase (Firestore & Realtime databases)/ Storage/ Authentication
Forms & Validation
• Creating Login Screen
• User Input and Keyboard
• Retrieving Form values
• Form Validation
• Global Keys
• Form submission
• Mixins and Validations
Animations in Flutter
• Animation basics
• Implicit & Explicit Animation
• Common animation widgets
• Animation Controller
• Tween Animation
• Hero Effect
• Animated Builder
• Paraller Animation
Reactive programming with Flutter
• Introduction to Streams
• Working with streams
• Handling stream data
• Working with RxDart
• Broadcast streams
• Observable, PublishSubject, BehaviourSubject & ReplaySubject
• Implementing BLOC with streams
State management with Flutter
• Introduction & why state management
• State management approaches (Provider/Riverpod/BLOC)/Stacked
• State management with Riverpod
• Implementing a project in Riverpod
• Provider &ScopedModel
• State management with BLOC
• Implementing a project in BLOC
Basic Testing
• Types of tests
• Unit Testing
• Integration Testing
• Mocking HTTP requests
Custom components & packages
• Creating custom components
• Creating basic packages
App publishing
• Creating release builds
• Code Obfuscation
• Signing apps
• Performance and other optimization
• Creating developer accounts on App Store and Play Store
• Publishing apps on Play Store
• Publishing apps on App Store
Misc
• Camera, Custom Paint, Advanced Design, Sensors, Permission Handling, File IO, Push Notifications, Multipart form requests, Google Maps, Location, Swipe to refresh etc.
Bonus
• Project Structuring
• Project Management
• Design Patterns
• Creating and Publishing Packages to pub.dev
• Firebase (Authentication, hosting, functions, cloud messaging, In App messaging, Remote config, dynamic links)
What's Next
• Final Project
Write a public review