So it’s been a week since the announcement of iOS 13 and being the impatient person I am it didn’t take me long to install it on my main phone… yes, yes, I know, it’s always said never install beta software on your main device but well I’m just a dare devil.. and really impatient.
You’d be forgiven for thinking that the big warning on apple’s developer site targeting “thrill seekers” and the fact that you couldn’t install the beta over the air as you normally would meant that it must be a cataclysmal mess of bugs and crashes.
However I was pleasantly surprised by the stability and overall polished experience I have had so far… that’s not to say there aren’t bugs, there are! but so far non of the bug I have seen have been deal breakers.
I initially installed the beta on my iPad (after many issues trying to get iTunes to see my iPad…) as i was more comfortable of that becoming unusable than my phone but after only 2 minutes i was downloading the iPhone build.
So far the issues I have seen have all been visual or easily recoverable, for instance folders and other views not being correctly styled for dark mode or the camera only detecting my face the first time around when trying to set my avatar using Memoji and iMessages (this is fixed by restarting the phone 🤷♂️).
I’ve always been an early adopter of iOS betas and have seen my fair share of bugs and crashes, even comparing this to the iOS 12 betas it’s an improvement. Last year was a mess of apps crashing left right and centre, this year I have had the grand total of one app crash on launch! ONE!!!
And even then it managed to somehow resolve itself after a couple of attempts.
But nothing even comes close to the year I had a bug where music decided to play through both headphones and speakers at the same time 😂
But that’s enough about bugs, let’s talk about what works and that’s dark mode!
It’s staggering how a simple addition like dark mode can transform the look and feel of the OS.
Don’t get me wrong, there’s still a lot that needs to be done to make it feel truly universal but that will come when third party apps start to support the new feature. However all of the first party apple apps feel completely different in dark mode, it’s hard to explain but when you see the way white text just pops on the fully back screen of the iPhoneX’s OLED display is stunning.
The one thing I worry about is the adoption rate from developers, apple has done a lot to support the new mode but ultimately I see it as being a low priority on the list of potential additions to a lot of apps.
Pair this with the fact that for the best support you will need a minimum target of iOS 12 and its asset catalogue colors.
It is possible to support it without using asset catalogs but you’ll need to make your colors all accessible via computed properties or methods.
Let’s just hope a lot of apps already do this, otherwise we could be waiting a while for a truly dark experience.
Another area where iOS 13 excels is in the newly dubbed iPadOS, the ability to have your widgets available all the time seems like a small addition but having the weather always on your home screen is a nice addition, however where iPadOS really stands out is in its newly revamped multitasking, this has been a long time coming and a feature that iPad has been needing if it’s to truly fulfil apples vision of replacing a laptop.
Despite some fiddly gestures to open a second app the experience is amazing, I have a first gen iPad Pro 9.7′ and it handles multiple apps without a hitch.
As for implementing this functionality in your apps there will be some adaptations you’ll need to make, first off you’ll need to enable the “Supports multiple windows” option in your target, but the biggest difference is the addition of scene delegates. Scene delegates don’t replace the app delegate but they could be described as an extension to the app delegate.
So now the app delegate is instantiated once and only once, this meant that no mater the number of windows your user has open there is only ever one app.
The scene delegates are then responsible for the lifecycle of a single window instance getting callbacks like
sceneDidEnterBackground(), this implementation allows for your app to store and maintain state between windows, this should allow for someone to make changes in one window and for that change to be immediately become available on another.
Where this will be at it’s most useful is in productivity apps such as Pages or Numbers where it would be useful to have one document open whilst working on another.
While I’m on the subject, the name; iPadOS, it seems like Apple are making a concise effort to remove the iPad from the same umbrella as the iPhone and iPod, maybe this is because they are blurring the lines between apps and platforms. No longer do you have an iOS app and a separate macOS app, now you have an iOS app that is also an iPad app that is also a macOS app and maybe apple don’t want consumers to get confused about what an iOS app is and how it differs from a macOS app or maybe they feel that all this unification of apps means that there’s no longer a platforms split and they don’t want people to think of all the platforms as one.
Either way I wonder if we are going to go full circle and end up back at iPhoneOS as we had in the early days of the iPhone. I don’t think apple will separate the platforms entirely but we are seeing a new divide in API and feature support between the two platforms and so this could be a glimpse of what’s to come in future iOS releases, a unified platform with branching sub platforms.
So there’s a lot of other things I could have covers in this post but it would have gotten way too long.
I would like to look deeper into some of the new APIs and frameworks that are on offer in iOS 13 and none more so than SwiftUI, I have already been playing around with it and have my opinions but that’s a post for another day.
So in conclusion I think iOS 13 is a big step forward for the platform and that is highlighted a lot with the additions made to iPadOS, I’m eagerly looking forward to future beta releases. As for whether you should install the beta, I would still recommend waiting until the public beta as you may not have the same experience as me but if you are a bit mad like myself then go for it!… but do so at your own risk 😉