We reduced our iOS app launch time by 60%

# · 🔥 190 · 💬 161 · one year ago · doordash.engineering · wallflower · 📷
App startup time is a critical metric for users, as it's their first interaction with the app, and even minor improvements can have significant benefits for the user experience. In this article, we will explore three separate optimizations that reduced the time it took to launch our iOS consumer app by 60%. We identified these opportunities using proprietary performance tools, but Xcode instruments or DTrace could also be suitable alternatives. The stack trace in Figure 2 is taken directly from our app launch to showcase this. The first question we asked ourselves was: "Do we really need a string to identify a type?"Eliminating the string requirement and switching to identifying types using ObjectIdentifier instead, which is a mere pointer to the type, yielded 11% faster app startup times. This framework alone occupied roughly 40%(!) of our app launch time, as seen in Figure 3. So what can we do? How do we balance one aspect of the customer experience with fast app launch times? Those nine initializers attributed to the total cost that delayed our app launch.
We reduced our iOS app launch time by 60%



Send Feedback | WebAssembly Version (beta)