Last October we reviewed the web implementation in iOS7.0. We were disappointed in the release, and said that "the sheer number of bugs and broken features, clearly mark this release as a beta". Now that iOS 7.1 has just shipped, we decided to revisit our assessment and see how much progress Apple has made polishing the product.
TL;DR The good news is that the majority of bugs, broken features and performance regressions have been cleaned up. For example, we’re back to 60 fps performance for SVG animation, and Home Screen Apps seem to be working just fine again.
Home Screen Apps Back Again
The biggest news for web developers with iOS 7.1 is that Home Screen App functionality seems to have been fixed. This is good news, because Home Screen Apps were horribly broken in iOS7, with disabled alerts, hard crashing bugs and other wacky behavior. Apple now also provides a new meta tag to trigger (almost) full-screen on page load. The new meta tag is called "minimal-ui" and it loads a page with the toolbar hidden and the top URL bar minimized to the domain name. Unfortunately, minimal-ui breaks Sencha Touch 2.3 viewport position on iOS 7.1 when rotating from portrait to landscape. So thanks to Steffen Hiller for finding the bug and also for creating a workaround for minimal-ui breaking landscape.
Bug Fixes In Content Handling
iOS7.1 fixes almost every bug we found in iOS7.0 content rendering and animation:
- Interactive elements that are near page borders now get focus properly when swiping left or right (instead of triggering the page back/forward action in the browser).
- requestAnimationFrame animations now properly suspend when in a non-active tab
- Web workers now properly suspend when in a non-active tab
- Implicit z-indexes are now properly calculated before CSS animations fire
- On iPad, changing orientation while an input has focus now seems to work just fine and the bug related to document height 100% seems to also have been fixed.
We do note that window.resize still doesn’t seem to fire when the URL bar and toolbar are minimized, although if you’re using the minimal-ui meta tag because you have bottom positioned content (for example) you shouldn’t run into this.
Great Quality Improvements, But No New Features
iOS 7.1 is a bug fix release that fixes almost all the issues we found in the rushed-to-market iOS7. While there are no new HTML5 features that we (or HTML5Test) could see, web developers can once again rely on Apple’s best in class browser for building HTML5 applications. We continue to expect Apple to introduce WebGL, Web audio, and more HTML5 features in a future release to be on par with the HTML5 features being introduced by Google, Microsoft, and Blackberry to their mobile platforms.