# Splitting up a storyboard in an Objective-C/Swift mixed legacy project

DevFeed: [Splitting up a storyboard in an Objective-C/Swift mixed legacy project](<https://devfeed.tech/articles/splitting-up-a-storyboard-in-an-objective-c-swift-mixed-legacy-project-32005.md>)

Original publisher: [Read original article](<https://tech.finn.no2016/06/22/splitting-up-a-storyboard/>)

Author: Marius Waldal

Published: 2016-06-22T11:19:07Z

Content type: article

Language: en

Sources: [Finn.no](<https://devfeed.tech/sources/finn-no.md>)

Topics: [Objective-C](<https://devfeed.tech/topics/objective-c.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [interoperability](<https://devfeed.tech/topics/interoperability.md>), [legacy](<https://devfeed.tech/topics/legacy.md>), [XML](<https://devfeed.tech/topics/xml.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [interoperability](<https://devfeed.tech/tags/interoperability.md>), [ios](<https://devfeed.tech/tags/ios.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [project](<https://devfeed.tech/tags/project.md>), [swift](<https://devfeed.tech/tags/swift.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

## AI overview

This article explains why the FINN iOS team split a large storyboard into smaller storyboards in a legacy project containing both Objective-C and Swift. It discusses collaboration problems, XML changes, Xcode performance issues, project history, and the importance of Swift-Objective-C interoperability.

## Source excerpt

Splitting up a storyboard in an Objective-C/Swift mixed legacy project How do you go about splitting up your storyboard into multiple smaller storyboards? And why would you? In this article I'll tell you why we wanted to do this, what kind of problems we encountered along the way, and how we solved them. The problem: Large storyboards makes iOS developers into sad pandas As the FINN app has grown the last few years, so has our storyboard. Using storyboards means you get several useful features, and it can give you a visual conceptual overview of how your app works. I say "can", because this is not necessarily the case. Also, using storyboard has some quirks that are not always appreciated when multiple developers are working on the same project. Any small change to a storyboard might mean several changes to the storyboard xml. In addition to this, XCode has an annoying tendency to recalculate coordinates for several storyboard items just because you opened the file! And yet another annoyance is that the larger your storyboard, the slower it is to work with. We usually waited at least 5 seconds just for the file to open, and actions were often laggy. So, the iOS team had long ago decided it was time to split it up, but that job is not necessarily easy. Or small. Or even fun. And the Jira task for it also stated "Beware of scope creep...". Yeah, it crept. The FINN app: Some history The current FINN app was launched in August 2013. During these three years, the app has of course grown a bit, and during the last year or so several new features have been added using Swift, and quite a few of the older Objective-C classes have been rewritten in Swift. However, the majority of the code base is still Objective-C. Interoperability between Swift and Objective-C is therefore crucial. A quick count of files says that we currently have 171 Swift files and 349 .m files in our project (not counting third-party code, of course). These files contain >44,000 lines of code, comprised of