Since iOS 8 was released to developers in July, engineers at DoubleDutch have been beta testing versions of the mobile event app, ensuring that DoubleDutch apps will be supported on September 17th when users update to iOS 8. Giving insight into this process is Tim Isganitis, one of the expert iOS engineers at DoubleDutch.
As a developer, what things do you need to plan for or take into consideration every year when preparing to transition to a new version of iOS?
Historically, Apple has only updated the iOS platform once every calendar year. That means a whole year's worth of new features and improvements are dropped on third party developers all at once.
Apple rolled out a sneak peek of the new iOS at their developer conference in July and will release it to the public in September. That is a short time-frame from a developer's perspective and it makes for an extremely exciting and hectic two months. While it's always tempting to immediately start developing features on top of the new and improved technologies that Apple releases, the first order of business is actually to make sure that our existing apps run on the new version of iOS.
One of the defining characteristics of Apple's platform has always been a fearlessness in dropping support for technologies that Apple no longer believes in, so we frequently find that we need to make changes so our apps will continue to run when our users update their devices to the new version of iOS.
Next, we evaluate what changes Apple is making to the platform as a whole and how these changes impact third-party apps. For instance, last year Apple completely altered the look and feel of iOS with iOS 7. That prompted us to do a complete facelift of our apps, as well as some significant work under the hood, so that our apps would continue to feel like they integrated seamlessly with the overall iOS experience.
Finally, we can then look at what new technologies Apple has introduced and how best to integrate them into our apps. For instance, last year Apple added the ability for apps to "wake up" in the background and fetch data from a server. Our apps take advantage of this to update the activity feed and other event data so everything is up-to-date when the user next opens the app.
How will the iOS 7 to iOS 8 update affect your development process (for better or worse?)
iOS 8 adds a number of new technologies that will improve our development process in both the short- and long-terms.
The new developer tools for iOS 8 include an entirely revamped continuous integration testing suite. This will help us improve the stability of our apps and prevent us from making changes that re-introduce old bugs. These tools also monitor the performance of our code to catch new bottlenecks and help our compiler optimize our apps for the best user experience on a device.
Apple has also introduced a new beta-testing program and improved crash reporting and analysis tools, which will help us to find and fix problems faster. The new developer tools also include a brand new interface for editing the UI of the app. This improved interface should allow our designers to work side-by-side with developers to bring our UX to life.
In the long term, Apple introduced a brand new programming language, Swift, that is fully backwards-compatible with the existing toolset, but has a simpler, modern syntax and which promises significantly improved performance and stability. Right now we are experimenting with this new language and evaluating when and how to start using it to improve the speed both of our development process and our apps themselves.
What differences can DoubleDutch app users expect to experience when they update to iOS 8?
Not much at first. Users can expect a stable app experience on iOS 8. There are no major UI changes in iOS 8 like there were in iOS 7. There are a whole host of new features like notifications widgets and sharing extensions that we will be exploring over the next several months.
How do you decide when to drop support for older versions of iOS?
We take dropping support for older versions of iOS very seriously. We want every user to have access to our apps, no matter what device they are using.
That said, supporting older versions of iOS can be quite challenging, and can significantly add to the development time and complexity of new features. Apple has a reputation for discarding technologies that it no longer feels are world-class, which means features may have to be implemented in significantly different ways on different versions of iOS.
This also adds a significant burden on our testers, who then need to evaluate our products on multiple devices on each version we support. We weigh these considerations, in particular the need to maintain a stable, world-class product while also continuously delivering high-quality features, against the number of users with a particular version of iOS installed.
When only a small percentage of our user-base is on an old version of iOS, and yet developing for and maintaining that version costs us twice the developer and tester effort, it becomes reasonable to have a discussion about dropping that version. This discussion always involves our engineering, product and customer success teams.
Thank you to Tim for sharing DoubleDutch’s view on future iOS releases. Look for new features taking advantage of iOS 8’s new capabilities in the coming months.