APPLICATION DESIGN 2: PROJECT COMPILATION
Week 1-Week 15 (22/04/2026-27/06/2026)
Jennifer Michelle Hiendrawan/0374682
Application Design II/Bachelor of Design (Honours) in Creative Media
Project compilation
TABLE OF CONTENT
1.Lectures and Tutorial
2.Instructions
3.Task 1
4.Task 2
5.Task 3
6.Task 4
7.Feedback
LECTURES AND TUTORIAL
Week 1
Ms.Nurul briefed us about our project and gave us an exercise about AI critique, where we should use AI to critique our project and then we must also give our arguments based on the AI critique.
Fig 1.1 Exercise 1 AI critique
Week 2
Tutorial 2: Mobile UX audit
Fig 1.2 Exercise 2 Mobile UX Audit
This week, we also learn how to create a project on flutter flow
Fig 1.3 Create new project flutterflow
Week 3
Tutorial 3: Transitioning UI to backend logic
Fig 1.3 Exercise 3 Transitioning UI to backend logic
This week we also learn how to import figma colors to flutterflow. We need to make color styles and then import it to flutterflow
Fig 1.4 Color import
Fig 1.5 Color import
Week 4
This week we learn how to create firebase integration and also learn how to make sign in page and connect it to the firestore
Fig 1.6 Create firebase integration
Fig 1.8 Connect the date to firestore
Week 5
This week we learn how to update and create document
Fig 1.9 Update and delete document
Week 7
This week we learn how to read and delete document using direct action button, so i immediately implemented it to my project
Fig 1.10 Read document
Fig 1.11 Firestore
Week 8
This week, we learn about basic animation and micro interactions.
No class
Week 10
Today we learn to create hero animation, lottie animation, rive animations, and page transitions
Fig 1.13 Hero animation
Fig 1.14 Lottie animation
Fig 1.15 Page transitions
Fig 1.16 Page transitions
Week 11
This week we learn how to make simple search, alert dialog, and confirm dialog
Fig 1.18 alert dialog and confirm dialog
Fig 1.19 alert dialog and confirm dialog
Fig 1.20 alert dialog and confirm dialog
Week 12
This week we learn how to make bottom sheet
TASK 1
For this task, we need to re-design our application from our previous task (application design I), we need to explain and make a reflection based on our mobile application from application design I.
First, i looked at my application and then i tried to write the reflection first about what should be mantained and should be improved based on it.
After that, i move to figma to improve and redesign my application.
Fig 3.2 Final Outcome task 1 PDF
Figma Link: https://www.figma.com/design/6CK6ZYHhNC5jBTfTuRQQcr/Untitled?node-id=0-
1&t=7Zj8uq7ZKpCmgH0C-1
\
For this task, we need to build the CRUD for our application. The CRUD must be complete and can function well.
First, i start to import all of my colors to flutterflow and then make the design one by one.
Fig 4.1 Import color
I start to build the home page first
Fig 4.2 Progress
Fig 4.3 Progress
Next, i created the user authenticarion. For this page, i used a template however i adjust it and changed the design based on my application. I also added a "create profile page" for users who are signing up for the first time.
Fig 4.4 Progress
Fig 4.5 Progress
Fig 4.6 Progress
After that i continue to make the design for the other pages. Here are some of the progresses for the other page. At first, it was quite confusing to adjusting the design of each element individually and setting the spacing in flutterflow.
I redesigned several parts of the interface because I felt that some of the designs from my Task 1 redesign were overly complex and the user flow was too long. Therefore, Ms. Nurul said it was acceptable to redesign it again in Task 2.
Fig 4.7 Progress
Fig 4.8 Progress
Fig 4.9 Progress
Fig 4.10 Firebase
Fig 4.11 Firestore
1.User authentication
After that, i started to create the user authentication first. First i enabled the authentication (sign in method)
Fig 4.12 Process
Next, i made a new collection called "users"
Fig 4.14 Action
Fig 4.15 Action
Fig 4.16 Action
After adding the action and set up the firestore, i test it to know if it's already function or not. Here is the final outcome of the user authentication and the firestore and the photo of the firebase and firestore
Flow:
A.If user already sign up -> Go to log in tab -> fill email and password --> go to home page
B.If user have neveer sign up to the application -> go to the sign up tab -> fill email and password -> go to "create account" page and fill their data -> go to log in tab (must use the same email and password) -> go to homepage
Fig 4.19 Screen record user authentication
2.Create
I use create for top up balance, because users need to input their data for top up.
Flow: Go to purchase page -> click top up balance -> choose debit card -> enter the amount and choose the bank -> fill the card information -> check and confirm your information on pre-confirm ->there will be an animation to show that your process already completed
First, i created the collections called "top up balance"
Fig 4.20 Collection
Fig 4.21 Action
Fig 4.22 Action
I used parameter also so that i can pass the date from the previous page to the pre confirm page (so user can check their data again before confirming to top up)
Fig 4.25 Parameter
Fig 4.29 Screen record Create and firebase
3.Read
I use read to top up data
Flow: User click purchase page / click top up balance from home page -> user choose which internet data package they want to buy -> user choose discount -> there will be pre confirm order (this part is where user need to read) -> if correct, there will be an animation
Fig 4.30 Read
There will be a lot of choices for user to choose, each of the package can be clicked, and later when user click it, the total of their order will be different (so its all based on what user click) because i already use parameter to pass the data
Fig 4.32 Firebase
Fig 4.33 Parameter
Next i add an action and a function to calculate the discount, because there are some discount choices and also the price are all different. Here are some of the actions and also function. This is the hardest part
Fig 4.34 function
Fig 4.35 Action
After adding the action and set up the firestore, i test it to know if it's already function or not. Here is the final outcome of the create and the firestore and the photo of the firebase and firestore.
Fig 4.38 Screen record Read and firebase
4.Update
For this one, at first i use it to update subscription, i made this for almost a week but i faced a lot of error. The inital concept was: User subscribe to netflix -> user choose package -> user click update -> there will be some packages displayed (not the same package that user already buy) -> user click update -> the package will be updated on the subscription page and on the firebase. Here are some of the progress.
Fig 4.39 Update
Fig 3.40 Update
After i consulted with Ms.Nurul, she said that it is hard to do that and then she recommends me to do the update by updating the profile (edit profile), therefore here is the new flow:
After user sign up/log in->click edit profile-> fill in their data -> if they want to change it, they can just immediately go to edit profile again and then it will automatically display the new data.
Also, on this profile page, user can click log out (after clicking it, user will be directed to the sign up and log in page again)
Here is the action, so after using that action, it will automatically display the newest data of the user (so when update, it will automatically change)
Fig 3.41 Actions
Fig 3.42 Profile
After adding the action and set up the firestore, i test it to know if it's already function or not. Here is the final outcome of the create and the firestore and the photo of the firebase and firestore.
Fig 3.43 Firebase
Fig 3.44 Screen record Update and firebase
5.Delete
This is the flow: User click subscribe -> user choose which package -> user read the pre confirm -> user click confirm -> user click cancel -> the package will automatically deleted and removed from the firebase and firestore
Here are the progress and design:
I add conditional actions for the subscription part, so that when user havent subscribe, it wont be appear to display user's subscription.
Fig 3.46 Progress
Fig 3.47 Progress
This is the actions that i added to delete the document
Fig 3.48 Actions
After adding the action and set up the firestore, i test it to know if it's already function or not. Here is the final outcome of the create and the firestore and the photo of the firebase and firestore.
This is the collections
Fig 3.51 Screen record Delete and firebase
TASK 2 FINAL OUTCOME
PDF file
Fig 3.52 PDF file
Flutterflow link
Screen record google drive
https://drive.google.com/drive/folders/1xRpobHFqnXDOOjQiyCxQiGtN5VNxPFL0?usp=shari
ng
TASK 3
For this task, we need to make micro and macro animation for our application.
MICRO ANIMATIONS
1.Interactive elements visually respond when pressed (scale to 95% when pressed and color transition when pressed.
I made all of the buttons from each of the pages are made to be scale to 95% when pressed and color will be changed when pressed.
Here are the processes:
1.First, i created an app state
Fig 4.1 App state
2.Next, i add a function on the button color, so that it will be change if pressed.
Fig 4.2 Function for the button
3.Next i add an animation for the button (scale animation) on the container, so that it will be scaled 95% when pressed
Fig 4.3 Scale animation
4.After that, i add 3 actions
Fig 4.4 Actions
Fig 4.5 Actions
Here are the result: (It scaled 95% and change to different color)
This is the screen record for the demonstration of the first animation:
Fig 4.7 Screen record
2.When user interact with input fields, An input field shaking horizontally when an error occurs, red border and red text will appear if user left the input fields empty. Snack bar will also appear smoothly.
Here are the processes:
1.First, i add validate form and then put all of the text fields into one form, and then click automatically validate
Fig 4.8 Validate form
2.Next,i add an animation on the form and then add an error border color
Fig 4.11 Actions
Fig 4.12 Result
* Can see the other examples on the flutterflow file
This is the screen record for the demonstration of the second animation:
Fig 4.13 Screen record
3.Integrate custom loop animation so that user won’t ever guessing whether the actions already work or not
I add a loading spinner on the button for a few seconds so that user won’t confused whether their actions already work or not.
Here are the processes:
1.First, i enable the loading indicator
Fig 4.14 Loading indicator
2.Next i add delay on the action so that it can show that there the actions is already confirmed and can show the user that the app is processing the action.
Fig 4.15 Action
Fig 4.16 Result
* Can see the other examples on the flutterflow file
This is the screen record for the demonstration of the second animation:
Fig 4.17 Screen record
5.Confirmation dialogue that appear smoothly when user needs to confirm something
This is the process:
1.I add alert dialog on the action (button)
Fig 4.20 Screen record
5.Animation of progress bar (internet data and balance left in circular progress bar)
1.This is the process:
Fig 4.22 Screen record
MACRO ANIMATIONS
1.Using sliding new scenes from the left and right to make it interesting)
This is the process:
I add this to all of the pages
Fig 4.24 Screen record
2.When triggering overlays (such as confirmation dialogs for a Delete operation, or an overlay form to Update/Edit a database item), the modal are already transition smoothly. Use a slide-up from the bottom of the screen
Result:
Fig 4.25 Screen record
3.Use fade in for each of the page to make it feels more smoothly
Fig 4.26 Screen record
TASK 3 FINAL OUTCOME
PDF
Flutterflow link
Screen record for the animations demonstration
https://drive.google.com/drive/folders/1VWm9kYysX8Mz73eB-XaDZDzAEIZOXgBP?usp=dri
ve_link
Screen record for the complete CRUD flow animation
TASK 4
For this task, we need to make an improvement for our final application submission, however when i consulted with Ms.Nurul, she said that my application overall already okay (for the CRUD and animation), she said it is okay if i dont want to add something for task 4, however she said it's also okay if i still want to improve it, maybe add the timer animation and make all of the design neat.
Therefore, for this task, i decided to improve the animation by adding the timer animation.
This is the process:
This is the process:
First i add the action (because before this i already enable the google authentication method on firebase)
Fig 4.28 Action
Next, i open google cloud console and then copy all of these links
Fig 4.29 Google cloud console
Next i add this link on my firebase
FINAL OUTCOME
Presentation slide
Video Presentation:
Video walkthrough application: https://drive.google.com/file/d/1hr9irwkiUlpvOWD4PDqZJ1FMQpjbO3J4/view?usp=drive_link
Flutterflow link: https://app.flutterflow.io/project/appdesign-c8nm19 Flutterflow
Deploy to web link: https://appdesign-c8nm19.flutterflow.app/
FEEDBACK
Week 2
We had a consultation and showed our app design assignment from the previous semester. After that, we discussed and determined the CRUD functionalities that we would implement for this module's assignment. At first, I was unsure how to incorporate the Update and Delete operations. However, Ms. Nurul suggested making them part of a subscription flow, where users can subscribe to the application, update their subscription details, and delete (cancel) their subscription. Ms. Nurul also said that the application that i redesigned already okay.
Week 5
I asked Ms.Nurul about the design of my application and she said that i can modify some parts of the design to improve it and remove some flows that are too long.
Week 6
This week i consult with Ms.Nurul to show my progress and also ask about one of my feature that cannot function well, which is Update subscription. Ms.Nurul said that i must change it to update/edit profile rather than update subscription because it is too hard if i use that flow.
Week 13
I asked Ms.Nurul about my final application (user authentication and all CRUD) and animation. Ms.Nurul said that overall it's already okay and for task 4, it was optional whether I wanted to further improve my application. If I wanted to add any new features or enhancements from the previous task, I could include them in Task 4. Ms. Nurul also suggested that I tidy up my application's layout, as some of the layouts from the previous task did not display properly during testing for some reason.
REFLECTION
I felt really happy and relieved that I was able to finish this module successfully. I think flutterflow was quite complicated and confusing at first because I had never used it before. I also didn't really understand backend development, Firebase, Firestore, and other related concepts, so this was one of the biggest challenges I faced this semester. Even so, I was happy because I slowly started to understand flutterflow better every week while working on my assignments. I managed to create user authentication and complete all the CRUD functions successfully. All the data was stored properly in Firebase and Firestore. I also added animations to my app and completed all the tasks required for this module. I faced a lot of challenges throughout the process. Every time I worked on the user authentication or CRUD features, there was always some kind of problem. Sometimes I got random errors, sometimes the layout became messy even though I had already fixed it, and sometimes the actions were set up incorrectly, so nothing happened. The hardest part for me was creating the total amount calculation. Since every user could buy different data plans and choose different vouchers, the total amount had to be different for each user. I had to use a lot of functions and actions to make it work, and it took me several days because I kept running into errors. Another challenge was the Update function. I worked on it every day, but it kept failing. I couldn't figure out what was wrong because my data in Firebase and Firestore wouldn't update properly. At first, I didn't really understand actions, functions, app states, and many other FlutterFlow features, but as I kept practicing and fixing my mistakes, I gradually understood them better. Looking back, I'm glad I didn't give up because I learned a lot throughout this module.























.png)
Comments
Post a Comment