Introducing Uber Poet, an Open Source Mock App Generator for Determining Faster Swift Builds

Introducing Uber Poet, an Open Source Mock App Generator for Determining Faster Swift Builds

  • August 4, 2019
Table of Contents

Introducing Uber Poet, an Open Source Mock App Generator for Determining Faster Swift Builds

Uber Poet, an open source mock application generator, helped us determine if refactoring the application part of our code into a few large modules would make our overall Swift build times faster. Given the scope and scale of Uber’s business, our Swift applications are some of the largest in the world.

Each application possesses 500,000 to 1 million lines of shipping Swift and Objective-C code and about three times more lines of code in the form of tests and auto-generated mocks. As a result of the makeup of our iOS apps, Swift compile times are an important consideration for our engineers. Just a couple years ago, clean build times with our Swift-based rider app used to take 30 to 45 minutes, and after improvements in build configuration, the swift compiler, and build hardware, Swift builds now take about 5 to 10 minutes depending on the application.

Slow build times lead to longer development times for engineers, which means slower turnaround times for new features and improvements, along with all of the other typical issues with long build times. Before Swift 4.0, we determined building many small Swift modules (~300) built with whole module optimization (WMO) mode was the fastest overall build mode for Uber. Swift 4.0 introduced a new batch build mode, which while advertised to work faster in most cases, was about 25 percent slower to build with our ~300 module configuration.

Source: uber.com

Tags :
Share :
comments powered by Disqus

Related Posts

Supporting Dynamic Type at Airbnb

Supporting Dynamic Type at Airbnb

Since iOS 7, Dynamic Type has allowed users to choose a prefered font size for their phone. At Airbnb, we try to build an app that our entire community can use — since Dynamic Type is a critical accessibility feature, we knew supporting it would make more people able to effectively use our app, some of them probably for the first time. To validate the importance of this feature, we examined the data and saw as much as 30% of people using our app had a preferred font size that was not the default.

Read More