Application Design 2 - Task 3: Interactive Component Design & Development
Task 3: Interactive Component Design & Development (Week 08–11, 20%):
- Build actual interactive elements using HTML/CSS/JS.
- Examples: pop-ups, side menus, transitions.
- Submit working HTML file, walkthrough video, and e-portfolio post.
#ff8201), which stands out and aligns with our theme. The font family was set to Roboto, with a white color and size 18, maintaining clarity and accessibility.I successfully set up the Firebase project for the Guardian app. This marks the beginning of backend integration, which will support features like user login, real-time database, and cloud storage. The setup process was smooth, and seeing the “Your Firebase project is ready” screen felt like a big step forward. With Firebase now in place, I’m ready to move on to user authentication and data structuring next. Looking forward to implementing and testing core app features in the coming weeks.
To enable secure user login in my Guardian app, I set up Firebase Authentication. As shown in the screenshot, I activated the Email/Password sign-in method under the Firebase Authentication settings. This allows users to register and log in using their email credentials.
I kept the setup simple for this MVP, but Firebase also offers advanced options like SMS Multi-Factor Authentication, which can be enabled later if higher security is required.
This integration with FlutterFlow ensures that user credentials are safely stored and managed through Firebase, enabling me to build features like Sign In, Sign Up, and personalized user states within the app.
Next, I set up the backend query collections using Firebase Firestore, which is integrated into FlutterFlow. I created three main collections: Products, Carts > Items, and Users.
- The Products collection includes fields like product name, image, price, discount, and rating.
- The Carts > Items subcollection is linked to products using a document reference and stores quantity and added time.
- The Users collection stores user data such as email, UID, display name, and profile photo.
These structured collections allow dynamic data to flow throughout the app, enabling features like personalized user accounts, real-time cart updates, and product filtering. You can see here how each schema is organized to support a scalable app experience.”
.json file. This format is supported in FlutterFlow, so I was able to upload the Lottie animation directly into my app interface and integrate it smoothly into the user experience. This streamlined workflow—going from AI to SVG to Lottie—was lightweight and efficient, and it avoided the need for complex animation software.For the navigation bar, I redesigned custom icons using Adobe Illustrator to give the app a more personalized and brand-aligned look. After designing the icons, I exported them as SVG files, which are compatible with FlutterFlow’s custom icon system.
I then uploaded these SVGs to the FlutterFlow Icon Generator, which allowed me to convert them into usable custom icons within the app builder. From there, I was able to assign each icon to its respective tab: Home, Category, Cart, Store, and Account.
This shows the Loading Scene setup in FlutterFlow, where I used microanimations to enhance the app's first impression. When the page loads, a dot scales up as a subtle motion cue, followed by a logo reveal using a fade-in animation. This creates a smooth and branded welcome experience for the user.
In the Action Flow Editor, I set a delay of 3 seconds using the Wait (Delay) action, which gives the animation time to play. After the delay, it automatically navigates to the Launching Page.
This simple combination of microanimations and timed transition adds polish to the user flow, making the app feel responsive and professionally designed from the start.
After the loading animation, the user is brought into the Launching Scene, which includes a series of onboarding-style screens: Launching Page A, B, and C.
Each screen introduces a key value of the Guardian app—like trusted payments, exclusive deals, and secure checkout. These three screens are shown one after another automatically using a page view-style transition, giving the user a short intro tour.
At the bottom of the final screen, there’s a ‘Let’s Get Started’ button. When tapped, the button triggers an action that navigates to the Sign In Page, using a fade transition for a smoother user experience. This sequence helps orient new users with the brand message and prepares them for login or signup, while keeping the flow clean and interactive.
Sign In Page
In the updated version, I kept the original hand animation on screen load to maintain that friendly and welcoming feel.
However, I’ve improved the entry interaction. Now, when the page enters, the entire email and password input box slides up from the bottom, creating a more dynamic and purposeful flow.
Here’s how I structured the Sign In Page interactions inside FlutterFlow.
When the user fills in their email and password, tapping the Sign In button triggers a navigation action. As shown here in the Action Flow Editor, it takes them to the Home Page using a Slide Up transition, set to 500ms for a smooth yet responsive feel.
Alternatively, if the user doesn’t have an account yet, tapping on Create an Account will navigate them to the Sign Up Page—also using a Slide Up transition, but at a slightly shorter duration of 300ms to reflect a faster redirect.
These transitions give the login process a more dynamic and polished experience while maintaining consistent visual movement throughout the onboarding journey.”
Sign Up Page
This is the Sign Up Page, where users can create a new account by entering their details like name, email, phone, gender, and nationality. For this MVP, I’ve kept the Sign Up screen clean and simple without microanimations, to focus on functionality first. Users can also upload a profile picture as part of their account setup.
Once the user taps the Sign Up button, the app navigates them back to the Sign In Page, using a smooth Slide Up transition. From there, they can proceed to log in with their newly created email and password, and then tap the Sign In button, which will redirect them to the Home Page.
This looped flow helps simulate a real app onboarding experience—from registration to authentication and then access to the main app features.
products collection.Each product is wrapped inside a container, and tapping on it triggers a navigation to the Product Detail Page, passing the product reference as a parameter.
On the left, it shows the process in Illustrator, where I designed a set of custom icons that reflect Guardian’s branding—like the cart, home, and profile icons. I then exported these SVG files and uploaded them into the FlutterIcon generator, which allows you to convert vector graphics into usable Flutter icon fonts.
On the right, it shows how these icons are implemented in the actual FlutterFlow app. Each tab now uses a custom icon that aligns visually with the rest of the app’s color scheme and layout, making the UI more cohesive and visually consistent.
The video attached above, you can see how the navigation bar appears in the app. I applied a bounce effect to the icons when clicked animation and active state color change to make the navigation more engaging and user-friendly. This process gave me full control over the icon style while keeping the integration smooth within FlutterFlow.
products collection to my FlutterFlow project. I created the necessary fields in both Firebase and FlutterFlow, including name, image, price, originalPrice, discount, rating, reviewCount, sold, and isFavorite, ensuring consistent schema mapping.I’d like to highlight some of the key changes I made during the transition from Figma to FlutterFlow.
This slide focuses specifically on the Product Details Page. On the left is the original Figma prototype, and on the right is the final build in FlutterFlow.
In the FlutterFlow version, I refined the layout for better clarity and usability. I made sure the Virtual Try-on button was precisely aligned and adjusted the spacing between sections to improve readability. I also replaced the original icons for Store, Save, and Share with custom ones that better match the overall design language.
Additionally, I applied slight color adjustments in the detail section to improve visual contrast.
While staying true to the original Figma design, I improved the margins, icon sizes, and text hierarchy to make the interface more responsive and user-friendly for real mobile devices. These small enhancements make a big difference in the overall user experience.
- The Products collection includes fields like product name, image, price, discount, and rating.
- The Carts > Items subcollection is linked to products using a document reference and stores quantity and added time.
- The Users collection stores user data such as email, UID, display name, and profile photo.
Here’s a quick look at the overall structure of the pages and components I’ve created in FlutterFlow.
On the left, you can see the full page list divided into scenes—such as Loading, Login, Home, Product, and Cart. I also built reusable components for the navigation bar, checkout bar, and various home/product sections.
The centre and right side of the slide shows how these pages come together visually, like the Home Page with exclusive deals, the Product Overview with the product detail component, and the Empty Cart Page.
Each element was built using FlutterFlow’s drag-and-drop UI builder, but I also added interactivity using custom actions, queries, and animations to replicate a realistic shopping experience.”
Here is a breakdown of my development progress.
✅ What Has Been Done includes:
- Loading and Launching animations
- Sign In and Sign Up flows
- Home Page with product scroll
- Product Page with Quantity +1 and Add to Cart interaction
- Empty Cart and Full Cart pages
- Custom Navigation Bar microanimation
- Page transitions using macroanimations
⏭️ What Comes Next includes:
- Building the Virtual Try-on Page to simulate nail colors
- Developing the Checkout Flow, including address and shipping method
- A fully working Payment Page
- And finally, generating the E-invoice Page after a successful transaction
A key feature I focused on was the Empty Cart Page. Rather than leaving it static, I implemented animated interactions, where two shopping bags slide upward one after another with bounce easing. This sequential motion adds emotional warmth and encourages users to begin shopping. I used FlutterFlow’s animation timeline editor, applying entrance effects with adjusted delays and easing curves. It was a deliberate choice to make the experience feel dynamic and engaging, especially when the cart has no items.
Aside from that, I also integrated animations across several onboarding and login screens, such as bouncing icons, fading text, and timed transitions. These animated elements were crafted to create a smoother and more immersive flow from one screen to another, helping users feel more connected to the brand right from the start. To achieve this, I spent time adjusting easing curves and animation durations to make the movements feel natural and consistent with the Guardian app’s playful and friendly tone.
This task challenged me to strike a balance between creativity and usability. I realized that too many animations could become distracting or overwhelming, especially on essential functional pages like checkout or login. Therefore, I had to carefully consider when and where to apply animations for maximum impact. I also gained practical experience in using FlutterFlow’s animation tools, including timeline-based controls and trigger events. Learning how to stack animations, sync them with user interactions, and maintain performance was a valuable skill I picked up throughout this process.
Moreover, I built and refined multiple UI components including the bottom navigation bar, custom icons, and category grids. I exported custom SVG icons from Illustrator, converted them via FlutterIcon.com, and uploaded them into FlutterFlow. This process helped me understand asset management, file types, and icon consistency across platforms.
In summary, Task 3 pushed me to merge design, animation, and functional prototyping in one workflow. It taught me the importance of user-focused interactivity, data-driven UI, and platform-aware animation. The skills I gained in Firestore setup, custom logic building, and timeline-based animation are highly transferable, and I feel more confident developing polished, user-ready mobile experiences in FlutterFlow.




%20(2).jpg)
%20(1).jpg)







.jpg)
%20(1).jpg)

.jpg)
%20(5).jpg)

Comments
Post a Comment