Application Design 2 - Task 4 - Final Project – Completed App
07/07/2025 - 29/07/2025 (Week12 - Week14)
Teu Yu Tian / 0371923
Application Design 2 | Bachelors of Design (Honour)
in Creative Media | Taylor's University
Task 4 - Final Project –
Completed App
1. LECTURES:
- Flutterflow published link
- Flutterflow project (provide the App name as it appears in your flutterflow and add razif.mohamed@taylors.edu.my as collaborator)
- Walkthrough Video Presentation of your app.
- Blog link directly to your final project blog post
Work Progression
1. sign up/login
Sign Up / Login (Now with Firestore Integration)
Task 3:
-
Splash screen animation with logo
-
Email & password sign‑up/login
-
Slide left/right page transitions and navigation
Task 4 Updates:
-
Username field added at sign-up
-
Created user collection in Firestore to store profile details (email, username, etc.)
-
Profile data such as username and email is now linked to the Settings page, updating dynamically based on user reference
Map Exploration & Search Function
Task 3:
-
Interactive Google Map (zoom & pan)
-
Single static marker
-
Horizontal parking list with shimmer loading
Search bar, notification icon and Nearby Me button together slide in from top. Relocate button slide in from right side but with no function.
Task 4 Updates:
-
Multiple map markers showed. Location refers to Firestore
parkinglocation
collection. -
Parking info expanded: added address, operating hours, price, booked status, and favourited location.
-
When tapping parking list card, map will recenters to corresponding location; tap arrow button to open Parking Information page
Search & Filters:
When tapping the search bar in the Reserve page, it opens the Search page with instant transition
Search bar includes a scale animation for dynamic visual feedback after tapping
Added parking type filter with workable function + location dropdown
Price & distance filters not functional due to Flutterflow’s filter limit (only 1
>=
or<=
condition allowed)Bug: Filters update only after re-entering the page (unfixed)
Booking & Payment – with Date/Time Picker
Task 4 New Page and Features:
-
Parking Information Page: Displays parking location details (image, name, type, availability, distance, price rate, address, operation hours)
- On load transition and animation: Slide in animation for information card applied.
-
Schedule Booking: Date & time pickers for start/end selection.
- Schedule booking: when tap on the red edit button, user navigate to a Schedule Booking page to select date, start time and end time.
![]() |
Schedule Booking page |
- After pressing Confirm button, it will go back to parking information page
- the time will update.
- Click Reserve Now button to go to confirmation page.
Confirmation Page: Choose payment method from popup list
Booking Successful Screen: Payment in process (animated loading circle) → Payment Successful (animated tick confirmation) → detail summary
- Then, detail information slide in from bottom, with all element set with delay gap with 50ms for a more engaging animation.
Navigation Navigate Me button: Choose between Google Maps or Waze
![]() |
Reservation details |
Payment Method bottom sheet |
Booking Successful Screen: Animated loading → tick confirmation → detail card reveal
-
Navigation Option: Choose between Google Maps or Waze
Save to Favourites
-
Users can save parking spots to favourites by tapping heart icon in Parking information page
-
Saved locations stored in Firestore and displayed in “Saved” page
Experience:
Observation:
Throughout this process, I noticed that while FlutterFlow’s built‑in animation and transition tools are convenient, they have limitations in customisation. Firestore integration significantly improved responsiveness and created a more realistic experience for users. Small touches, like the scale animation when tapping the search bar and staggered element reveals, made the app feel more interactive and engaging. I faced some problem in setting up severe function. Flutterflow is both convinient yet hard to pick up for me. I some times to learned how to set up filter and search function, at the end it is still not polished yet. Other than that, I found that behaviour sometimes differed between Run Mode and Test Mode, making continuous testing essential. Most of the time my Test mode could not load my screen at all, so i have to keep testing on run mode, which takes longer time.
Findings:
From this task, I learned that data integration and user interface feedback must work hand in hand to create a seamless user experience. Even small micro‑interactions can significantly enhance the perceived quality and user engagement. I also realised the importance of design‑solving skills, as adapting ideas to platform limitations can still result in effective and appealing outcomes. Most importantly, I found that delivering a stable and polished set of features is far more valuable than forcing in complex functionality that may not work reliably within the tool’s constraints. This task felt extremely practical as part of the UI/UX process, adding to my knowledge in designing a developable app and giving me a more professional perspective. Although I’ve only explored a small portion of FlutterFlow’s capabilities, this experience has shown me there’s still much more to learn.
评论
发表评论