Bridging Design and Functionality

Sep 9, 2024

Bridging Design and Functionality

Join Meena and Tanisha from GeekyAnts as they share their unique journey of bridging design and development, revealing how collaboration in the React Native ecosystem leads to practical solutions and innovative results.

Author

Aditi Dixit
Aditi DixitContent Writer

Iโ€™m Meena, a developer at GeekyAnts, specializing in React and React Native, and this is Tanisha, my colleague whoโ€™s recently started to get all the dev jokes.

Hello everyone! Iโ€™m Tanisha, and I work as a designer at GeekyAnts. Designer, right? Iโ€™m here to share that apart from getting those developer jokes, Iโ€™ve also started to dive deep into the developer mindset while collaborating with my team. At GeekyAnts, we arenโ€™t just about code; weโ€™re a community of memes, hackathons, birthday celebrations, and epic trips. Youโ€™ll find us in heated foosball matches or planning our next tennis game. But if you look closely, what truly binds us is our shared passion for research, collaboration, and building amazing things.

Meena and I work closely, often side-by-side in the React Native ecosystem, but despite our proximity, weโ€™ve realized that miscommunication can create hurdles. So today, weโ€™re here to talk about something many of you have probably experiencedโ€”bridging the gap between design and development. Itโ€™s a conversation many are having, especially when designers promise, "just one last change," and developers start to feel faint.

Uniting Design and Development, One Line at a Time

If you follow conversations online, youโ€™ll notice that designers are being encouraged to learn to code, and developers are being asked to familiarize themselves with design terminologies like tokens. So, today, weโ€™ve chosen to talk about bridging the gap between design and functionality. Weโ€™ll share the challenges, a possible solution, and how we built a universal component library thatโ€™s shaping our collaborative process.

Two Mindsets, One Vision

Before we dive into the details, letโ€™s acknowledge that the designer and developer mindsets are fundamentally different. This isnโ€™t about a "versus" situation; itโ€™s about how each perspective enhances the final product. When a designer hears about a new project, their mind races with ideas about user interfaces, brand consistency, and user flows. As a developer, Iโ€™m more concerned with performance, APIs, and the technicalities that make it all work. We both have a vision, but they donโ€™t always align.

The Struggle Between Dream and Reality

One of the common issues is when I, as a developer, see a design like a complex animation, and I immediately start thinking about how it will impact performance. Weโ€™ve even studied the performance of 20 websites, and letโ€™s just say, the results didnโ€™t live up to the design's promises.

Design Is an Art, But Coding Brings It to Life

Letโ€™s talk about shadows for a moment. As a designer, Tanisha might meticulously craft the perfect shadow, considering its purpose, light source, intensity, and properties like blur and spread. But for me, implementing shadows across platformsโ€”Android, iOS, and webโ€”is far from straightforward. Each platform handles shadows differently. There are even open-source tools that attempt to bridge this gap, but they often fall short. We need tools that are truly designer-friendly, translating their vision into the technical realm seamlessly.

The Case of the Three Squares: When Numbers Donโ€™t Tell the Whole Story

Now, letโ€™s blow your mind with a simple riddle. Here are three squares, all with the same dimensions, 170 pixels by 170 pixels. But, visually, they look completely different. Can you tell why? It turns out that design tools like Figma allow for strokes to be inside, outside, or centered, but this isnโ€™t reflected in the developer's specifications. For us, borders are just bordersโ€”they donโ€™t change the boxโ€™s dimensions. This kind of discrepancy is just one example of how we, as designers and developers, need to bridge the communication gap.

Letโ€™s Speak the Same Language

So, how do we fix this? The first step is building a common language. We realized that even though we were talking about the same concepts, our terminology differed. For a designer, itโ€™s an artboard; for a developer, itโ€™s a viewport. Designers talk about opacity, developers mention alpha, designers use layers, and developers work with z-index. Improving communication is critical, but where do we start? Thatโ€™s where our small side project, Bridge the Gap, comes in.

The Token Revolution

Another solution thatโ€™s gaining traction across the industry is a tokenized system, which helps foster collaboration between design and development. Many companies have adopted it as part of their design systems, and itโ€™s something weโ€™re actively working on at GeekyAnts as we develop Glue Stack UI.

Real-Life Lessons from NativeBase and Glue Stack

Why are we speaking about this today? Well, Meena and I have first-hand experience from building NativeBase and now GlueStack UI. Despite sitting next to each other, there were constant communication gaps, especially around design handoff and the development process. Thatโ€™s why weโ€™re here to share the lessons weโ€™ve learned and the systems weโ€™ve built to close those gaps.

The Great Modal vs. Action Sheet Debate

Letโ€™s take a look at an example. Modal vs. Action Sheetโ€”two similar components with very different behaviors depending on the platform. On the web, itโ€™s a modal, but on mobile, it might be an action sheet. Our solution needed to be flexible enough to accommodate both, which is why we opted to let users choose.

The same goes for gradients. While designers can easily create radial gradients in Figma, implementing them in React Native isnโ€™t as straightforward. Often, we have to rely on third-party libraries or SVGs.

