Demystifying iPadOS

Hargreaves Lansdown
HLTechnologyBlog
Published in
8 min readJun 27, 2019

iPadOS is probably one of the most confusing announcement from Apple on this year’s WWDC, since a lots of API changes and SwiftUI are more exciting than anything else, it is possible that iPadOS might’ve slipped outside of the spotlight and did not get the attention it deserves.

Apparently the developer community seems not to be able to digest iPadOS easily (or at all), trying comprehend it from such and such angles, but eventually the conclusion of that whatever that mysterious new thing is that “we will see…”

So, bringing a sense into this iPadOS-madness, I will try to demystify it here — so, let’s start with a brief retro.

Image courtesy of: apple.com

Previously on iPad

About a decade ago Apple introduced their own tablet platform, the iPad.

Bigger, fancier, cooler than an iPhone but basically its purpose was the same, creating a data-consumer device but with a bigger screen. A you may recall the first iPads were much weaker (in hardware) than their counterpart iPhones from the same era (you may also remember that certain features, like multitasking, were supported on iPhones first but came to iPads much later).

Skip the years…

A lot of interesting things has also happened during the years like e.g. iPad’s hardware was getting more and more powerful, lighter, etc… but let’s skip the boring parts of evolution and jump back to the present all of a sudden.

Now on iPad

iPad Pro

Even bigger screen, extremely powerful hardware…

The word ‘extremely’ means that the latency of the pen is 9ms (from the previous 20ms), the A12X Bionic Chip with M12, 1TB Capacity, some kinda unknown GPU. Nevertheless, on many of the benchmark tests this hardware is about to be equivalent with any i5-grade desktop configuration or Xbox One S in floating point calculation†.

Long story short, that means the latest iPad Pro is seemingly more powerful today than Apple’s own latest MacBook Air.

The powerful hardware is just one side of the coin.

† Gazillion benchmarks are available online about these, I will leave that with your natural curiosity.

OS(s)

The other side of the coin should not be a big surprise either (hopefully): the name ‘iOS’ is just a wrapper for the mobile operating systems of Apple, yes, in plural, because since iPad came out years ago Apple has had two mobile operating systems, which have been sold under the same name: iOS — until now.

However under the hood iPad always had their own OS, which is coincidentally identical to the handset’s OS in many ways currently (up to iOS12, at least) because their foundations are the same SDK, but these two systems were always isolated behind the scenes.

You may not believe that but the reason we have two operating systems rather than one is simply due to the differences between the hardware capabilities.

So, naming the OS on iPad ‘iPadOS’ is not really a big surprise after all.

What is iPadOS then?

iPadOS is a change in paradigm — basically.

iPad is no longer a data-consumer platform, from iOS 13 and onward it is a brand new data-producer platform. Reflecting such fundamental change: iPadOS was just born.

That has to be emphasised strongly (by Apple) because that defines the new nature of every app running on iPadOS, that needs to be crystal clear to the end-users and the developers as well.

Building up such mindset will require even more separation from the currently existing concept of the mobile data-consumer platform in future in both groups, mentally and technically as well.

Going inside iPadOS’s brain

It is also worth to mention a few key-points:

  • iPadOS has a Safari with desktop-class experience;
  • iPadOS has an advanced file handler;
  • iPadOS is able connecting to external file-servers;
  • iPadOS allows connecting USB sticks;

These do not seem to be interestingly massive or exciting features at the first glance but it is also part of the concept of making a fully qualified data-producer platform, which gives a brainteaser of whether iPadOS would be closer to be a mobile-OS or a desktop-OS eventually.

Feels more confusing than it was before…

Yes and also no.

Under the hood iPad continuously had the same foundation (SDK) as its sibling handset’s OS and it looks like the iPadOS is also based on iOS13 SDK, so this tradition may go on for now.
Nothing new under the sun, it is like how it was at the time of iOS12, iOS11, iOS10, etc… iPadOS is basically a wrapper of the iPad version of the mobile OS of Apple (i.e. the runtime environment for iPad apps with iOS13 SDK, briefly).

This may or may not continue to be like this in in the future but currently there is no such thing as iPadOS SDK at the moment.

So, it seems Apple’s idea and motivation are clear — they intend to target this new iPadOS to be between macOS and iOS in future, about somewhere on the mid-way.

You may skip the following part

Until this point you may get the gist about iPadOS in general, but from here it goes a bit more technical, you can still follow it but if you are not interested just skip ’til the end.

There is more devil in the details…

A bit of an insight only…

Technically speaking the first iteration(s) of iPadOS seemingly brings nothing significantly new to us on iPad what we could not expect from iOS13 SDK (apart from some fancy features and revised home-screen), most of the changes are inside the iPadOS’s heart, but if you start digging deeper in UIKit, you will find interestingly, new things which make no sense at the first glance, like e.g. UIHoverGestureRecogniser, that is strictly part of UIKit but strangely it does not do anything if the app runs on iOS.

