Posts in Linked

Explaining iOS 8’s Extensions

If you’re looking for a more technical overview of extensions in iOS 8, Andrew Cunningham has a great one at Ars Technica:

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).

It’ll be interesting to see how developers will take advantage of extensions this Fall.

Permalink

UI Workflows for Editorial

Since my review of Editorial 1.1, I’ve been keeping an eye on the workflow directory and I’ve come across some great UI workflows worth linking to.

  • Crop Image: “Custom UI to crop images and save the output to the Camera Roll” (More details by Philip Gruneich in his blog post. I love this idea.)
  • Move Line: “Indent, outdent or move line up/down using arrows in popover UI”
  • Sidebar Notes: “Shows a “Notes” sidebar next to the document (on iPhone, it’s shown in an accessory panel instead of a sidebar)“
  • List Folder: “Shows a popover with a list of files in a configurable folder”

Editorial users are coming up with amazing ideas to enhance the app, and I can’t wait to see what Ole does with extensions on iOS 8.

Permalink

JavaScript for Automation on OS X Yosemite

As detailed by Apple in a technical document, OS X Yosemite will add JavaScript support for scripting and automation:

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.

Permalink

Apple’s Advantage

Kyle Baxter, writing about Apple’s Health app and HealthKit, both announced at WWDC:

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?

I agree. Apple highlighted the importance of user privacy several times during the keynote, and I appreciated many of the tech-related choices behind that – such as disabling network access for third-party keyboards by default.

Permalink

OS X Yosemite Beta UI Compared to Mavericks

Min Ming Lo has published a good initial comparison of the OS X Yosemite beta UI compared to Mavericks:

Apple revealed a sneak peek into Mac OS X Yosemite earlier this week. Not surprisingly, Apple updated its desktop OS to match iOS 7’s design language. The new OS X now embodies a brighter and flatter styling, coupled with icon updates, font changes, and translucent materials. Here’s a quick look at the visual design changes in Yosemite and my impressions of them.

Clearly Apple has a lot of work ahead to polish Yosemite before the final release, but I’m a fan of the new direction. And, unlike others, I’m glad to see a happier Finder. Who doesn’t like smiles?

Permalink

Brent Simmons’ Early Thoughts on WWDC 2014

Brent Simmons:

It was like this, though — we kept hearing about things, even relatively small things, that all by themselves would have made for a great week. It was like the greatest Christmas ever — and then Santa Claus hung out so you could take selfies with him. This friendly and generous Apple reminds me why I love writing iOS and Mac apps.

It’s a small thing, but I think the photos that Cook, Federighi, and Ive took with developers make Apple feel more human and approachable. Combine that with great announcements, and you get a fantastic WWDC.

Permalink

Developer Christmas

Mostly live from San Francisco, Myke, Federico and Stephen discuss the events of the WWDC 2014 keynote.

In the first of many episodes about Apple’s announcements at WWDC 2014, we talk about general impressions of iOS 8, Yosemite, Photos, and the improved App Store.

Get the episode here.

Permalink

Continuity’s Statement

From Shawn Blanc’s article on WWDC 2014, I particularly liked this bit about Continuity:

But I think Continuity is more than just a better implementation of a cool feature. I see it as a “philosophical” feature as well — it’s a statement that we use our devices for many of the same tasks, and that “work” is device agnostic. Continuity is a way of telling the Apple user it’s okay to expect their devices to always be in sync down to the very mid-sentence of an email in progress.

This is a great way to put it. Continuity is one of those features that “just make sense” – of course my activity should follow me around seamlessly – and it highlights an important point: devices and OSes are different, but the experience should always be consistent and natural.

Permalink

Swift Links

The third big announcement that followed OS X Yosemite and iOS 8 yesterday was Swift, Apple’s new programming language meant to replace Objective-C.

From Apple’s website:

Swift is an innovative new programming language for Cocoa and Cocoa Touch. Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project — or for addition into your current app — because Swift code works side-by-side with Objective-C.

Swift has been in the works since 2010, as confirmed by Chris Lattner, Director of the Developer Tools (via John Siracusa):

I started work on the Swift Programming Language (wikipedia) in July of 2010. I implemented much of the basic language structure, with only a few people knowing of its existence. A few other (amazing) people started contributing in earnest late in 2011, and it became a major focus for the Apple Developer Tools group in July 2013.

The Swift language is the product of tireless effort from a team of language experts, documentation gurus, compiler optimization ninjas, and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course, it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.

One of the key features of Swift is interactive Playgrounds, which will allow you to type code and see the results appear immediately:

Playgrounds make writing Swift code incredibly simple and fun. Type a line of code and the result appears immediately. If your code runs over time, for instance through a loop, you can watch its progress in the timeline assistant. The timeline displays variables in a graph, draws each step when composing a view, and can play an animated SpriteKit scene. When you’ve perfected your code in the playground, simply move that code into your project.

As an introduction to Swift, Apple has created the Swift Programming Language guide, available as a free eBook on iTunes and on the web:

Swift is friendly to new programmers. It is the first industrial-quality systems programming language that is as expressive and enjoyable as a scripting language. It supports playgrounds, an innovative feature that allows programmers to experiment with Swift code and see the results immediately, without the overhead of building and running an app.

Over at The Verge, Ben Popper talked to iOS and OS X developers and collected their reactions to Swift:

The other big idea behind Swift is that programmers can write their code and see the results in real time. In the old paradigm, developers write line after line of code in a text box, then compile those results — sometimes a lengthy, painful, productivity-denting task — and wait to see the end result. The product and the process were distinct from one another. With Swift, they can tweak a parameter or algorithm and watch the changes happen right away in the same coding environment. Theoretically, this means developers can toy with concepts faster and make what they’re trying to make in less time.

Last, Tim Stevens has a good general overview at CNET, explaining the differences between various programming and scripting languages and Apple’s approach with Swift:

Scripting languages, like Python, tend to be easy to write and easy to test, but they aren’t particularly powerful and generally don’t perform well. Not ideal when you’re writing, say, a game that needs access to the full power of your device. Traditional programming languages, like Objective-C, give better access to the power of the device and enable the creation of more comprehensive apps, but are difficult to learn and tedious to compile and test.

Swift promises to have all the good with none of the bad. Apple promises that, at least in a few key benchmarks, it is considerably faster to execute than Python and faster even than Objective-C. But, despite that, the language supports what’s called “playgrounds” within the Xcode developer environment, visualizing Swift code in real-time, like a scripting language.

Permalink