iOS 13: what app developers need to know
Apple's new operating system presents a series of challenges to developers and now would be a good time to look at the test environment
The software world would be boring if everyone agreed. iOS 13 has received a variety of different reviews and opinions, but one thing that is not up for debate is the impact that it has on app development. Apple's new operating system represents a step-change forward. We now have both iOS 13, plus the separate iPadOS 13, and all this is going to have a huge effect on maintaining the quality of those apps going forward.
What's new?
Of course, this is not visible to end users, whether for personal or business use. They benefit from new features such as Dark Mode, a drastic overhaul of the Photos app, a street-style view in Apple Maps, plus the introduction of the new gaming portal, Apple Arcade. Overall, the user experience has been improved, with enhanced privacy and location settings, making it harder for developers to track where people are, while also making it easier to find lost devices. A new single-sign-in feature has also been introduced.
Apple fans have a track record of adopting new operating systems fast, so the pressure is on app developers to keep pace, and that includes anyone supporting business apps in the Apple environment. Another factor is that while Apple is retiring support for some of its legacy devices, app developers are probably going to want to carry on supporting those users. Furthermore, for the time being, iOS 12 still represents the majority of the market.
Testing, testing
Rigorous testing during app development is well understood. Without it, developers risk introducing a whole host of issues. The challenge with iOS 13's introduction is that it takes the complexity and scale of tests to a new level. Test lab coverage will need new test matrices that support the new operating systems and apps needing to run on legacy devices. The amount of test data is going to get a lot larger and more complex, so efficient management and visibility will become harder, which could potentially slow down feedback to test engineers and software developers.
There are several clear steps to addressing the testing challenges of the new, expanded iOS landscape. The first is to create a new test matrix, then carry out a regression/functional test audit across all those platforms, followed by creation of a new lab configuration that supports them all. An important factor to remember is that there will be differences based on the audit of test code, with either Appium or XCUITest, the two main iOS testing frameworks used today. Another consideration is that in order to deal with any changes to the UI or pop-up notifications, any test automation scripts developed for iOS 11 and iOS 12 will also need to be amended to also work on iOS 13 and iPadOS 13.
Some of the new features need particular focus, such as Dark Mode and Apple sign in. These will have a big impact on the UI, but will not be supported on some legacy devices, so the test platform will become even more fragmented. This is why it makes sense to test — and then continuously test — the native, hybrid and responsive web design (RWD) with the new UI, Safari browser and Dark Mode. Even though under the surface they may be different, native and other iOS apps should perform the same way for users across legacy devices and all OS versions.
Two trains running
A final best practice step is to build a performance benchmark that will assess the app or website's performance and responsiveness to new features. Also look at using tools that include smart analytics to sift through the volume of test ‘noise' to identify what has the most impact on the business, and with machine learning, continually improve the quality of that analysis.
Those are the immediate tasks. Longer term, the differences between iOS and iPadOS will increase, with two different release trains, so processes for dealing with their on-going maintenance also need to be changed. Automating tests as much as possible will help address the sheer scale of the test landscape.
Behind the scenes, iOS 13 and iPadOS 13 have big implications for software development, including how testing helps improve the quality of that software. With these new operating systems already in the marketplace, and several patches already introduced as part of Apple's efforts to stabilise the software quality, there is no time to lose.
Eran Kinsbruner is chief evangelist of Perfecto at Perforce Software