How to develop a basic mobile app in Flutter
How to develop a basic mobile app in Flutter
Course description
Creating software for smartphones is not simple. This course explains the process using a specific technology: Flutter, Google’s UI toolkit for building mobile, web, and desktop applications from a single codebase. With Flutter, you can create apps that run on both Android and iOS without needing to change the code.
After a brief introduction to the world of app development, the course presents Flutter and Dart, its programming language. Dart is an object-oriented language developed by Google, with a syntax similar to C or Java. The course then walks through the structure of a Flutter app and the steps a developer must follow to build a complete application.
Total workload of the course: 10 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
By actively participating in this MOOC, you will achieve different intended learning outcomes (ILOs).
- Understand the importance of cross-platform app development
ESCO: information and communication technologies (icts) - Understand what Flutter is
ESCO: software components libraries - Configure a complex working environment to develop Flutter apps
ESCO: integrated development environment software - Understand the differences between stateless and stateful widgets
ESCO: designing ict systems or applications - Learn how to compose different widgets and distribute them on the screen
ESCO: design user interface - Create single-screen apps
ESCO: mobile device software frameworks ESCO: software and applications development and analysis - Evaluate alternative widgets and identify the most appropriate ones for different needs
ESCO: think analytically
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 provides an overview of the mobile app market and explains why cross-platform development has become the best way to reach the widest possible audience. It also introduces the different ways to use Flutter and how it enables the creation of fully functional mobile applications.
-
The second week explains what a Flutter app is and how to build and run one using appropriate emulators. It then introduces widgets, the building blocks of graphical user interfaces, and clarifies the difference between stateless and stateful widgets. The week concludes with a short gallery of the most commonly used widgets.
-
The third week focuses on creating custom widgets for specific purposes, highlighting the different approaches required for stateless and stateful widgets. It also covers how to combine individual widgets to build more complex user interfaces.
-
The final week brings together all the concepts covered so far by introducing additional widgets and walking through a few more advanced examples. It also provides the main components needed to build a simple calculator app, demonstrating how the various elements can be integrated into a complete, functional application.
-
-
File 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 a 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.