Enterprise IT Strategy — Post Mobile℠

10 Clues to the Future of Universal Apps and the Apple App Store

The other day I told you about how OS X may become a legacy operating system. That won’t happen overnight; it’ll take a few years. Today I’d like to discuss what might happen in the meantime. I’ll take a bunch of seemingly unrelated facts and see if I can form a realistic story out of them.

I’ve been thinking a lot about Apple’s App Stores lately, especially the Mac App Store which has had so much grumbling about it on Twitter and the blogosphere. In case you haven’t heard, the main complaints are: the Mac App Store doesn’t have as many features as the iOS App Store, apps seem to sit in the queue for longer periods before being approved, apps are sandboxed much like iOS apps, there’s no upgrade pricing for apps, there are no free trials available, and it’s hard to discover new apps based on a very primitive search mechanism.

When a piece of software, such as the Mac App Store appears to be abandoned by Apple, two things immediately spring to mind: either it really is being abandoned and Apple is quietly suggesting you move along without it, or Apple has a huge redesign in progress and doesn’t want to expend time & money on the old version but the new version isn’t ready yet. So they just stay quiet.

A subset of the second option (or, perhaps, a combination of the two options) is that the Mac App Store is going to be abandoned because OS X apps will become more like iOS apps, and there will be a grand unification of the app stores into one App Store.

It’s not too hard to conjure up a story for a unified App Store; here’s some evidence for that.

Apple has been moving to 64-bit OSes and apps for several years. OS X apps have been 64-bit for several years and even iOS apps have been allowed to be 64-bit since the A7 CPU was announced in the iPhone 5S.

Over a year ago, Apple required that iOS apps uploaded to the App Store be 64-bit (even if they also included a 32-bit version). Thus both iOS and OS X apps are 64-bit.

As of Xcode 7, Apple has allowed iOS developers to specify that their apps work only on 64-bit devices. So even though iOS 9 runs on older 32-bit CPUs, iPhones and iPads that contain 32-bit CPUs would not be able to run certain performance-hungry 64-bit apps. App compatibility is no longer just based on iOS version.

For the past couple years, the release notes for Xcode have mentioned that Apple has deprecated “garbage collected” apps on OS X. They’ve even given us a timeline: These older apps, which use a type of memory management that is not supported on iOS, will no longer work in OS X 10.12. This means Apple could make iOS and OS X even more alike next year at WWDC 2016, since both types of apps will use ARC, a more efficient technique that allows iOS devices to use less RAM than Windows 10 or Android apps. Thus both iOS and OS X apps use ARC memory management.

Unlike Microsoft, which came out with the completely new Windows 8 and forced both desktop and mobile users and developers to adapt to a completely new interaction model and APIs, Apple has been gradually—but purposefully—making iOS and OS X more and more similar. They’ve been doing this to users by adding iOS features to OS X, adding OS X features to iOS, and adding new features to both simultaneously (such as Extensions). Likewise, for developers, Apple has been adding iOS APIs to OS X (such as table views, collection views, & tab views.), adding OS X APIs to iOS (TypeKit, JavaScript Core, etc.), and adding new APIs to both (CloudKit, HomeKit, etc.). Thus, year by year, iOS and OS X APIs become more and more similar.

Apple already has “unified” apps for iOS and tvOS by allowing developers to specify that buying an app on iOS results in the same app being free on tvOS and vice versa. An educated guess would be that this is a half-step to a truly unified app, but some infrastructure wasn’t ready yet so Apple had to invent this temporary solution. So Apple is clearly looking at unification.

There’s been a lot of developer angst about how different WatchKit is from standard iOS development (watchOS and tvOS are basically iOS with some libraries removed and new UI paradigms added). But remember that this first Apple Watch uses a 32-bit CPU. In fact the Apple Watch is the only device Apple still sells that’s 32-bit. Perhaps Apple is waiting to open up the APIs a little bit until the Watch CPU and WatchKit APIs are 64-bit.

