Going Universal
TweetI thought I'd jot down a brief history of going universal with Curio...
PowerPC → Intel
Apple shifted from PowerPC to Intel on January 10, 2006 with the Mac OS X Tiger 10.4.4 release. This also introduced the concept of universal binaries to the Mac audience, where a single app contained native code for both PowerPC and Intel architectures.
I remember purchasing a first generation Intel MacBook Pro immediately after that announcement to work on Curio 3's universal transition. We released the Curio 3.1 PowerPC+Intel universal build on March 29, 2006.
A relatively quick code transition process, although mainly complicated due to the "endian" differences between the two architectures impacting some low-level code, and because the tools back then were not so robust.
Apple continued supporting PowerPC through Leopard (10.5) but dropped it with Snow Leopard (10.6) which came out August 28, 2009.
Curio continued supporting Leopard and therefore PowerPC chips, all the way until Curio 8.0 released on October 11, 2012 when we made macOS Lion (10.7) our minimum requirement.
Intel → Apple Silicon
- With every major release of Curio and Xcode, we do our best to tackle any new compiler warnings and to keep up with Apple's aggressive annual deprecation strategy, where they drop support for prior frameworks, classes, and technologies and promote newer techniques. We document many of these changes at the bottom of our release notes (see 14, 13, 12, ...). Often these behind-the-scenes code refactorings can take weeks and can be a frustrating experience as previously working code is rewritten for a new technique or class. However, while these changes don't bring new features to our customers, they presumably make our code more resilient to major Apple transitions like this.
- Apple's much-improved tools. Xcode and its many code analyzers, runtime sanitizers, thread checkers, and performance profilers are a tremendous help in making sure our code is clean.
- We were fortunately eligible for Apple's Developer Transition Kit which allowed us to compile, test, and release our universal builds before Apple's new M1 Macs started shipping.
- And, of course, Apple did an outstanding job making sure their Apple silicon-based macOS was rock solid, even in its initial release. A huge shout-out to that team!
One Build
- Mojave (10.14) on Intel, which is the last one that supports 32-bit apps which many customers may still need,
- Catalina (10.15) on Intel, which is the most popular macOS currently,
- Big Sur (11.0) on Intel and Apple silicon, which is the beginning of the macOS 11 era.