My last day at Airbnb was just a few weeks ago. While I'm super proud of everything we built together, I wanted to briefly highlight the last project I led: enabling new UI in Airbnb’s iOS app to be built using #SwiftUI

We started by adding support to host SwiftUI views in Epoxy, our previous UI framework, to ensure SwiftUI could handle Airbnb’s custom UI needs. When that worked out well, we decided to rebuild our entire design system in SwiftUI to unlock its benefits for full screens.

SwiftUI not only made the implementation of Airbnb’s design system many times smaller due to its declarative paradigm—it made it dramatically more flexible thanks to its styling patterns and support for generic views with slots.

Now, almost all of Airbnb’s new screens and components in our latest launch were built using SwiftUI, and the vast majority of engineers said that SwiftUI made them more efficient without regressing the user-facing quality of their screens.

There will be a blog post published soon with many more details, but suffice to say that SwiftUI is definitely ready for broad adoption, and if adopted intentionally can improve the experience of building even the largest scale iOS apps!

Took a while but the blog post on SwiftUI at Airbnb is now live! Check it out for more details on how we evaluated SwiftUI and subsequently built a large-scale design system in it https://medium.com/airbnb-engineering/unlocking-swiftui-at-airbnb-ea58f50cde49

@erichoracek Awesome read! Thanks for sharing. Already shared the post with my team here. 🙇‍♂️

Out of curiosity, how many folks is the Airbnb iOS team these days?

@eliperkins I’m not there anymore, but it was around 75 regular iOS contributors before I left
@erichoracek I didn't realize you left! Your new gig sounds pretty fun 🤩
@erichoracek Interested in the blog post! Always keen to see how large apps are using SwiftUI at scale.
@erichoracek we also use #swiftUI at Fetch to ship to millions of users and absolutely love it! +1 for nothing you said.

@erichoracek more efficient compared to what? Did you use Objective-C, react native or something else?

🙏🏽

@ondrejsevcik we previously built our screens using Epoxy, which is a thin declarative layer over UIKit where components are written as UIView subclasses https://github.com/airbnb/epoxy-ios
GitHub - airbnb/epoxy-ios: Epoxy is a suite of declarative UI APIs for building UIKit applications in Swift

Epoxy is a suite of declarative UI APIs for building UIKit applications in Swift - GitHub - airbnb/epoxy-ios: Epoxy is a suite of declarative UI APIs for building UIKit applications in Swift

GitHub
@erichoracek very interesting! What's next for you after Airbnb?
@chris just started at OpenAI! I’ll be working on the ChatGPT app with some other awesome folks
@erichoracek awesome, that sounds really amazing.
@erichoracek interesting! Is UIKit still used for navigation?
@pakkito yep! SwiftUI is just used for for screen content—not screen to screen navigation or screen containers, that’s all still UIKit. We did experiment with SwiftUI wrappers for UIKit navigation but felt that was a lot of layers of indirection
@erichoracek thanks for the insights :)