vissza a tantárgylistához   nyomtatható verzió    

    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