Skip to main content
Completed 0%
0 / 18
You are currently viewing the course index. Please log in to enrol into the course and get full access.
Log in and enrol

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".

EDDIE, Edvance
Politecnico
Finanziato EU MUR, Ministero Università e Ricerca Italia Domani Edvance

Intended Learning Outcomes

At the end of this course, you will be able to:

  1. Create multi-screen Flutter apps
    ESCO: develop software prototype
  2. Identify the most appropriate navigation pattern for a given application structure
    ESCO: use software design patterns
  3. Manage complex stateful components effectively
    ESCO: design user interface
  4. Use external Flutter packages to extend application functionality
    ESCO: use software libraries
  5. Understand the principles of responsive and adaptive layouts
    ESCO: manage engineering project
  6. Create responsive and adaptive layouts for different devices and screen sizes
  7. 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

  • Content available if you are enrolled in this course
  • Content available if you are enrolled in this course
  • 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.

    Content available if you are enrolled in this course
  • 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.

    Content available if you are enrolled in this course
  • 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.

    Content available if you are enrolled in this course
    • Folder icon
      Video transcripts Folder
      Content available if you are enrolled in this course

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

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.