Overview
A New Tangible Interaction Layer in SwiftUI
Contributions
Lead Designer
SwiftUI
Design System
Design Engineering
Time Line
15 May , 2026
to
28 August, 2026
Background
Solving Information Latency for the Wall Street
Beanstalk was designed for professionals in finance and related industries who need to stay on top of current trends and turn that information into pitches, presentations, and reports every day. Designed specifically for the U.S. market, the goal was to solve for information latency, giving users fast, intuitive access to the information they need in high-paced work environments.
Beanstalk came to me with an idea and a set of wireframes. Over the next four months, I transformed those early concepts into a complete product experience, designing and building the app end-to-end in SwiftUI.
Solution
Truly "Liquid"
I developed a custom shader material that layers over standard UI elements and Apple’s native Liquid Glass surfaces. It tracks user input in real time and generates dynamic touch feedback, creating an immediate feedback loop between every action and response while replicating the physical feel of liquid.
The shader is applied consistently across interactions throughout the app. Paired with Beanstalk’s intentionally simple interface, these fluid interactions become highly prominent—adding depth, responsiveness, and a tangible quality to the overall experience.
Samrt UI
The UI is highly dynamic and designed to adapt to its environment. One of the key challenges with Liquid Glass is maintaining visibility across extreme color scenarios. To solve this, I optimized both the material and icons to intelligently switch between visual modes based on background contrast, using the same luminance-based calculations Apple uses to determine Liquid Glass modes. This ensures that content maintains strong contrast and remains clear and legible across changing backgrounds.

Syncing the user’s recently visited locations from the mobile app.
The interface also responds dynamically to keyboard activity and system states, continuously adapting the layout to keep relevant information visible. These small but intelligent adaptations create a more seamless experience, details that are easy to overlook when designing on a static canvas.
Before
After
The card transitions actively track each card’s position during scroll and dynamically adapt the animation to create a more natural, fluid feel. The system is also optimized for performance, using lazy loading for cards layered behind the active view to reduce unnecessary rendering while maintaining a seamless experience.
Retrospective