At WWDC 2015, Apple announced that one feature of App Thinning is BitCode, which allows developers to upload an intermediate form of their app, which Apple can later optimize for different CPUs. Yes, I know that Apple’s Chris Lattner has disavowed this possibility, so it’s not a key requirement of my theory, but then again he could be saying that because they don’t want to give away their plan. Remember how Apple was never going to have a stylus? Another possibility is that Apple will be coming out with a B-series of CPUs, but instead of being optimized for battery life like the A9 and A9X, they’re optimized for desktops and laptops. BitCode might make more sense in this scenario, allowing apps written for iOS to also work on AppleOS (see point #10, below).

Also at WWDC 2015, Apple merged their iOS and OS X developer programs. If you create iOS apps you can now create OS X apps, and vice versa, at no additional cost. This would also be a key component of a unified App Store.

Apple is presumably working on a laptop and/or convertible laptop/tablet that will feature an ARM CPU and run a derivative of iOS, much like tvOS and watchOS are derivatives of iOS. Perhaps it will be called iOS or perhaps AppleOS (iOS with an OS X-like UI, optimized for keyboards & mice) which might run on an AppleBook laptop. In any case, iOS will need to be modified to be more keyboard- and mouse-friendly. Apple is part way there already—iOS features keyboard shortcuts prominently on the iPad Pro with Smart Keyboard, and Apple has “focus” figured out for tvOS. “Focus” is the ability to move from one control to another (say, from a button to a text field) without using a touchscreen. On tvOS it’s done through swiping on the Siri Remote; on a laptop, it would be done by using the Tab key on a keyboard. Stephen Troughton-Smith has done some interesting investigative work showing how these features are already in iOS 9, they just haven’t been exposed publicly. He’s also show that tvOS has a built-in web browser, but it’s lacking a mouse cursor because Apple TV doesn’t have a mouse.

Now, it’s possible that I’m conjuring up theories out of thin air, but all these data points seem to make sense when you think that Apple is working on a unified App Store with unified apps that run on iOS, watchOS, tvOS, AppleOS(?), and OS X.

There would be a collection of APIs that, if developers stick to them, apps would run on all Apple devices and OSes. This API collection would comprise most or all of iOS as well as a large subset of OS X (the parts shared with iOS). Of course there will still be some platform- and device-specific abilities, since a Watch is not a TV.

Apps could use non-UI libraries that are shared across all devices, perhaps having different sets of storyboards to define the UI specifically for each type of device. (Even if you unify the APIs, it’s unreasonable to expect a Watch app to look or work the same as a TV app.)

Once the app was uploaded to the App Store, Apple could use the BitCode intermediate format to compile it for Ax ARM (iOS, tvOS, watchOS), Bx ARM (AppleOS, which otherwise would have no apps on Day One) and, possibly, Intel (OS X).

Developers and enterprises that create iOS or OS X apps have to start thinking about a unified system.

So what might the timeline be for this unified API, App Store, and ARM-based laptop- or desktop-like devices?

Apple is rumored to be releasing Apple Watch 2 in March 2016 or thereabouts. It would be unlikely that a unified API would debut at that announcement since too many other things would need to happen. But WWDC 2016 could see a big push with OS X 10.12 and iOS 10 becoming even more alike and more shared APIs and Xcode 8. Then, of course, autumn 2016 could see new hardware, perhaps an ARM (A10X or a new B1 CPU) convertible tablet/laptop hybrid, or even an ARM-based MacBook running iOS or AppleOS. And that would be a good time to debut a unified App Store for iOS, tvOS, AppleOS, and OS X.

Certainly, I’ve gotten some details wrong and over-interpreted a few data points. But I think it’s clear that something big is coming, whether it’s actually a unified API and App Stores, or just steps along the way.

(As I’m writing this, Apple announced that Phil Schiller will now be in charge of the App Store, along with most other developer functions.)

I believe it’s a mistake to continue thinking that OS X will live on forever as its own separate OS and App Store. Apple is too incentivized to make things easier for itself and third party apps by unifying CPU architectures, APIs, OSes, and App Stores. How exactly it’s going to work and what the timelines are is open to speculation.

Developers and enterprises that create iOS or OS X apps have to start thinking about a unified system.

Don’t think iOS apps never have to worry about non-touch screens or laptops or desktops. Don’t think OS X apps can be kept out of the App Store forever, or that they won’t be required to be sandboxed, or that OS X apps will be priced differently from iOS apps.

These will be challenging times for developers, businesses, and business models. It’s a very different world from even 10 years ago. Look to the future and embrace change. It’s coming.

5 thoughts on “10 Clues to the Future of Universal Apps and the Apple App Store”

I totally agree. I always thought Apple’s secret weapon for the Mac was what if you could run all your iOS apps on the Mac. If Apple told the public that all their iOS apps could run on the Mac, it would really boost the Mac sales.

Great Article, I think they can wrap the code for the interface and make it possible to switch between interfaces on most of their hardware.

All apps will compile into some bitcode/java code and run on a virtual machine thus making the CPU not all that important. Of course power hungry apps will need a strong CPU optimized for speed and others will run efficiently better on portable environment.

But I wonder if it’s not PCs and Macs that are dying, so much as Windows and OS X.

iOS has been adapted for touch (iPhone, iPad, iPod), for wearables (Apple Watch), and for swipe/focus (Apple TV). There’s no reason it can’t be adapted for notebook- and PC-like devices (indirect pointer, such as mouse and trackpad). iOS already has keyboard controls (Option, Command, Control keys; keyboard shortcuts) on iPad Pro.

It won’t take much more to make it work on a laptop. With larger screens there will be a need for more elaborate multi-tasking and perhaps windowing.

Writing an app once and having it work (with just UI changes) on iPhone, iPad, Apple Watch, Apple TV, & laptops will be a game changer.