PV292 Multiplatform Flutter Application Development

Faculty of Informatics
Autumn 2023
Extent and Intensity
2/1/1. 4 credit(s) (plus extra credits for completion). Type of Completion: k (colloquium).
Taught in person.
Teacher(s)
doc. Ing. RNDr. Barbora Bühnová, Ph.D. (lecturer)
Mgr. Rastislav Mirek (lecturer)
Bc. Pavel Jakubec (seminar tutor)
Mgr. Jakub Bateľ (seminar tutor)
Bc. Alžbeta Hajná (assistant)
Bc. Matěj Gorgol (assistant)
Poskytovatelé Specifické podpory výuky
Zbyněk Cincibus (přepisovatel)
Guaranteed by
doc. Ing. RNDr. Barbora Bühnová, Ph.D.
Department of Computer Systems and Communications – Faculty of Informatics
Supplier department: Department of Computer Systems and Communications – Faculty of Informatics
Timetable
Wed 18:00–19:50 A217
  • Timetable of Seminar Groups:
PV292/01: Wed 16:00–17:50 A318, J. Bateľ
PV292/02: Tue 18:00–19:50 A319, P. Jakubec
PV292/03: Thu 18:00–19:50 A320, P. Jakubec
PV292/04: Tue 16:00–17:50 A319, J. Bateľ
Prerequisites (in Czech)
PB162 Java || PV168 Seminar in Java programming || PA165 Java Enterprise Applications || PV178 Introduction to C#/.NET || PV256 Development for Android || PB138 Modern markup languages || SOUHLAS
Course Enrolment Limitations
The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 80 student(s).
Current registration and enrolment status: enrolled: 69/80, only registered: 0/80, only registered with preference (fields directly associated with the programme): 0/80
fields of study / plans the course is directly associated with
Course objectives
The course focuses on concepts and modern trends in frontend development such as declarative UI and multiplatform development. It introduces the Flutter framework that supports single-source UI compilation for Android, iOS, Windows, Linux, macOS and web browsers. The course focuses on architecture, object-oriented design and best-practices of declarative UI development, considering the conventions and principles of development in the Flutter framework. Specifics of mobile, desktop and web UIs and adapting Flutter applications to them will also be discussed. In the second half of the course, students will develop a team project to experience designing and developing an application using Flutter technology. The course also aims to present students with practical knowledge and experience of developing applications (not only) using this technology.
Learning outcomes
Upon completion of this course, the student will: - know the principles, tools, patterns and techniques accompanying the development of Flutter applications - be able to design and program, independently or in a team, a complex Flutter application executable on a platform supported by the framework or on all these platforms - understand the specifics of developing declarative user interfaces - know the conventions, best-practices and most common solutions for managing the global state of Flutter applications - be proficient in Android Studio or Visual Studio Code (at the student's choice) in the aspects of Android Studio relevant to Flutter application development - Know the specifics of mobile, desktop and web platforms and multi-platform responsive user interfaces
Syllabus
  • Introduction to Dart language and Flutter SDK framework, widget as a UI building block, StatelessWidget, basics of widget layout on screen, motivation and comparison with selected frontend frameworks StatefullWidget, UI to widget decomposition techniques, widget reusability, Dart language conventions and fundamentals of Flutter application architecture Navigation, advanced widget layout, Flutter layout principles, multiplatform UI development process, responsive UI, basics of asynchronous programming in Dart The Flutter package ecosystem, managing application state in declarative UI frameworks, the concept and possibilities of (global) state management in the Flutter framework, managing application state using the ChangeNotifier with Provider technique Dependency injection in Flutter, advanced architecture and state management of Flutter applications, Stream, StreamBuilder, RxDart, the concept of UI as a state function InheritedWidget, application state management using Bloc pattern, Flutter application theming Selected aspects of architecture and development of modern, commercial Flutter applications, BaaS concept, Firebase and Flutter Firestore SDK, relation of widget tree to element tree Team project
Teaching methods
seminar form, compulsory attendance, team project
Assessment methods
The course is based on active participation of students. As an output, students will work in independent teams of 2-3 people on a final project and prepare a presentation (5 minutes) for other course participants. For successful completion, active participation in lectures and seminars, the completion of three homework assignments, the successful completion and presentation of the project and the fulfillment of any requirements specified by the instructor are required.
Language of instruction
Czech
Further Comments
Study Materials
The course is taught annually.
The course is also listed under the following terms Autumn 2024.
  • Enrolment Statistics (recent)
  • Permalink: https://is.muni.cz/course/fi/autumn2023/PV292