Designing Buildable Apps

Designing Buildable Apps

This blog post introduces the core concept of “Designing Buildable Apps” and previews the insights shared by Caitlin Steele and Jeff Watkins at SwiftCraft 2024.

Introduction to the SwiftCraft 2024 Presentation

Have you ever been handed a beautiful app design that was nearly impossible to implement? Or you’ve designed what you thought was the perfect interface, only to have developers explain why it can’t be built as you envisioned. These disconnects between design and development are all too common in our industry, and they’re the exact challenge we addressed in our recent SwiftCraft 2024 presentation.

What Are Buildable Apps”?

Buildable apps aren’t just visually appealing interfaces or technically impressive codebases; they’re products that successfully bridge the gap between design vision and development reality. They embody three essential qualities:

1. They’re Satisfying to Build

Buildable apps provide precise blueprints that make implementation straightforward rather than puzzling. Developers don’t need to reverse-engineer design intentions or make critical architectural decisions without guidance.

2. They’re Sustainable to Maintain

Like well-constructed homes, buildable apps are designed for long-term maintenance and support. They anticipate future needs, avoid unnecessary technical debt, and create solid foundations that adapt to changing requirements.

3. They’re Intuitive for Users

Ultimately, buildable apps create coherent experiences that make sense to users. They maintain consistent mental models and provide clear pathways for accomplishing tasks.

The Collaboration Gap

At the heart of many unbuildable designs lies a fundamental gap in collaboration. In our presentation, we shared research from Lacey Kobriger’s “Unpacking cross-discipline collaboration” article, which revealed a striking disconnect:

  • 79% of designers reported collaborating with developers
  • Yet only 23% of developers reported designers collaborating with them

This wasn’t a matter of anyone being dishonest; it stemmed from a difference in how each discipline defined collaboration:

  • For many designers, collaboration begins when designs are complete
  • For developers, collaboration should start when the project begins

Bridging this gap is essential for creating truly buildable apps.

The House-Building Metaphor

Our presentation explored four key aspects of app development through the lens of home construction:

1. Design: Laying a Strong Foundation

Like architects create blueprints before construction, effective app design requires thoughtful planning before development starts. We introduced the “one weird trick” of Object-Oriented UX: starting with nouns (objects) before verbs (actions) to create more coherent systems.

2. Layout: Navigating Your App & Home

Different apps, like other buildings, require different architectural patterns. We explored four patterns (Cottages, Houses, Apartments, and Skyscrapers) each suited to varying levels of complexity and collaboration.

3. Framing: Change It at Your Peril

The structural decisions made early in development, like the framing of a house, are extraordinarily difficult to change later. We shared our personal experience of removing a wall in our home, which we did in parallel with refactoring core components in an app.

4. Fixtures: Standing Out or Fitting In

The UI customisation level, like the home fixtures, represents crucial decisions about the balance between uniqueness and maintainability. Using bathtubs for Corgis as a surprisingly effective metaphor, we presented a spectrum from standard to themed to custom UI.

A New Approach to Collaboration

The central thesis of our presentation was that effective collaboration between design and engineering requires a shared understanding that begins much earlier in the process than is typically the case. Specifically, we advocated for:

  1. Collaborative object mapping before visual design begins
  2. Architectural planning that considers future growth
  3. Thoughtful decisions about which elements need customisation
  4. Documentation that explains not just what was built but why

By bringing designers and developers together around these foundational elements, teams can create apps that are not only beautiful but also buildable.

Why This Matters

The stakes of this collaboration go far beyond team harmony (though that’s important, too). Buildable apps deliver tangible benefits:

  1. Faster development cycles with fewer revisions and implementation surprises
  2. Reduced technical debt that might otherwise slow future development
  3. More coherent user experiences built on consistent mental models
  4. Lower maintenance costs over the application lifecycle
  5. Greater team satisfaction with less friction between disciplines

Learning from Millennia of Construction

People have been building homes for thousands of years, while we’ve only been creating apps for about 16 years; just 0.004% of the time since the Egyptian pyramids were constructed. We have much to learn from the established practices of construction, where architects, framers, electricians, and plumbers have developed effective collaboration patterns over centuries.

The most important lesson? No one tries to build a house alone, and the same should be true for apps.

Conclusion: Building Better Together

Creating truly buildable apps requires a fundamental shift in how designers and developers collaborate. By starting with shared object models, architectural planning, and thoughtful decisions about customisation, teams can bridge the gap between design vision and development reality.

Like building a home, building an app requires the collaboration of many specialities. When we embrace this reality and create processes that foster genuine cooperation from the outset, we produce products that are not only visually appealing or technically impressive but also truly buildable: satisfying to make, sustainable to maintain, and intuitive for users.

Caitlin Steele and Jeff Watkins presented “Designing Buildable Apps” at SwiftCraft 2024.