Why Your Prototype Is Lying to Users

Ever watched a usability test participant pause, type something, then glance up at you? That look says: "This isn't real, right?" Once they know it's a demo, every action they take is filtered through that awareness. The data you collect becomes performance, not behavior.

This is especially critical in fintech. Banking users are trained to notice when something's off—a balance that doesn't add up, a login that accepts anything. When your prototype skips real authentication, participants disengage or stop mid-session to flag it. Your findings reflect how users behave in a demonstration, not in a real product.

The fix? Identify the moment where trust is established and make that interaction real. In a banking app, that moment is the login.

In this tutorial, we'll build a login flow that behaves like a shipped product—with real text inputs, password masking, credential validation, a live error state, and a Face ID animation that feels native. No code required.

Interactive mobile banking prototype with Face ID animation on smartphone screen System Abstract Visual

Step-by-Step: Building the Login

Step 1: Import from Figma (Choose Scene, Not Flattened)

In Figma, select your login frame and use the ProtoPie plugin. Choose Scene when exporting—this preserves layer hierarchy so every element arrives as a separate, targetable layer. Flattened would collapse everything into a single image, killing interactivity.

Before moving on, rename every layer meaningfully. "Input Username" not "Rectangle 14". You'll reference these names in formulas later; vague names compound into real time lost.

Step 2: Swap Static Fields for Inputs That Accept Text

ProtoPie's native Input layer accepts real keyboard entry. Go to Text → Input, drag an Input layer onto your canvas, and nest it inside your username field group. Match the placeholder text, fill, and font to your design.

Preview and test: you can type! Rename this layer Input Username, duplicate it, and nest the copy inside your password field group.

Step 3: One Property Change Masks the Password

On the duplicated layer, change placeholder text to Password and set Type to Text Password. ProtoPie handles the masking—no custom logic needed. Preview: username shows text, password shows dots. Already feels real.

Step 4: Create the Destination Scene

Add a new scene (even a blank one) for your dashboard. The most common sequencing mistake is trying to wire navigation before a destination exists.

Step 5: Wire the Button (But It Still Lets Everyone Through)

Select the Log In button, add a Tap trigger, set response to Jump to your dashboard scene with a slide transition. Preview: it navigates—but for any input, including nothing. The prototype is still lying. The next steps fix that.

Step 6: Add Variables to Remember What Was Typed

At the bottom-left, add two Text variables: username and password. Bind each to its input layer with a formula:

input("Input Username").text
input("Input Password").text

Enable debug icons to see live variable values as you type—this confirms the binding.

Step 7: Add a Condition for Valid Credentials

Go back to the Tap trigger on the login button. Add a Condition with two rules (both must be true):

username equals alex.c@gmail.com
password equals ABC123

Move the Jump response inside this condition. Wrong credentials, empty fields, wrong format—none get through. Participants now have to actually log in.

Step 8: Build the Error State

Find your error message layer, rename it Error Text, set initial opacity to 0. Add a second condition (the inverse of the first) and inside it a Change Property response setting Error Text opacity to 100.

Now: wrong credentials → error appears; correct credentials → dashboard. Two outcomes make this testable, not just demonstrable.

Step 9: Add the Face ID Animation

Go to Media, drag a Lottie layer onto the canvas, load your Face ID file, and position it off-screen above the iPhone frame. On your "Login with Face ID" button, add a Tap trigger with four responses in sequence:

  • Move Lottie container to Y: 60
  • Seek Lottie to time 0s (resets so it always plays from the start)
  • Play Lottie file
  • Jump to dashboard

Step 10: Stagger the Timing

Without delays, all four responses fire at once and the scene jumps before the animation plays. Add offsets:

ResponseDelay
Move0s
Seek0s
Play0.5s
Jump1s

Enable Reset selected scenes on Jump—otherwise, navigating back leaves the animation stuck at Y: 60.

Preview: tap Face ID, animation drops in, plays, screen transitions. A biometric login indistinguishable from the real thing.

Secure login interface with password masking and error state in fintech app prototype Algorithm Concept Visual

Caveats & Limitations

  • ProtoPie free plan limitations: The free plan supports this tutorial, but for complex multi-scene prototypes, you'll need a paid plan.
  • Lottie file compatibility: Ensure your Lottie file is exported correctly; some animations may not play smoothly in ProtoPie.
  • Performance: Heavy animations can slow down preview on low-end devices.
  • Not a substitute for real backend: This is prototype-level validation, not production security. Use real auth systems in production.

Next Steps for Learning

Designer building realistic authentication flow in ProtoPie with layers and variables Dev Environment Setup

Conclusion

When authentication actually works, the error state becomes a genuine research touchpoint: Do users understand the message? Do they retry? Do they reach for Face ID instead? These are questions a faked login can't answer.

In stakeholder reviews, the flow speaks for itself. In engineering handoff, the interaction panel documents the behavior (conditional logic, variable bindings, timing) so engineers see intent, not interpretation.

This is why fintech teams invest in login fidelity even when login isn't the feature being tested. It's where participant trust is established. Get it right, and everything downstream produces better signal.

Source: Original article on Smashing Magazine


Related Articles

This content was drafted using AI tools based on reliable sources, and has been reviewed by our editorial team before publication. It is not intended to replace professional advice.