Xcode Through the Years
Cory Bohon (tweet, Hacker News):
As we begin 2022, it has been almost 20 years since Apple released Xcode to developers as the predominant way to create Mac apps.
[…]
This was a revolutionary idea, and Apple put itself in direct competition with the commercially available IDEs like CodeWarrior that developers were using at the time to build apps for the Mac. It would take a few years, but Project Builder (and its successor, Xcode) would become the dominant IDE for developers building apps on the Mac — especially as Apple began developing new platforms like the iPhone and essentially locked developers into using Xcode for building apps for those platforms.
[…]
In 2010, Apple took the development community by surprise when it announced Xcode 4, a ground-up rewrite of the interface that merged two major development apps, Interface Builder and Xcode, into a single app.
I have special affection for ProjectBuilder (without the space) and Xcode 3.
These days, having learned to heavily use .xcconfig files and made peace with the single-window workflow and linking groups and folders, I’m reasonably happy with it. Interfacewise, the last several versions have brought welcome tweaks. It seems to be at a local maximum.
The main pain points right now:
- The delay every time I run a unit test.
- Testing commands sometimes run the wrong tests or do nothing at all.
- Profiling unit tests doesn’t work
- Compilation still erroneously fails sometimes until I clear the derived data.
- Syntax coloring and Command-click symbol navigation are often wrong (usually for Swift).
- Giant generated Swift header files are hard to use.
- Auto-indentation with closures and generics is not great.
Previously:
- Slow Testing With Xcode 12.5 and Big Sur
- Apple Developer Tools Memory Lane
- Deleting DerivedData the Right Way
- Xconfig and XcodeBuildSettings.com
- Profiling Mac Unit Tests
- The Unofficial Guide to xcconfig Files
- How to Make Xcode’s UI Work for You
- On Apple’s SwiftUI Header File Documentation
- Xcode 4
- Xcode UI Improvements
- Xcode Unit Test Bugs
- Xcode 3.2
- IDEs
- Mac OS X 10.3 Developer Tools
- Productivity
- That Finder Thing
Update (2022-01-31): Steve Troughton-Smith:
Xcode 4 was the beginning of the end for Interface Builder. What was a fast, reliable, extensible external tool became bogged down with storyboards & autolayout, and accidentally clicking on NIBs became something that’d make you cringe and wait for Xcode to finish beachballing
I am fully convinced that the direction Interface Builder took poisoned the well for iOS development in a way that now makes SwiftUI feel far more appealing than it deserves to be, just as a breath of fresh air and escape from autolayout constraints 😂
Interface Builder should have remained a separate app. It worked better with more screen real estate and a menu bar tailored for it.
After all, any significantly large app includes resources created in separate apps (e.g. for images, video, sound).
It seems like Interface Builder was built into Xcode to offer an easier onramp for novice developers, with the side effect of permanently hampering it as a tool for professional developers.
I wouldn’t have a problem with Interface Builder remaining built into Xcode, if I could just open my storyboards in a separate full-sized window. Setting everything up at 50% is an unbelievable drag.