iOS 7 Tutorial Series: Should You Upgrade Your Apps to iOS 7?

by Jonathan Tang

The all-new iOS 7 has finally been announced, and brings with it a radically overhauled user interface.  Apple’s CEO Tim Cook calls it, “the biggest change to iOS since the introduction of the original iPhone.”

While some believe that apps should maintain their own visual style and shouldn’t be redesigned just to match the look of iOS 7, others believe that appsshould be redesigned in order to focus on content and to make the user experience feel more native. 

Without even going into detail about the key features and APIs of the new OS that developers are excited about, I hope to convince you the importance of adopting iOS 7 early and quickly.

Like it or not, all iOS 6 apps will need to be upgraded for iOS 7

 

1) Look And Feel Is Entirely Different

Apple rebuilt the user interface in iOS 7 to look and feel in an entirely new way.  It’s safe to say this radical visual overhaul is the biggest change to iOS yet.

Marco Arment, creator of Instapaper, writes,

"iOS 7 is different. It isn’t just a new skin: it introduces entirely new navigational and structural standards far beyond the extent of any previous UI changes. Existing apps can support iOS 7 fairly easily without looking broken, but they’ll look and feel ancient.” 

UK based app developer Entropy writes on its blog,

“Fundamental elements - from borderless buttons to translucent bars through to full-screen layouts must be considered - and added - to allow your App to take full advantage of iOS 7.

Simply put, pre-iOS 7 Apps running on the new OS stick out like a sore thumb - looking aged, clunky, and well…just ancient.”

Like it or not, the new flatter UI is the landscape to come, and adopting these changes early will be key to maintaining and expanding your customer base. Keeping old design not only makes your app look clunky, it risks turning your customers away.

2) User Adoption Of iOS 7 Will Be High

User adoption of iOS releases has been faster than ever. Apple has started continuously charting iOS adoption figures on its developer portal.  As of August 3, 2013, an astounding 94% of customers are using iOS 6.

 

Not only are adoption percentages high, the update rate is tremendous, reaching 36% within a day after the release of iOS 7 operating system according to mobile analytics company Mixpanel.

These statistics are all good news for iOS developers planning their app roadmaps. If a large percentage of users are on the latest version of the operating system, then the developers can take advantage of the new feature APIs introduced in each update. Users who upgrade their operating systems also expect their apps to adopt new functionality. It helps that in iOS 7 application background updating is turned on by default.

The take-home is that developers can safely design applications based on new iOS releases, knowing that a high percentage of their customers will upgrade when a new operating system is released.

 

How To Make Your iOS 6 App Compatible With iOS 7

While testing iOS 7, I noticed a few things about the apps that I use on a daily basis.  A few of the apps suffered some kind of UI glitch, but some apps stopped working entirely. Almost all iOS 6 apps look antiquated and don’t fit in with the flat, borderless, minimal UI.  In light of these hurdles, how should you go about making sure all your apps continue to be exemplary citizens in the App Store?

In this example, let's assume you are in charge of future development efforts and your company has three apps in the pipeline:

  1. App 1 is already in the App Store and is compatible with iOS 6 only.
  2. App 2 is currently in development and will be released sometime 1-3 months after release of iOS 7.
  3. App 3 has not entered the development phase yet and will be released sometime in 2014.

1) Stage One – Make old apps compatible with iOS 7

The first stage is to make sure App 1, the existing app in the store, is able to run on iOS 7 with no issues.

Since App 1 is an existing iOS 6 compatible app that you are maintaining, the only thing you need to do is make sure that it still runs fine on iOS 7. To identify what issues your app will have in the newest release, the simple test is to use it on a device running iOS 7.

If you haven't done so already, get a device with a version of iOS 7 and load your app onto the device and start using it. Confirm that every functional and visual feature of the app runs as expected.

Defect resolution for App 1 will be slightly annoying in that it will be difficult  to deploy using older XCode versions directly to a device running iOS 7, due to restrictions with run time compatibility mode.  Apple expects you to compile an IPA and side load it onto the device with iPhone Configuration Utility.  There is currently a workaround for this on StackOverflow.

2) Stage Two – Choose whether to redesign current apps for iOS 7

The second step is to decide whether to make your current apps iOS 7 compatible, or redesign them to match iOS 7 visual style.

Recall that App 2 is currently in development and scheduled to be released soon after the public availability of iOS 7. This application compiled with the iOS 6 SDK will also need to be thoroughly tested on an iOS 7 device. The good news is, since the app is planned to be released after iOS 7 is public, you will have plenty of time to test against the new operating system and determine what changes need to be made to be compatible with iOS 7.

After making App 2 compatible with iOS 7, you can choose to investigate the possibility of compiling this app using iOS 7 SDK.

To do so, first install XCode 5, load your iOS 6 based project and select iOS 7 as the base SDK and iOS 6, or any older version as the deployment target.  This compiles the application against iOS 7 libraries and will allow the application to run on both iOS 6 and iOS 7 devices.

An important note: the UI elements (status bar, keyboard, buttons, and tables) will change visual style based on the device’s operating system.   That is, new iOS 7 style UI will automatically display when you are running your app on an iOS 7 device.  This only happens when you compile your app with XCode 5 using the iOS 7 SDK as the base SDK.

A side note on the differences between base SDK and deployment target:

Base SDK – This is the SDK that you build the application against. It specifies the highest possible SDK that the app can use features from.

Deployment Target – The operating system version that the mobile application targets.  It specifies the lowest possible OS version that the application will run on.  Devices with earlier releases than the specified deployment target will not see the application in the App Store.

In order to build the app for the widest set of devices possible, the convention is to:

1. Set the Base SDK to the latest SDK possible.
2. Set the Deployment Target to the earliest iOS version that is supported.

3) Stage Three – Completely redesign future apps for iOS 7

App 3, the application in the planning stages, will likely be your first “designed for IOS 7” app.   You have a chance to redesign the graphical interface to follow UI patterns for iOS 7. If you haven’t done so already, read Apple’s fantastic iOS 7 UI Transition Guide.

In the UI Transition Guide, Apple provides one important note for developers, who intend to provide an iOS 7 app that looks like an iOS 6 app:

“An app that mimics standard iOS 6 UI in a completely custom way is likely to require a lot of work because it will simply look out of date.”

What this means is that Apple will be enforcing UI changes through the iOS 7 SDK.  Buttons and tables will be automatically converted to a borderless and flat style, status bars will be translucent, and layouts will be full screen.  If you decide to mimic iOS 6 UI, it will require complete custom implementations of all UI elements that have changed in iOS 7.  This will be, simply put, a lot of work and look out of date.

For backwards compatibility, Apple gives an important tip:

“First, focus on redesigning the app for iOS 7. Then, bring the changes to the iOS 6 version as appropriate. If business reasons require you to support iOS 6, it’s still best to begin by updating the current app for iOS 7. Then—as much as possible—apply the design changes to the iOS 6 version of the app.

In Summary

iOS 7 is the biggest change to iOS since the introduction of the iPhone.  Everything about the look of iOS 7 has been massively overhauled, and like it or not, all app developers must return to the drawing board and reconsider their mobile roadmap.

Regardless of what design decisions you make, when you put an iOS 7 app next to an iOS 6 app, the difference will be stark, the choice for the customer will be clear.

iOS 7 Tutorial Series

This article is the first of many in the iOS 7 Tutorial Series.  In the next few weeks, my fellow colleagues will introduce many of the new and exciting features of iOS 7.  Please bookmark http://blogs.captechconsulting.com or subscribe to our feed and come back for more articles in the iOS 7 Tutorial Series.