Going Universal

I 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

And now we're going universal again with Curio 14.4 with support for Intel and Apple silicon architectures on macOS 11 Big Sur (11.0). This means Curio 14 natively supports Apple's new generation of Macs using their astounding M1 chip, while still supporting Intel Macs.

Given that Curio 14 has a 3x larger codebase than our earlier universal transition, with a coding timeline that stretches back 18 years, this was, shockingly, a much faster process I believe for several key reasons:

  1. 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 141312, ...). 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.
  2. 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.
  3. 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.
  4. 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!

As I write this, we have an M1 MacBook Air on order, hopefully arriving within a few days. We'll continue testing on this shipping hardware to make sure Curio 14 is shipshape on this new architecture!

One Build

It's exciting to release a single build of Curio that supports so many significant macOS releases and architectures:

  • 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.

It's also exciting to see the Mac itself go through so many transitions, from Motorola, to PowerPC, to Intel, and now to custom Apple chips. These evolutionary steps, plus the transition to macOS 11, gives the Mac ecosystem a new thrill and excitement that has been missing the past few years.

Go Macintosh!

PS: If you're a current customer still on an older version of Curio, purchase a discounted upgrade to Curio 14 and you'll be ready for both macOS 11 and the Apple silicon generation!

PPS: Curiota is universal as well!

Curio 14.4, Big Sur, Apple silicon!

Curio 14.4 is out with two huge headline features:

  • Support for macOS Big Sur!
  • Support for the new generation of Macs using Apple silicon!

macOS Big Sur

Apple is taking an evolutionary leap from macOS X to macOS 11 Big Sur! Its brilliant new interface brings new life to the Mac. 

macOS Big Sur also brings some updates to its underlying frameworks which allows us to offer new functionality in Curio 14.4 including local PDF generation of math equations, Grab Web Archive, Organizer web view support for a find bar, support for macOS Big Sur's new unified toolbar style, and a nifty new app icon that matches the look of Apple's bundled macOS Big Sur app icons.

Apple Silicon

Curio is now built as a universal binary, which means it runs natively on Intel and on the new generation of Macs powered by Apple's amazing M1 chip

Most importantly this means it is not running under the macOS Big Sur Rosetta translation environment (aka emulation) on Apple silicon Macs, which could have performance and/or compatibility issues 

Plus More

And of course there are a slew of other tweaks and fixes, thanks to feedback and requests from customers.

Updating to Curio 14.4

See the release notes for full details on everything in Curio 14.4.

Curio 14.4 is a free update for Curio 14 customers:

  • For customers who downloaded Curio from our website, you should see the update available notice during its daily check, or you can choose Curio > Check for Updates to force a check.
  • For customers who downloaded Curio from the Mac App Store, it should get updated automatically by macOS or you can use the Mac App Store app to force an update.

Enjoy the new release! 

Blog Subscription

Blog Search


Archives