Posts tagged with "wwdc 2014"

With iOS 8, announced last week at WWDC, Apple is going to bring deep changes to one of the most controversial aspects of its mobile platform: document storage and management. While iCloud will play a big role with a unified iCloud Drive for iOS and OS X, third-party developers will also get a chance to add better file management functionalities to their apps.

The new features and APIs have been detailed by Apple during its opening keynote and in developer sessions throughout the week, and they follow a common thread: apps can now extend beyond their sandbox, accessing documents stored in other apps without creating unnecessary copies. To better understand the importance of these technological changes in iOS 8 and the inherent complexity that they’ll add for developers and users, I want to take a step back and contextualize how iOS currently handles file storage and management.

Scott Hurff put together a good overview of the changes in the Messages app for iOS 8, nicely illustrated with animated GIFs. He concludes that Messages for iOS 8 shows Apple has considered the ways their customers use the app and iterated accordingly:

Apple’s iMessage announcements can teach us a lot about the value of knowing our customers. It’s not enough to build products based on rumor, anecdote or speculation. We have to know exactly how and why our customers do what they do, and in what context they’ll be using our products.

Messages was especially lacking in terms of attachments and group conversations, and I'm glad to see that fixed.

I was initially surprised to see voice messages getting such a prominent spot in the app but, considering how popular audio snippets are among WhatsApp users, I think the addition makes a lot of sense.

The announcements from iOS 8 & OS X Yosemite alone would have made 2014 a bellwether year for the Apple platform, with Extensions, Continuity, SpriteKit enhancements, SceneKit for iOS, Metal, Game HealthKit, HomeKit, Local Authentication, and a brand new Photos framework. Not to mention the dramatic improvements to Xcode & Interface Builder, a revamped iTunes Connect, TestFlight, Crash Reports, and CloudKit. And oh yeah—Swift.

The kicker? Apple has graciously relaxed its NDA for new technologies, meaning that we don't have to wait to talk about all of the shiny new toys we have to play with.

This week, we'll take a look beneath the headline features, and share some of the more obscure APIs that everyone should know about.

If you're a developer, this is an excellent look at some of the “obscure” APIs that Apple is including with iOS 8 but that they didn't mention publicly last week. I'm particularly interested in the possibility to share tasks between apps and the fact that GPS metadata can be easily excluded from images (I use an app for that). The improvements to M7-powered data are also impressive.

One of the many announcements from Apple’s last week was Metal, a new low-level framework for creating GPU-accelerated advanced 3D graphics while reducing CPU overhead. In short, Metal is a technology that will grant game developers bare-to-the-metal access to squeeze maximum performance out of the A7 processor for better graphics.

Fraser Speirs, writing at Macworld, has an overview of why iOS 8 will bring important improvements for education:

Overall, I’m delighted that iOS has come out of a slightly awkward stage in its development. iOS 6 and iOS 7 really didn’t move the platform forward in substantial ways that had obvious impact on users. iOS 8 promises to take the experience of the serious iOS user to a whole new level. I can’t wait to see what developers do with it.

A simple way to summarize all of this: Apple doesn't want one app to be able to get into another app's sandbox. Extensions are like little sandboxes-within-sandboxes that facilitate communication between different apps while never sharing all of their containing app's data directly with the host app.

It's good to know that Apple is making iOS more flexible and powerful while keeping an underlying model designed for security, performance, and user control.

One of the questions I've received over the past few days is whether enabling a lot of extensions in iOS 8 could cause issues similar to the ones found in, for instance, Safari for OS X with multiple browser extensions installed. Based on what Apple has shown, the answer shoule be “no”: the technology is different, extensions will run in separate sandboxes, many of them will be user-triggered, and iOS will check memory usage and stop them if necessary (as Andrew notes, older devices will likely suffer for this).

The JavaScript OSA component implements JavaScript for Automation. The component can be used from Script Editor, the global Script Menu, in the Run JavaScript Automator Action, applets/droplets, the osascript command-line tool, the NSUserScriptTask API, and everywhere else other OSA components, such as AppleScript, can be used. This includes Mail Rules, Folder Actions, Address Book Plugins, Calendar Alarms, and Message Triggers.

From the developer session video's description:

With OS X Yosemite, application scripting support has been added to another popular language, JavaScript. JavaScript for Automation (JXA) extends the standard JavaScript environment provided by the JavaScriptCore framework with support for querying and controlling all of the scriptable applications running in OS X. JXA scripts are supported at all layers of the system and can be invoked from the command-line, from the system-wide Script Menu, and can even be distributed as code-signed applications.

This is an interesting change for automation on OS X going forward, and JavaScript will be available alongside AppleScript in the Script Editor. You can watch the session video “JavaScript for Automation” here or in Apple's WWDC app.

Second, Apple takes this relationship very seriously. iOS makes it very clear when applications are requesting access to our personal data. Apple has worked quite hard to make sure that the user decides what and how much they want to share.

I don’t think Google or Facebook could announce that they are going to collect their users’ health data and optionally send it to their doctors without some reasonably large amount of criticism and fear of abuse. The reason is obvious: their primary business is utilizing user data to generate revenue, so why couldn’t they do the same with health data?