Breaking Silos, Building Teamsโ€”Weโ€™ve covered some common issues and solutions, but now letโ€™s talk about what we did differently. Instead of siloing designers and developers into separate teams, we created integrated squads that promote daily interaction. We also have design system leads who maintain the consistency of components and document everything so the entire team can stay on the same page.

Early Collaboration Beats Last-Minute Panic

On the process side, early collaboration is key. We started holding regular cross-functional meetings, demos, and feedback loops. We even created workshops that both designers and developers could attend together, fostering a shared understanding of each otherโ€™s work.

Building a Library That Everyone Can Useโ€”When it comes to project execution, we laid down a clear structure. We forked an open-source design system and customized it to create our internal system, which we use across multiple projects. We also built a development structure that allows for easy customization and reuse of components.

Weโ€™ve implemented checklists for every stage of development, from the requirement gathering phase, where we ask existential questions like, "What is the primary purpose of this component?" to the design phase, where we consider how components will interact with each other and align with the overall design system.

Handing Off Without Dropping the Ball

In terms of developer handoff, we created a specification sheet that includes APIs, tokens, and all the necessary details for each component. This way, anyone on the team can refer to it and understand exactly how the component should behave.


The Tools You Didnโ€™t Know You Needed

We even took it a step further and developed tools like DSX, a design system builder that allows designers to generate foundation-level tokens that can be directly used in code. We also created Figma plugins that translate code into design files, ensuring a seamless handoff between design and development.

As weโ€™ve grown, so has our community. Tools like Figmaโ€™s Dev Mode, Framer, Webflow, and Storybook have played a significant role in improving collaboration, and weโ€™ve been excited to contribute to that conversation by sharing our experiences and solutions.

Finding Harmony Between Creativity and Technology

In closing, itโ€™s all about balance. The balance between creativity and functionality, aesthetics and usability, and innovation and practicality. This balance is what drives successful projects and fosters a thriving environment for both designers and developers.

Thank you all for being here today. If you want to continue the conversation or see more of what weโ€™re working on, feel free to reach out.

Subscribe to Our Newsletter

More from the engineering frontline.

Dive deep into our research and insights on design, development, and the impact of various trends to businesses.
Insight
Building a Production-Ready Canva-like Editor with Konva.js, React 19 and Next.js 15
Sep 10, 2026

Building a Production-Ready Canva-like Editor with Konva.js, React 19 and Next.js 15

This blog explains how to build a production-ready canvas editor with Konva.js, React, and Next.js, covering architecture, performance, and key engineering decisions.

Insight
Why AI Agents Fail in Production: Building Systems That Recover | Pushkar
Sep 10, 2026

Why AI Agents Fail in Production: Building Systems That Recover | Pushkar

Pushkarโ€™s thegeekconf mini talk explores why AI agents that perform well in demos often struggle in production, and how loud failures, clean context, step monitoring, guardrails, and better agent loops can make them more reliable and predictable.

Insight
Building Is Not Shipping: An AI Agent for App Store Submissions | Gracey Dugar
Sep 8, 2026

Building Is Not Shipping: An AI Agent for App Store Submissions | Gracey Dugar

Gracey Dugar's thegeekconf mini 2026 talk explores why app store submission stalls most AI agent workflows, what an agent needs to finish the job, and a live demo from a single prompt to a published app.

Insight
No More Prompt-and-Wait: Building Autonomous Agents That Act | Kamal Shree
Sep 4, 2026

No More Prompt-and-Wait: Building Autonomous Agents That Act | Kamal Shree

Kamal Shreeโ€™s Geekconf miniโ€™s talk explores the shift to autonomous agents, from what separates agents from chatbots, the anatomy and grounding behind them, and how to choose between no-code, low-code, and pro-code build paths.

Insight
From UX to AX: Designing Applications for a World of AI Agents
Sep 4, 2026

From UX to AX: Designing Applications for a World of AI Agents

Learn how Ashita Prasadโ€™s thegeekconf mini 2026 session explores agentic experience and three approaches to building agent-ready applications: Web MCP, MCP Apps, and A2UI.

Insight
Agentic AI: From Copilot to Autopilot | Naveen Kumar Bhansali
Sep 4, 2026

Agentic AI: From Copilot to Autopilot | Naveen Kumar Bhansali

Learn how Naveen Kumar Bhansaliโ€™s thegeekconf mini 2026 session explores AI-driven software development, context engineering, enterprise adoption, agentic workflows, and the shift toward building products for AI agents.

Insight
Agentic Commerce: What Happens When Your Agent Tries to Spend Money? | Roopasree Ranganna
Sep 4, 2026

Agentic Commerce: What Happens When Your Agent Tries to Spend Money? | Roopasree Ranganna

Learn how Roopasree Rangannaโ€™s thegeekconf mini 2026 session explores agentic commerce, delegated payments, trust, identity, mandates, and the systems needed to enable AI agents to transact.

The Right Conversation Can

Save You Six Months.

Book a call