Why could it be? The iPad’s hardware is not about tracking hovering fingers… So, why is such element part of it then?

At this point I’m actually enjoying increasing the discomfort in you by telling you that there is a UIKit for macOS, which takes advantages of hovering – wait for it – mouse pointers.

Interesting… isn’t it?

Solving the Gordian Knot

For finding peace in the soul, we may need a little experience of macOS development and then suddenly iPadOS and its “new” traits start making more and more (even perfect!) sense.

Spoiler alert!† The applications on the new iPadOS are expected to be identical to a document-based application on macOS in structure and in behaviour as well.

Do you remember Apple’s new slogan “Bring you iPad app to Mac”? Or even more direct headline of “Creating a Mac Version of Your iPad App”? Or the guideline of how “Optimizing Your iPad App for Mac”? That is still happening, and will be introduced via iPadOS.

You should now be able to see how the macOS version of UIKit fits perfectly into this picture.

The final piece of the puzzle is: how’d everything work together.

† No, not really.

Overview: application’s lifecycle

On iOS and on macOS (with single-view app)

You are probably quite familiar with the concept of MVC on Apple platforms, and have experience of how smoothly MVC works based on some ground rules, if not don’t worry you will see the similarity and differences anyway, but if you are familiar with it, don’t take it hard if I just literally scratching the surface when I am describing (half of) the app’s life-cycle in 3 simple points:

  1. the OS instantiates your app’s initial controller first;
  2. your controller creates the mandatory model and view (in various order);
  3. during runtime your app’s single instance works with a single set of data;

That was the expected behaviour from an iPad app prior iPadOS.

It also seems that the tables have turned, out of blue.

iPadOS vs. macOS (with a document-based app)

In a document-based macOS application the life-cycle is twisted a bit, compared to what I just mentioned above, an abstract representation of such flow would be:

  1. the OS instantiates your app’s shared controller first;
  2. that loads the model which creates the mandatory view;
  3. during runtime your application has one instance of shared controller and multiple sets of views with corresponding models;

This flow is coincidentally similar in iPadOS, so from iOS 13 on iPad† and onward:

  1. the OS instantiates your app’s shared controller first (app-delegate);
  2. that loads the model and also inits the instance of view (scene) for the model;
  3. your application has one instance of shared controller (app-delegate) and multiple sets of views (scenes) and their corresponding models;

That’s how iPadOS will be sailing away from the good-old concept of iOS — towards macOS.

† SwiftUI may change that to something similar to this flow on iPhone in future, and the concept of the document-based app is available in iOS13+ as well.

Expectations: business as usual

Split screen

While on a desktop computer it is easy to deal with multiple applications at the same time (you can activate, deactivate, hide, show, or move / resize them on the screen using a touch pad or mouse). Apple seems having slightly different ideas for iPad, but what they do offer is something you might be familiar with from macOS — the concept of split screen.

That means on iPadOS that your application can open multiple scenes and can take advantages of the split-screen and modern-multitasking technologies.

Modern-multitasking

Apps on iPadOS must support modern-multitasking which simply means the application technically won’t move into background anymore but the OS will delegate fewer resources to inactive instances of an app only — that is kind of similar to the way of multitasking on any desktop system nowadays.

Individual scenes will be able to move to background only, while the user still can work with another scene of the same application.

Just for being clear

Apple did not get it straight (yet) whether or not this modern multitasking will apply to handset’s platforms as well, so that still needs to be investigated in future as that may be an interesting technical debt for us.

Current iPad apps in such context

It it normal facing that things are changing rapidly in iOS SDK and those changes may affect existing iPad applications as well. Every business continuously has been occupied by making their iPad applications up-to-dated, conforming to the latest API, security expectations, and some user facing UI changes in the last few years. The future may not be so different yet.

Regarding the new iPadOS, the businesses might be also challenged to these milestones and may need considering adding these ones into their roadmaps:

  • up to Apr 2020†
    the current iPad apps could be submitted to AppStore with iOS 12 SDK, while Apple does the bridging for the apps on iPadOS
  • Apr 2020 — Oct 2020†
    Apple may start demanding iPad applications must conform iPadOS, while Apple still does the bridging for old apps
  • Oct 2020 — Apr 2021†
    Apple may start removing iPad applications from AppStore which does not conform iPadOS, while Apple also stops bridging

† These dates or actions are not confirmed by Apple (yet), it is based on an assumption of how Apple applied their policies of submission in past.

Summary

I hope that gave you a bit more understanding of what iPadOS is and what that means for HL from business or technical perspectives.

If you’d like to know more about iPadOS or you have question about any oncoming iOS 13 related features or technologies feel free to leave a comment.

--

--