Course Code: advflutterbsk
Duration: 21 hours
Prerequisites:
  • Basic knowledge of Flutter, Dart, and Firebase
  • Experience with Android and iOS mobile apps development

Audience

  • Developers
Overview:

Flutter is an open-source UI framework created by Google that lets you build cross-platform applications for Android, iOS, web, and desktop operating systems.
This instructor-led, live training (online or onsite) is aimed at developers who wish to use Flutter to create cross-platform applications .

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.
Course Outline:

The outline below is a preliminary one, a starting point for identifying a course format fit for the delegates' learning objectives and level of knowledge, and can be further discussed and adjusted, both in terms of content and duration, during a technical call with NobleProg's trainer.

Introduction to Multi-Platform Development:
Overview of Flutter and Dart
Benefits of cross-platform development
Comparison with other cross-platform frameworks

Setting Up the Development Environment:
Installing Flutter SDK and Dart
Setting up IDE (Visual Studio Code, Android Studio)
Configuring emulators and simulators

Dart Programming Language:
Basic syntax and data types
Control structures (if, else, loops)
Functions and scope
Classes, objects, and inheritance
Asynchronous programming with async/await

Flutter Basics:
Widget hierarchy and the virtual DOM
Stateful vs. Stateless widgets
Building UI with widgets

Layouts (Row, Column, Stack, etc.)
Handling user input and gestures

Navigation and Routing:
Creating navigation routes
Navigating between screens
Passing data between screens
Named routes and route generation

State Management:
State management approaches (setState, Provider, Bloc, Riverpod)
Managing local and global state
Redux architecture in Flutter
State persistence using shared preferences or local databases

Working with APIs:
Making HTTP requests with http package
Handling RESTful APIs
Serializing and deserializing JSON data
Error handling and status codes

UI Design and Styling:
Theming and creating a consistent UI
Using Material Design and Cupertino widgets
Customizing widgets and creating reusable components
Responsive design principles

Advanced UI Concepts:
Animations and transitions
Custom painting and drawing
Handling different screen sizes and orientations

Platform Integration:
Using device features (camera, location, sensors)
Working with platform-specific APIs
Method Channels for native code integration

Testing and Debugging:
Unit testing and widget testing
Debugging techniques and tools
Performance profiling and optimization

Deployment and Publishing:
Building the app for different platforms (iOS, Android, Web)
App signing and certificates
Publishing to app stores (Google Play Store, Apple App Store)
Web deployment considerations

Continuous Integration and Delivery:
Code organization and project structure
Managing dependencies
Code documentation and commenting
Version control (Git) best practices

Case Studies and Real-World Applications:
Developing sample apps that showcase different features
Exploring successful apps built with Flutter and Dart

Future Trends and Updates:
Keeping up with Flutter updates and new features
Exploring Flutter for desktop and embedded platforms