The Apple Worldwide Developers Conference (WWDC) is just a few weeks away. It's an exciting time for all of us who build apps for Apple products—and for a lot of their customers, too—since the week-long conference starts with a keynote address where they typically announce the next versions and updates to OS X and iOS. Every WWDC is preceded by months of rumors and speculation about what those announcements will be (the all electric AppleCar!), since Apple keeps their cards close to their chest. Here's a list of the things that we're hoping to see on June 13th.
- Support for refactoring Swift Code: Xcode, the Apple IDE, has had two major releases since Swift was first introduced, and we still see an error message when attempting to use any of the refactoring features in a Swift file: "Can’t refactor Swift code. Xcode can only refactor C and Objective-C code." Most new code we write is in Swift, so we're hoping that Xcode learns some new tricks this year.
- iPad improvements: iOS 9 introduced new multi-tasking and split-screen features for newer models of the iPad (including iPad Pro). We can all but guarantee that iOS 10 (or iOS X, maybe?) will include additional enhancements to make those Pro devices even more useful.
- Split screen of the same app, twice: iOS 9 allows you to run two apps side-by-side, but not one app next to itself. This probably doesn't make sense in most scenarios, but imagine writing an email in one half of the screen while referencing another email thread in the other half. Or, two Messages windows side by side to easily chat with multiple people simultaneously.
- Drag-and-drop across split screen: As in the previous example, it would be nice to drag a photo or bit of text from one half of the screen to a new message on the other half.
- Denser home screen: The iPad allows 20 app icons on each page of the home screen: four columns in portrait, five in landscape. Have you seen what this looks like on a giant 12-inch iPad Pro? It's absurd—there's a ton of empty space. From a design perspective, we appreciate the value of negative space. From a usability perspective, it seems silly to swipe through mostly-empty home screens to get to the app you're looking for.
- Apple Pencil canvas view: Adding Apple Pencil support within an iPad application requires a fair amount of time and effort. We would love to see a native, drop-in touch canvas view that allows developers to quickly add basic support for Apple Pencil. This would allow third-party applications to directly leverage the performance and precision similar to what we see in the native Notes application. The biggest use case being that developers have a starting point when drawing support is needed within the application, such as a handwritten signature view for a banking app.
- Expanded Safari View Controller support: Safari View Controller is awesome because it enables things such as shared cookie storage, Safari Reader mode, and Auto-Fill. However, the customization is currently limited. As of iOS 9, there are only two options available to customize the view controller - specifying reader mode by default and outlining the items that will be displayed in the native sharing panel. We’d love to see Apple open this API up with more features, allowing for custom toolbars, gesture recognition, and minimum font size support.
- Discontinued iPhone 4S support: The 4S was released nearly five years ago, but every version of iOS since has included support for the device. 4S usage is incredibly low (less than 3% of phones according to Mixpanel), yet new apps built for iOS 9 still need to support the 4S. Accounting for the smaller screen is a headache for our design team with minimal return.
- New MacBook Pro models: MacBook updates haven't been featured at WWDC the past two years, but several of us are due for an upgrade and have been holding out for new hardware. Apple typically releases updated models at the same price points as the old ones, so waiting a month or two for the update means more bang for your buck.
- Something to explain the drastically dropping app review times: Don’t get us wrong, these shorter review times have been an incredibly-welcome change, but will they last? We’re curious if App Store review is becoming more streamlined, more automated, or even phased out.
- Improved UI testing: A moment of honesty - most of our development team hasn’t even tried using the UI testing introduced in Xcode 7. From everything we’ve heard, it’s simply not ready for prime time. For example, there’s no way to actually touch the code in the app making it difficult to use mock objects, the recording mode generates convoluted paths to target taps making them fragile, and the simulator restarts for each test making them painfully slow. Any of all of those suppositions may not be as bad as we’ve been led to believe, but much like Swift, we planned on giving UI tests a year to stabilize before investing time in them.
In hopes of not further complication a developer’s job, there are a number of things that are not on our wishlist this year:
- Surprise Swift 3 announcements: Swift has been evolving in the public view since December, so we all know what's coming when version 3 gets released later this year. I expect that the keynote will include some updates on the language, but we won't get any surprises, and if we do, it'll be more off-putting than exciting, precisely because it has been open sourced.
- Xcode on the iPad: There's been a decent amount of speculation about the possibility of bringing Xcode to the iPad, especially now that the iPad Pro models are out. The most compelling use case we've heard for this is using playgrounds as a teaching tool for new programmers. As much as we’d be delighted to see that come to fruition, we can't imagine an iPad version of Xcode that's powerful and capable enough to build the kinds of apps we work on every day. Unless given a dedicated development team at Apple, producing a quality developer tool experience on the iPad with the current Xcode platform could prove challenging and further divide the product.
- iOS apps on OS X: Running iOS apps on your Mac could be an exciting prospect, but could lead to many dissatisfied customers. Macs don't have touchscreens let alone multi-touch input, nor do they include all the sensors an iPhone does (like the accelerometer, gyroscope, GPS, etc) creating an unsatisfying user experience. That said, migrating parts of UIKit back to the Mac could be an interesting step forward with OS X application design.
- Anything about Apple Music: WWDC is a developer conference, so a lot of people were irritated last year that the keynote wrapped up with Apple Music, an announcement that was decidedly not developer-centric. Then again, this keynote has definitely become an event closely watched by the consumer side of Apple, so it was hardly a surprise that they took advantage of the big viewing audience to make the announcement. We think Apple learned to steer clear at WWDC this year as the Apple Music API was released in February with iOS 9.3, though we didn’t get best practices or changes to the App Store review guidelines until late April. This tells us that Apple has more interesting things to tell us about at the keynote.
Over the next month, the rumors will evolve, and we’ll all be eager to see what goodies appear in the conference sessions throughout the week. If you’re in Chicago the week of June 13th, come watch the session videos with us on Tuesday, Wednesday, and Thursday. More info on the NSCoder meetup page.