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
Save
button. - 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 Item
button on the main page. - Display the data from the form in a
pop-up
after pressing theSave
button 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:
Home
andAdd Item
. - When selecting the
Home
option, the application should redirect the user to the main page. - When selecting the
Add Item
option, 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.md
in the root folder (please modify theREADME.md
you created earlier; add subtitles for each assignment).- What is the purpose of
const
in Flutter? Explain the advantages of usingconst
in 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
-push
to 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.