Course Outline:
Month 1: Foundations of Dart & Flutter Development
Week 1: Dart Basics and Flutter Setup
Introduction to Dart language and features
- Setting up Dart SDK and tools
- Basic syntax: variables, data types, and constants
- Control flow: if-else, switch-case, loops (for, while, do-while)
- Functions and methods: parameters, return types, optional/named parameters
- Collections: Lists, Sets, Maps and basic operations
- Flutter environment setup: installing SDK, creating and running first Flutter app
Week 2: Flutter Widgets & Layouts
- Flutter widget tree and widget types overview
- StatelessWidget vs StatefulWidget
- Common layout widgets: Row, Column, Container
- Using padding, margin, and alignment for UI design
- Text, Image, and Icon widgets usage
- Understanding build() method and widget lifecycle basics
- Creating reusable custom widgets
Week 3: State Management and Navigation
- Understanding state and managing it with setState()
Widget rebuilding and performance considerations
Navigation basics: Navigator.push, Navigator.pop
Passing data between screens
Managing routes and named routes
Using BottomNavigationBar and TabBar for multi-screen navigation
Handling back button and lifecycle events
Week 4: Forms, Input & Validation
TextField widget and user input handling
Form widget and form fields
Input validation techniques
Managing focus and keyboard actions
Handling form submission and error messages
Using controllers and listeners for TextField
Customizing input decoration and styling
Month 2: Intermediate Flutter & State Management
Week 1: Networking and Async Programming
- Making HTTP requests with http package
- Handling JSON data and parsing to Dart objects
- Futures, async and await keywords
- Error handling in network calls
- Displaying loading indicators and error states
- Using ListView to display dynamic data
- Pagination basics and infinite scrolling
Week 2: Persistent Storage
- SharedPreferences: saving and retrieving key-value pairs
- SQLite basics and setup with sqflite package
- CRUD operations on SQLite database
- Choosing between SharedPreferences and SQLite
- Using FutureBuilder to load stored data asynchronously
- Handling database versioning and migrations
- Best practices for local data persistence
Week 3: Animations & Advanced Widgets
- Animation basics: AnimationController and Tween
- Implicit vs explicit animations
- Using AnimatedContainer, AnimatedOpacity, and AnimatedBuilder
- GestureDetector for user interaction
- Custom widgets and composing complex UI
- Sliver widgets and scroll effects
- Hero animations for screen transitions
Week 4: Provider State Management
- Introduction to Provider and its advantages
- ChangeNotifier and ChangeNotifierProvider
- Consumer widget and context.watch()
- Organizing app state and business logic
- Multiple providers and proxy providers
- Testing Provider-based apps
- Debugging and best practices
Month 3: Advanced Flutter Conceptst
Week 1: Bloc Pattern and Reactive Programming
- Understanding Bloc architecture and benefits
- Bloc vs Cubit: when to use which
- Streams and reactive data handling
- Creating Blocs and events
- Using BlocBuilder and BlocListener widgets
- Handling complex state changes
- Debugging Bloc states and events
Week 2: Testing and Debugging
- Unit testing Dart functions
- Widget testing basics
- Integration testing Flutter apps
- Writing effective test cases
- Using Flutter DevTools for debugging
- Performance profiling and memory leak detection
- Logging and error reporting
Week 3: Theming, Dark Mode & Responsive UI
- Defining custom themes and colors
Implementing dark mode support
Using MediaQuery and LayoutBuilder for responsiveness
Adaptive UI for tablets and phones
Custom fonts and typography
Accessibility considerations
Animating theme changes
Week 4: Firebase Authentication & Firestore
Setting up Firebase project and FlutterFire
Firebase Authentication methods: email/password
User registration and login flows
Firestore data modeling and CRUD operations
Real-time data updates with Firestore streams
Securing data with Firestore rules
Handling user sessions and logout
Month 4: Backend & Cloud Services
Week 1: Firebase Cloud Messaging
- FCM overview and use cases
- Setting up Firebase Cloud Messaging in Flutter
- Handling foreground and background notifications
- Customizing notification appearance and behavior
- Managing device tokens and subscriptions
- Sending notifications via Firebase Console and Cloud Functions
- Testing and debugging push notifications
Week 2: Firebase Cloud Functions
- Introduction to Cloud Functions
- Setting up Cloud Functions environment
- Writing and deploying serverless functions
- Triggering functions on Firestore events
- Validating and sanitizing data
- Using functions for business logic and backend processing
- Monitoring and logging Cloud Functions
Week 3: Background Tasks & Scheduling
- Understanding background execution limitations
Workmanager plugin setup and configuration
Scheduling periodic background tasks
Syncing remote data in background
Handling background task results and errors
Platform-specific considerations (iOS/Android)
Testing background tasks effectively
Week 4: Analytics, Crashlytics & Performance Monitoring
Firebase Analytics setup and event tracking
Creating custom analytics events
Crashlytics integration for crash reporting
Remote Config for dynamic app updates
Performance Monitoring setup
Analyzing app performance metrics
Using data to improve user experience
Month 5: Advanced UI, Animations & Optimization
Week 1: Complex Animations
- Hero animations for shared element transitions
- Staggered animations for multi-step effects
- AnimationController and Tween sequences
- Curves and easing functions
- Using AnimatedBuilder for custom animations
- Combining animations with gestures
- Optimizing animations for performance
Week 2: Gesture Handling
- GestureDetector and Listener widgets
- Handling tap, double tap, long press
- Drag and drop gestures
- Pinch-to-zoom and rotate gestures
- Custom gesture recognizers
- Gesture arenas and gesture disambiguation
- Combining gestures with animations
Week 3: Performance Profiling & Optimization
- Using Flutter DevTools profiler
Identifying expensive widget rebuilds
Using const constructors and keys effectively
Reducing overdraw and layout passes
Optimizing images and assets
Memory leak detection and fixes
Best practices for smooth scrolling
Week 4: Responsive Design & Accessibility
Responsive layouts using Flex, Expanded, and LayoutBuilder
Using MediaQuery for device size adaptations
Supporting multiple screen orientations
Accessibility fundamentals: semantics and labels
Implementing TalkBack and VoiceOver support
Keyboard navigation and focus management
Testing accessibility features
Month 6: Deployment, CI/CD & Capstone
Week 1: Preparing for Release
- Code signing and certificates for Android & iOS
- Versioning and build numbers
- Generating APK, AAB, and IPA builds
- App bundle optimization
- Obfuscation and shrinking code
- Testing release builds on devices
- Preparing release notes and documentation
Week 2: App Store & Play Store Publishing
- Creating developer accounts and store listings
- Preparing app assets and screenshots
- Uploading builds to Google Play Console
- Uploading builds to Apple App Store Connect
- Setting pricing and distribution
- Managing app updates and versioning
- Monitoring reviews and crash reports
Week 3: CI/CD Pipelines
- Overview of CI/CD concepts and benefits
Setting up GitHub Actions for Flutter builds
Using Codemagic and Bitrise for automation
Automating tests and static code analysis
Deploying builds to testing platforms
Notifications and reporting build status
Securing credentials and environment variables
Week 4: Capstone Project
Project planning and requirement gathering
Architecture and state management decisions
UI/UX design and prototyping
Backend integration and API usage
Testing and debugging
Deployment and launch preparation
Project presentation and code review
Training highlights:
- 100% Practical Training + Live projects
- In House Placements
- Training by experienced mentors cum developers.
- Daily assignments & notes will be provided.
About ToXSL:
- Tremendous Growth Opportunity!!
- Work with the newest and most cutting edge technologies!
- High Visibility, Autonomous Role in a Collaborative Environment!
- Outstanding Work/Life Balance!
- Competitive Compensation, Benefits, and other Perks!!
Scholarship Available!!