AppKit is to the Windows API…

OMG NEW FRAMEWORK!

There was a lot of buzz generated around the discovery of a private framework, called UXKit, that shipped with Apple’s upcoming Photos for Mac app. Like many others I initially thought “It’s about time.” Then I started thinking about the transition that happened when Microsoft created C# and .Net. At the time we had the Windows API and our trusty C/C++ compiler. At the time .Net shipped in early 2002 we were still building desktop applications, the web was moving forward, but not at the pace it is today. Microsoft shipped WinForms, which was pretty much a straight wrapping of the Windows API’s for .Net developers. The point is, Microsoft gave developers a way to do stuff with the new language and runtime that could get them up and running quickly. The environment was different, but the API’s felt familiar.

Moving Forward

In 2006 Microsoft released a new framework called WPF (Windows Presentation Foundation.) This new framework made use of DirectX so rendering the user interface was hardware accelerated, along with other nifty stuff. As far as I know this was the last major framework Microsoft created for desktop developers. Since that time web development and Surface (Metro) seem to be their primary focus. (Someone please correct me here, if this is not accurate. I’m not that dialed in to Windows desktop API’s any longer.)

The point is, Microsoft went through this weird transition from the Windows API to a intermediate (WinForms) to their final desktop UI framework over the course of four years. Creating new technologies and frameworks is hard. They take time, but Microsoft is good at API’s, and they’re very good at maintaining them and providing developers an upgrade path. This is, I believe, where Apple is today. They’re in that awkward period between AppKit and whatever is next.

Enter Swift

In the summer of 2014 Apple gave developers a great surprise at WWDC. They introduced us to a new language; Swift. Since that time Apple has created a weblog dedicated to the language and shipped Xcode 6 with full Swift support. At this point in time it seems like Apple is pushing hard for iOS and Mac developers to adopt Swift as their primary development language. They seem to be “all in.”

Get to the point

Long story short. Do I believe UXKit is a future version of UIKit for Mac development? No, I don’t. I believe it’s a private framework created by the Photo’s team (or another team) to allow them to share a bunch of code with the iOS counterpart. It makes sense. Apple traditionally operates very lean. They have very small teams, so they need to work as fast and smart as they can. If they have a framework that allows them to share more code, it may allow them to move more quickly.

Ultimately I believe we will get an entirely new framework. Built from the ground up using Swift. I suspect that framework will aim to share code between iOS and Mac where it makes sense, and diverge where it doesn’t. The overall feel will be the same for both platforms. It will be unified.

I love thinking and writing about future technologies. I’m rarely ever right in my guesses (see my musings on WinRT), but it doesn’t stop me from dreaming.