Say No to Storyboards - Top 10 Reasons

Posted by Jayesh Shinde on December 19, 2019 · 2 mins read

As a Passionate iOS Developer, working more than a Decade in Mobile technologies and its integration with different enterprise platforms like SAP, Salesforce, IBM Mainframe, MS Sharepoint, AWS Cloud, managing such large scale Enterprise or Customer Facing iOS Native app is key challenge organizations are facing. Today, I will tell Top 10 Reasons - Say No to Storyborards.

Why to Say No (In Dilemma whether to use Storyboard or Not):

  • Apple introduced new SwiftUI
  • There is shift in programming paradigm from Imperative to Declarative
  • Maintain large apps with more number of Storyboards becoming bottlenecks to prevent use of CICD, adopt new programming paradigm, upgrade iOS native apps.

Top 10 Reasons

  1. Storyboard uses XML which follows Apple own propertiery schema. While working with large teams of developers, with multiple storyboards, managing the merges issues becomes headache, especially when more than single person working on the same storyboard. Thus decrease in productivity.
  2. Storyboards has small windows to manage which makes difficult to have fine grain precision, especially in conditions where there are more than 10 views or controls.
  3. Storyboards follows Target-Action Pattern which makes difficult to test large app.
  4. Dramatic Increase in the Compile time of project observed when working with storyboards, more than 100.
  5. Refactoring of element within storyborads observed quite complex and tedious especially there are heavy fonts, styling, multilingual, deep localization.
  6. Storyboards are identified using StringIdentifiers, which makes difficult to maintain routing or navigations in dynamic workflows scnerios.
  7. IBOutlet and IBActions causes viewcontrollers difficult to tests, thus reducing the code coverage. IBOutlet and IBActions causes app to have run time crash if any one of the linkage is missed.
  8. Layouting the Subviews become tedious when dealing with Universal apps, where multiple storyboards needs to maintain for watch, ipad, iphone.
  9. Migrating to new XCode or Migrating to new APIs, its become difficult to find deprecated apis in terms of layouts, fonts, colors, etc. Storyboard causes UIWindow object to be available by default which makes difficult to manage.
  10. Apple is shifting towards Scence Delegte where UIWindow become optional and UIScence is controlling the rendering. (Scene Delegate, by default sets up a UIWindow object)