A New Way To Navigate Between Apps

iOS 9 has a couple new features that Apple collectively calls Deep Linking. Users are undoubtedly familiar with the scenario where they’ll receive a link to a YouTube video or a tweet, or something else that relates to a service that does have a native iOS app. Unfortunately, clicking these links will usually bring you to a web page in mobile Safari instead of the appropriate application, which isn’t a very good experience. Android tackled this issue long ago with Intents, but even with the improvements to inter-app communication in iOS 8 there wasn’t a way for developers to easily and seamlessly implement such a feature. With iOS 9 they finally can.

Deep Linking builds on the same foundation as Handoff from the web which was introduced in iOS 8. The way that developers can implement deep linking is fairly straightforward. On their web server there needs to be a file called an apple-app-site-association file. This file contains a small amount of JSON code which indicates which sections or subdomains of your website should be directed to an on-device application rather than Safari. To ensure security, the association file needs to be signed by an SSL certificate. Once the developer has done this there’s nothing more to be done, and iOS will take care of opening the appropriate application on the device when an application is clicked.

The aspect of the improved navigation between applications that is most relevant to users right now is the back link that appears in the status bar when you move from one app to another. In the past, opening a link from within an application would either rip you out of that application and take you to Safari, or open the link in a mini web browser of sorts inside the application. The new back link is designed to allow users to quickly return to the application they were working in from the application that a link took them to.

Right now, the primary use for this is returning from Safari when you’re taken to it from inside an application. Once developers implement deep linking this feature will become even more significant, because clicking a Twitter link in the Google Hangouts application will simply slide the Twitter app overtop for you to see, and when you’re done you can click the back link to return to Hangouts.

It’s important not to confuse this new feature as a back button in the same sense as the one in Android or Windows Phone. iOS still has the exact same architecture for app navigation, with buttons to go back and forward located within each application rather than having a system wide button. The new back link is more of a passage to return to your task after a momentary detour into another application.

As for the UX, I think this is basically the only way that Apple could implement it. I’m not a fan of the fact that it removes the signal strength indicator, but anywhere else would have intruded on the open application which would cause serious problems. I initially wondered if it would have been better to just use the swipe from the left gesture to go back, but this wouldn’t be obvious and risks conflating the back link with the back buttons in apps. It looks like having the link block part of the status bar is going to be the solution until someone imaginative can come up with something better.

Reducing Input Lag

iOS is fairly good at minimizing input lag, but there has always been a certain amount of delay that you couldn't get around no matter how quick your application is. Part of this is related to how frequently the capacitive touch sensors scan for input, which is usually at the same frequency as the refreshing of the display, which puts the time between scans at about 16.7ms. Devices like the iPad Air 2 and upcoming iPad Pro scan at 120Hz for finger input, which drops this time to about 8.3ms. On the software side you have the steps and processes of the iOS touch and graphics pipeline, which is where Apple has made improvements to reduce touch latency on all devices in iOS 9.

The above image is a visual representation of the iOS touch and graphics pipeline. As you can see, with a typical application you're looking at about four frames of latency. Apple includes the display frame in their definition of latency which I disagree with because you'll see the results of your input at the beginning of the frame, but for the purposes of this discussion I'll use their definition.

In this theoretical case, it just so happens that the time for the updating the state of the application is exactly one frame long. One would think that decreasing the amount of time for the app to update state would reduce the latency for input by allowing Core Animation to start translating the application's views into GPU commands to be passed to the GPU for rendering. Unfortunately, this has not been the case on iOS in the past. No matter how well optimized an app is, Core Animation would only begin doing work at the beginning of the next display frame. This was because an application can update state several times during a single frame, and these are batched together to be rendered on screen at once.

In iOS 9, Apple has removed the requirement that Core Animation will begin working at the beginning of the next frame. As a result, an optimized application can take care of updating state, having Core Animation issue GPU commands, and drawing the next frame all within the time span of a single display frame. This cuts the touch latency down to only three frames from the previous four, while applications with complicated views that require more than a single frame for Core Animation and GPU rendering can drop from five frames of latency to four.

