FI:PV292 Flutter App Development - Course Information
PV292 Multiplatform Flutter Application Development
Faculty of InformaticsAutumn 2024
- Extent and Intensity
- 2/1/1. 4 credit(s) (plus extra credits for completion). Type of Completion: k (colloquium).
In-person direct teaching - Teacher(s)
- Mgr. Rastislav Mirek (lecturer)
Bc. Pavel Jakubec (seminar tutor)
Bc. Vladimír Korenčik (seminar tutor)
Bc. Nina Rybárová (seminar tutor)
Mgr. Jakub Bateľ (seminar tutor)
Bc. Alžbeta Hajná (seminar tutor)
doc. Ing. RNDr. Barbora Bühnová, Ph.D. (lecturer) - 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. 9. to Wed 11. 12. Wed 18:00–19:50 A217
- Timetable of Seminar Groups:
PV292/02: Mon 16. 9. to Mon 9. 12. Mon 16:00–17:50 A320, A. Hajná
PV292/03: Tue 17. 9. to Tue 10. 12. Tue 18:00–19:50 A320, N. Rybárová
PV292/04: Mon 16. 9. to Mon 9. 12. Mon 18:00–19:50 A320, P. Jakubec - Prerequisites (in Czech)
- PB162 Java || PV168 Seminar in Java programming || PA165 Java Enterprise Applications || PV178 Introduction to C#/.NET || PV256 Development for Android || PB138 Web dev and 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: 82/80, only registered: 31/80, only registered with preference (fields directly associated with the programme): 15/80 - fields of study / plans the course is directly associated with
- Deployment and operations of software systems (programme FI, N-SWE)
- Design and development of software systems (programme FI, N-SWE)
- 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.
- Enrolment Statistics (recent)
- Permalink: https://is.muni.cz/course/fi/autumn2024/PV292