Assignment 8: Flutter Navigation, Layouts, Forms, and Input Elements
Platform-Based Programming (CSGE602022) — Organized by the Faculty of Computer Science, Universitas Indonesia, Odd Semester 2024/2025
Assignment Description
In this assignment, you will implement navigation, layout, form, and form input elements in the Flutter application you developed in the previous assignment.
The checklist for this assignment is as follows:
- Create at least one new page in the application, specifically a form page to add a new item with the following requirements:
- Use at least three input elements:
name,amount, anddescription. Add input elements according to the model in your previous Django project. - Include a
Savebutton. - Each input element in the form must also be validated with the following criteria:
- No input field should be left empty.
- Each input field must contain data in the model's data type.
warningPay attention to cases such as negative numbers, minimum string length (if applicable), maximum string length (if applicable), and so on. It's not just about data types!
- Use at least three input elements:
- Redirect the user to the new item addition form when they press the
Add Itembutton on the main page. - Display the data from the form in a
pop-upafter pressing theSavebutton on the new item addition form page. - Create a drawer in the application with the following requirements:
- The drawer should contain at least two options:
HomeandAdd Item. - When selecting the
Homeoption, the application should redirect the user to the main page. - When selecting the
Add Itemoption, the application should redirect the user to the new item addition form page.
- The drawer should contain at least two options:
- Answer the following questions in
README.mdin the root folder (please modify theREADME.mdyou created earlier; add subtitles for each assignment).- What is the purpose of
constin Flutter? Explain the advantages of usingconstin Flutter code. When should we useconst, and when should it not be used? - Explain and compare the usage of Column and Row in Flutter. Provide example implementations of each layout widget!
- List the input elements you used on the form page in this assignment. Are there other Flutter input elements you didn’t use in this assignment? Explain!
- How do you set the theme within a Flutter application to ensure consistency? Did you implement a theme in your application?
- How do you manage navigation in a multi-page Flutter application?
- What is the purpose of
- Perform
add-commit-pushto GitHub.
Submission Deadline
The deadline for Assignment 8 is Wednesday, November 13, 2024, at 12:00 pm.
Teaching assistants will check the last commit from your task repository, so there is no need to submit the repository link in the submission slot.