Apple has also made improvements at the actual touch input level. Like I mentioned earlier, the iPad Air 2 and iPad Pro scan for finger input at 120Hz, which can shave off an additional half frame of latency by allowing applications to begin doing work midway through a frame. In addition to reducing latency, the additional touch input information can be used by developers to improve the accuracy of how applications respond to user input. For example, a drawing application can more accurately draw a line that matches exactly where the user swiped their finger, as they now have twice the number of points to sample. Apple calls these additional touches coalesced touches, and they do require developers to add a bit of code to implement them in their applications. However, being able to begin app updating in the middle of a frame is something that will happen automatically on devices with 120Hz input.

The last feature Apple is implementing in iOS 9 to reduce input latency is predictive touch. Put simply, this is information that developers can access to have some idea of where the user's finger is moving on the display. This allows them to update views in advance using the estimated information, and once actual information about the user's movement has been received they can undo the predicted changes, apply the actual changes, and also apply predictions made based on the user's new movements. Because Apple provides predicted touches for one frame into the future this technique can reduce apparent input latency by another frame. Combined with the improvements to the input pipeline this drops latency as low as 2 frames on most devices, and on the iPad Air 2 the effective touch latency can now be as low as 1.5 frames, which is an enormous improvement from the four frames of latency that iOS 8 provided as a bare minimum.

App Thinning

Apple gets a lot of criticism for shipping only 16GB of NAND in the starting tier for most iOS devices. I think this criticism is warranted, but it is true that Apple is putting effort into making those devices more comfortable to use in iOS 9. The most obvious improvements are with their cloud services, which allows users to store data like photos in iCloud while keeping downscaled 3.15MP copies on their devices. Unfortunately iCloud still only offers 5GB of storage for free which really needs to be increased significantly, but they have increased the storage of their $0.99 monthly tier from 20GB to 50GB, dropped the price for 200GB from $3.99 to $2.99 monthly, and reduced the 1TB tier price to $9.99, while eliminating the 500GB option that previously existed at that price.

In addition to iCloud, iOS 9 comes with a number of optimizations to reduce the space taken up by applications. Apple collectively refers to these improvements as app thinning, and it has three main aspects.

The first aspect of app thinning in iOS 9 is called app slicing. This refers to something that honestly should have been implemented five years ago, which is only including the assets that a device needs rather than having a package including assets for all devices. For example, current applications will come with 1x, 2x, and 3x scale bitmaps in order to work across every iOS device. Anyone who owned an iPad 2 may have noticed that app sizes inflated significantly after the release of the iPad 3, and this is because when apps were updated you needed to store all the 2x resolution bitmaps even though they were completely irrelevant to you. With the introduction of ARMv8 devices this problem has gotten even more significant, as app packages now include both 32bit and 64bit binaries. GPU shaders for different generations of PowerVR GPUs also contribute to package bloat.

App slicing means that applications will only include the assets they require to work on the device they are downloaded onto. The analogy Apple is using is that application only needs a single slice of the assets that a developer has made. What's great about app slicing is that any application already using the default Xcode asset catalogs will automatically be compatible, and the App Store will handle everything else. Developers using custom data formats will need to make an asset catalog and opt into app slicing.

Apple's statistics show a significant reduction in app size when app thinning is used. Savings are typically in the range of 20-40%, but this will obviously depend on the application. I'm not trying to criticize what is really a good feature, but it's hard to believe that this is just now being implemented. It's likely that the introduction of the iPhone 6 Plus increased the need for this, as apps now need to include 3x assets, whereas previously having 1x assets in addition to the 2x ones wasn't a huge deal when most devices were retina and the 1x assets weren't very large.

The next aspect of app thinning is on demand resources. This feature is fairly self explanatory. Developers can specify files to be downloaded only when they're needed, and removed from local storage when they aren't in use. This can be useful for games with many levels, or for storing tutorial levels that most users won't end up ever using.

The third and final aspect of app thinning is bitcode. Bitcode is an intermediate representation of an application's binary, which allows the App Store to recompile and optimize an application for a specific device before it gets sent to the user. This means that the application will always be compiled using the latest compiler optimizations and can take advantage of optimizations specific to future processors. While I've mainly focused on how app thinning relates to trimming the space of applications, bitcode is targeted more toward thinning apps in the sense that they're always as fast as they can be.

