Log in and enrol
Flutter development: navigation and adaptation
Flutter development: navigation and adaptation
How to create multi-screen applications, navigate between different screens, and design layouts that adapt dynamically to different screen sizes and device characteristics.
Course description
The course explores advanced Flutter development techniques for multi-screen applications. It covers navigation patterns based on stacks, tabs and drawers (rails). It also focuses on state management and state hoisting and adaptive layouts. The course concludes with realistic examples of responsive user interfaces for different devices and screen sizes.
Total workload of the course: 15 hours
This MOOC is provided by Politecnico di Milano.
This MOOC was produced as part of the Edvance project – Digital Education Hub per la Cultura Digitale Avanzata. The project is funded by the European Union – Next Generation EU, Component 1, Investment 3.4 “Didattica e competenze universitarie avanzate".



Intended Learning Outcomes
At the end of this course, you will be able to:
- Create multi-screen Flutter apps
ESCO: develop software prototype - Identify the most appropriate navigation pattern for a given application structure
ESCO: use software design patterns - Manage complex stateful components effectively
ESCO: design user interface - Use external Flutter packages to extend application functionality
ESCO: use software libraries - Understand the principles of responsive and adaptive layouts
ESCO: manage engineering project - Create responsive and adaptive layouts for different devices and screen sizes
- Evaluate alternative widgets and identify the most appropriate ones for specific design and development needs
Prerequisites
Basic knowledge and understanding of object-oriented programming languages like Java, C#, or Python.
Activities
Over and above consulting the content, in the form of videos and other web-based resources, you will have the opportunity to discuss course topics and to share ideas with your peers in the Forum of this MOOC. The forum of this MOOC is freely accessible, and participation is not guided; you can use it to compare yourself with other participants, or to discuss course contents with them.
Section outline
-
-
-
The first week introduces navigation in Flutter and explains how to build applications composed of multiple screens. It covers stack-based navigation and shows how to move between screens while passing parameters through parametric routes.
-
The second week focuses on data exchange between screens in Flutter applications. It presents practical examples of how a source screen can communicate with a target screen and explains how screens can return data to previous screens. The week concludes with an introduction to tab-based and drawer-based navigation patterns for organizing application content.
-
The third week introduces state management techniques and explains the concept of state hoisting for building maintainable applications. It also presents useful Flutter packages and explores how to create dynamic and adaptive layouts that respond to different screen sizes and device characteristics. The week concludes with realistic examples of responsive user interface design.
-
-
Video transcripts Folder
-
Assessment
Your final grade for the course will be based on the results of your answers to the assessed quizzes. You have an unlimited number of attempts at each quiz, but you must wait 15 minutes before you can try again. You will have successfully completed the course if you score 60% (or higher) in each one of the assessed quizzes. The maximum score possible for each quiz is given at the beginning of the quiz. You can view your score in the quiz on your last attempt or on the 'Grades' page.
Certificate
You can achieve a certificate in the form of an Open Badge for this course, if you reach at least 60% of the total score in each one of the assessed quizzes and fill in the final survey.
Once you have completed the required tasks, you will be able to access ‘Get the Open Badge’ and start issuing the badge. Instructions on how to access the badge will be sent to your e-mail address.
The Badge does not confer any academic credit, grade or degree.
Information about fees and access to materials
The course is delivered in online mode and is available free of charge.
Course faculty

Luciano Baresi
Teacher
Luciano Baresi is Full Professor at the Politecnico di Milano, within the Dipartimento di Elettronica, Informazione e Bioingegneria (DEIB). He has held visiting appointments at the University of Oregon (USA), Tongji University (China), and the University of Paderborn (Germany).
Professor Baresi has co-authored more than 200 publications, and his research covers a broad spectrum of topics in software engineering. He is the creator of the master’s-level course Design and Implementation of Mobile Applications at Politecnico di Milano and has been its instructor for the past decade.
Contact details
If you have any enquiries about the course or if you need technical assistance please contact pok@polimi.it. For further information, see FAQ page.