7.6.2025 - 7.7.2025 ( Week 8- Week 11)
Gam Jze Shin / 0353154
Application Design II / Bachelor of Design in Creative Media
Task 3: Interactive Component Design & Development
Index
1. Instructions
2. Task 3: Interactive Component Design & Development
3. Feedback
4. Reflection
Task 3
In this task, students will build upon the
animation and interaction concepts developed in Task
2, where micro-interactions were created using
Figma. While Task 2 focused on visual and animated
prototypes, this task transitions into a more
functional development phase using FlutterFlow,
where students will integrate micro-interactions
directly into their apps with live data
connections.
Week 8
In Week 8’s class, I learned how to connect FlutterFlow with Firestore and create a login page. Users are required to register and create an account first. Once their account is created, they can log in using their credentials. If they enter an incorrect email or password, the system will prevent them from logging in.
Week 9
This week, Mr. Razif taught us how to integrate Google Maps into our app and add location markers to highlight specific areas we want to showcase.
Week 10
Task 3 Progress
Before I started creating the design layout in FlutterFlow, I watched online tutorial videos to learn the basic layout concepts. The YouTuber explained how to structure the layout properly, which I found very helpful and beneficial as preparation before starting this project.
Online Learning Video: https://www.youtube.com/watch?v=_QhCrh00xiI
Online Learning Video: https://youtu.be/_QhCrh00xiI
Home Page
Error Faced in Home Page
Navigation Bar
For the bottom navigation bar, I created it as a component, which allows me to easily drag and reuse it across different pages without needing to recreate it each time. I also set up the navigation actions for each button so that they link to the appropriate pages within the app.
Searching Page
In the searching page, I added micro animations after completing the layout design. These animations help enhance the user experience by making the interactions feel more dynamic and visually engaging.
Product List Page (Before)
In the product list page, I set the Column to be vertically scrollable so that if the content exceeds the screen height, users can still scroll down to view all the items smoothly.
Firebase (Authentication)
Firestore Data
To connect the product list page to the product detail page, I set up a Firestore collection called products with fields like name, price, image, and description. In FlutterFlow, I linked the product list to this collection and created a page parameter (productRef) for the detail page. When a product is clicked, its reference is passed to the detail page, which then displays the correct product information from Firestore.
Product List Page (After)
I compared both Grid View and List View, and found that Grid View is more suitable for my project since I need to display two items per row.
Product Detail Page
For the product detail page, I started by building the layout structure using basic widgets like columns and containers. After that, I added the necessary elements such as text, images, and other components to display product details. Once the layout was complete, I linked each part to Firestore by using the page parameter passed from the product list page. This allowed the content to be displayed dynamically based on the selected product.
Micro and macro animations were added to make the interface more attractive and to draw attention to key features. For example, I applied animations to the "Claim Voucher" and "Buy Now" buttons to make them stand out and guide users toward taking action. These animations help improve the overall user experience by creating a more engaging and interactive interface.
Web Version
When I published my project as a web version, the layout became messy. I discovered that this happened because some of my widgets were not contained within the specific frame size I had set (430 x 932). To fix this, I placed all the widgets inside a container with the exact size I wanted. This helped ensure the layout stayed consistent and properly aligned across different screen views.
Problem Faced
One of the problems I faced in FlutterFlow was technical issues. Sometimes, the platform would show random errors or fail to connect to the network. When this happened, I had to refresh the page and wait for a while before continuing my work. It could be frustrating, but I learned to be patient and not panic when these issues occurred.
Final Published Web Version
Click here to view the published web version. (Recommended: Adjust size to around 80% for better fit in web version / Best viewed on iPhone 14 Pro (430 × 932))
fig 2.36 Final Published Web Version
Prototype Walkthrough Video
Presentation Video
Click here to view the task 3 Presentation Video in YouTube.
Specific Feedback
Specific Feedback
Comments
Post a Comment