Much like the situation with RAM on iOS devices, my favored solution to users having issues with storage is to start giving them more storage. With the iPhone 6s and 6s Plus still starting at 16GB it looks like the physical storage situation on iOS will remain unchanged for some time. At the very least, Apple is making an effort to come up with software improvements that will free up space on devices. This is still not an optimal fix, and even better would be implementing these changes and also giving users more storage, but any improvements are certainly welcome. Implementing them in ways that don't require much hassle on the part of developers is something they will certainly appreciate as well.

The Performance Implications of Multitasking Under the Hood: Safari
Comments Locked

227 Comments

View All Comments

  • centhar - Thursday, September 17, 2015 - link

    It's called a "toy" because all that "power" it has is relegated the iPad to just being a consumption device. The OS is not developed enough to make it a serious creation tool.
  • ws3 - Friday, September 18, 2015 - link

    "The OS is not developed enough to make it a serious creation tool."
    That is not true at all. There is no OS-dependent reason why an equivalent pretty much any desktop software could not run on a high end iPad like the iPad Pro. Desktop applications themselves do not rely on the user having full access to the file system. Of course user interaction would have to be redone to compensate for the lack of a mouse, but the power and OS services required to get the work done are there.
  • centhar - Friday, September 18, 2015 - link

    One issue here, the lack of a file system. It makes organization, copying, managing, importing and exporting of data impossible in iOS. Which is needed for apps to function for the user like their desktop bretheren.
  • ws3 - Saturday, September 19, 2015 - link

    There is a file system, of course. But it is not exposed to the user.

    Apple's idea is that manual organization of the file system is an obsolete concept for most users. iOS apps allow you to import and export files without having direct file system access. Of course, due to the lack of direct file system access, the user has much less control over exactly how his files are organized, and must rely upon app-internal organization and cloud services to manage files.

    The claim being made by Apple haters is that full user access to the file system is absolutely necessary. The claim being made by Apple is that full user access to the file system is more complexity than most users need or are able to handle, and that in the long run it will be seen as no more necessary than the manual layout of data in main memory -- something that was seen as critically important in the early days of computing, but which now, of course, is completely irrelevant to everyone except people writing operating systems.

    It remains to be seen who is correct. I suspect Apple is, but we'll have to wait a while to find out.
  • osxandwindows - Sunday, September 20, 2015 - link

    How about file managers for iOS, I use them all the time
  • Sc0rp - Wednesday, September 30, 2015 - link

    Why is it that people were creating stuff on primitive operating systems back in the 90's with far less power available than the iPad, yet for some reason you think that the iPad's os isn't developed enough and it can't be used for productivity. This is someone that used to use Mac OS7/8/9 back in the day and did a lot of producing on those systems, which were limited to cooperative multitasking.
  • osxandwindows - Wednesday, September 16, 2015 - link

    Well I don't have to buy a new device every 3 years
  • wylie102 - Monday, September 21, 2015 - link

    "The Apple people are stupid sheep who can't think for themselves, and I hate to break it to you, but Apple consumers are a very small market compared to the overall PC and tablet market."

    A sheep is someone who follows the crowd, yet you state in your next sentence that the crowd is overwhelmingly using windows.

    So which is it? You can't have it both ways.
  • robinthakur - Thursday, October 1, 2015 - link

    I use a MS Surface Pro 3 and own an iPad Air 2 and I think the gap has narrowed in terms of what the ipad can't do (especially with a keyboard like the optional surface pro 3 keyboard) now that MS Office Web Apps run on them which is 90% of what the majority of working people need it to do. Now, obviously the Surface can do far more as a full blown Windows machine, and the software for it generally exists already. I as a power user and developer enjoy having that much control of full Windows and I need it. However it also has the historic disadvantages of running full windows which made people stop using it i.e. overheating, updates, security problems etc and complexity. For the average user who has been using an iPad in meetings for the last 5 years, Surface as an option really wasn't good enough as it was underpowered, battery poor, too small and too expensive. They have now changed to work with iPad and are used to working around some of the limitations and adapting their workflows.

    The reality is that the majority of users can get by with an iPad running a modern iOS with the appropriate apps unless they are doing something specialised like Visio, Photoshop or Maya or whatever. Speaking to the influencers and people with the power in business to change this through my job, the general consensus is that while they do like the Surface 3, and can see why having mobile Windows devices operating with a Windows enterprise stack makes things like SharePoint, and other enterprise MS software a much easier proposition, the reality is that MS has also made all it's software far more iPad friendly because the frightening alternative was people moving away from using software that didn't work on the iPad completely. We have zero choice on making software compatible with iPad because that's what people are using, period, and this can't change overnight. Apple has not properly targeted the corporate market other than maiking the devices basically compatible with things like VPN, Active Sync etc. because they haven't had any competition, but it wouldn't surprise me if they started taking it a bit more seriously.

    I think MS don't help themselves by changing their minds and approach constantly on things like RT, Windows Apps and others. Businesses are only now starting to gain confidence that they are serious about the Surface program, and who is to say they won't decide to can it next year if the iPad Pro is a success and they want to focus on software and farm it out to Dell/Hp etc?

    So nobody doubts that the Surface Pro 3 is a more capable device because it just is, but is it an appropriate device in an App centric world where most enterprise software can be delivered through a thin, light, cool-running iPad with Mobile Safari as a tier 1 browser via Office 365?
  • lilmoe - Wednesday, September 16, 2015 - link

    "most Apple users would never dream of changing ecosystems"

    Opinions.... Most have no brand loyalty whatsoever, and will move to the newer "best thing" as claimed by their peers in a heartbeat.

    iPads are great consumption devices, even I was suckered into buying one because my dad wanted one (his friend told him it was the best....."rolling eyes"). They are successful in part because of the devices themselves (and the brand), but that's not the major reason why. The more important reason is the *lack* of proper/legitimate competition in the iPad's target market.

    Tablets running mobile OSs are NOT a necessity in peoples lives. They're more like a novelty some of us buy for "convenience", and are easily replaced by phablets for most consumers. Those who want one, and are willing to pay, will find the iPad very appealing for its performance, smoothness, and selection of media consumption and companion apps. It's a proven product in that respect, and those who're paying the premium don't want to deal with "other issues".

    Android has had lots of trouble getting its performance and framerate game together. Google, and it's utter failure to deliver is at fault. Samsung is NOT a software company, and no matter how good and feature rich their modifications to Android are, lots of people will still find them "clunky" because these modifications were never native to the OS. Google's recent versions of Android are too little, too late. While stock Android is now fast and smooth, it still doesn't stand a chance against Touchwiz in neither features nor usability. Let me say this straight for those who think Touchwix is bad; the absolute majority of consumers HATE stock Android with a passion (tech blogs and XDA are NOT the majority of consumers, not by a long shot). Let me say one more thing if that wasn't offensive enough for stock Android lovers: While I personally believe Android is the king of smartphones (for now), it is the very reason why the non-iPad tablet market is so bad, confusing, cheap, and has no future.

    Windows RT (now Windows 10 Mobile, without the desktop) was the absolute best mobile OS ever to be installed on an ARM powered tablet IMHO. But it had a mix of management, timing and media conception problems (and sabotage), resulting in the alienation of both users and devs.

    Microsoft are really late to the consumer game, so late it's painful. They shouldn't have settled for firing Sinofsky, and everyone else behind how Windows 8/RT was executed, they should make sure they never find a career in tech.

    The Surface Pro is very successful and popular because its intended audience know exactly how capable it is. These guys don't need extensive advertising.

    True, it's Android (or rather more accurately, Samsung) on smartphones that forced Apple to reconsider lots of their design decisions with their iPhones. But it's Windows that's forcing them to change the face of iOS on their iPads.

    There are 3 major markets for tablets:
    1) consumers (dominated by Apple)
    2) prosumers (spread among Apple and Microsoft, with some Android users here and there)
    3) professionals and content creators (dominated by Microsoft).

    Apple's latest updates to iOS and the iPad are primarily for maintaining the second type. Because the first type couldn't give a rat's behind how a productive a tablet is.

Log in

Don't have an account? Sign up now