Flutter-based Software Development

A tantárgy neve magyarul / Name of the subject in Hungarian: Flutter alapú szoftverfejlesztés

Last updated: 2024. március 26.

Budapest University of Technology and Economics
Faculty of Electrical Engineering and Informatics
Course ID Semester Assessment Credit Tantárgyfélév
VIAUAV45   2/0/0/f 2  
3. Course coordinator and department Dr. Ekler Péter,
4. Instructors

Name:

Role:

Department:

Dr. Ekler Péter

Associate Professor

Automatizálási és Alkalmazott Informatikai Tanszék

Dr. Forstner Bertalan

Associate Professor

Automatizálási és Alkalmazott Informatikai Tanszék

Pásztor Dániel

PhD Student

Automatizálási és Alkalmazott Informatikai Tanszék

Juhos István 

Vogel Csongor 

5. Required knowledge Object Oriented Programming
7. Objectives, learning outcomes and obtained knowledge
The aim of the course is to introduce methods and best practices for software development using the Flutter framework and the associated Dart programming language. Students will be introduced to the main components of the framework, its architecture and the main libraries used to build an application. Through the framework, the paradigm of declarative UI programming will be introduced, learning about several patterns that are available on other platforms.

8. Synopsis
The schedule of the semester for the weeks:

1.

A brief history of the Dart language. Dart syntax overview and example codes in DartPad. A brief history of the Flutter framework. Installation of Flutter and Dart SDKs, managing updates. Configuring Android Studio, installing the Flutter plugin.

2.

Analysis of the architecture of a Flutter project. Understanding the basic elements of Flutter. Analysis of the example app Counter in Android Studio. State management using StatefulWidget and InheritedWidget.

3.

Main Flutter widgets: MaterialApp, Appbar, Text, Image, Icon, SizedBox, Transform. widgets that help layout UI elements.

4.

Widgets for data entry. Widgets for implementing Material Design elements. Options for solving navigation between screens. Design and implementation of custom UI widgets.

5.

Managing lists and grid views. List updating. The Sliver system. Animation options. Simultaneous support for phone and tablet.

6.

Basic management of HTTP connections. Installing code generators. Typical data formats and how to process them. Managing asynchronous communication with Future.

7.

Libraries to facilitate the management of network communication (Dio, Chopper). Calling a specific HTTP API, displaying the response in an application. Role of Widget Key, their use.

8.

Persistent data storage options. Simple key-value store: SharedPreferences and UserDefaults wrapper. File management, application cache and storage access. ORM database management solutions based on SQLite (Moor, Floor).

9.

NoSQL database management (Sembast, Hive). Complex application implementation with list management and database support. Firebase Data storage options: real time database, Cloud Firestore.

10.

Backend as a Service overview. Firebase capabilities. Login and user management. Crash reporting options. Analytics. FlutterFire libraries.

11.

Status management with Provider library. BLoC design pattern, implementation with bloc and flutter_bloc libraries. MobX state management.

12.

Multilingual support in Flutter application: flutter_localizations, flutter_i18n

13.

Implementation of architecture layers (repository layer, interactor layer, presenter layer, reducer layer, presentation layer). Dependency injection.

14.

Web and desktop platform support. Summary, outlook.
9. Method of instruction Presentation
10. Assessment During the semester: a Midterm is mandatory during the semester. A homework is also required during the semester. The deadline for submission is the penultimate class of the semester.
11. Recaps It is possible to make up the final examination or homework during the make-up period.
12. Consultations On request, in agreement with the rapporteur.
13. References, textbooks and resources
Lecture material, teacher's notes
Eric Windmill: Flutter in Action. Manning Publications, ISBN: 9781617296147, 2020
Flutter API Reference, https://api.flutter.dev/, 2020
14. Required learning hours and assignment
Class28
Preparation during the semester6
Preparation for the MidTerm14
Homework12
  
Exam preparation60
Sum
15. Syllabus prepared by

Name:

Role:

Department:

Dr. Ekler Péter

Associate Professor

Automatizálási és Alkalmazott Informatikai Tanszék

Dr. Forstner Bertalan

Associate Professor

Automatizálási és Alkalmazott Informatikai Tanszék

Pásztor Dániel

PhD Student

Automatizálási és Alkalmazott Informatikai Tanszék

Juhos István 

Vogel Csongor