Some interesting notes on WWDC, iOS 9, and Swift 2 from a Developer’s Perspective


Apple WWDC 2015

The WWDC keynote on Monday was great, except for the part where it just wouldn’t end. A ton of new stuff on the development front including Swift 2, iOS 9, CloudKit etc.

Here are some notes I gathered while browsing release notes, API diffs, feature pages and so on.

  • You no longer need a $99 developer membership to run iOS apps on your device using Xcode. Additionally, Mac and iOS developer membership have been merged, the price remaining the same:
Screen Shot 2015-06-09 at 1.29.39 am
  • This means that as long as you have a Mac and Xcode, you can easily run open source retro game emulators (NES, SNES, GBA etc.) without having to jailbreak, or resort to rolling back your date to get around Apple’s enterprise distribution program.
sios snes emulator iphone
  • Interface Builder, the graphical tool to let developers create app UI visually, can now render blurs and transparency.
Screen Shot 2015-06-09 at 1.33.57 am
  • Objective-C gets generics, which means collection objects like arrays, dictionaries can have specific types, just like Swift, leading to safer code:
Screen Shot 2015-06-09 at 2.13.03 am
  • There’s a new UI class called UIStackView, which is a port of Mac’s NSStackView. This lets developers create apps that can easily adapt to various screen sizes.
uistack_hero_2x
  • CloudKit can now be used on web too. This will let developers create apps without having to deal with the complexity of maintaining a backend, and use the same infrastructure and data in their web apps too.
  • Apple announced that Swift 2 will be open sourced in December, with Linux compatibility in addition to iOS and Mac. This creates interesting possibilities for using Swift as a language to write server side code.
  • CASpringAnimation is public. It lets developers create natural, spring like animations with attributes like damping, velocity, stiffness etc.
Screen Shot 2015-06-09 at 1.53.54 am
  • Apps can plug in to Safari as extensions and block content. This hints at the possibility of ad blockers for Safari. Additionally, apps can also populate content in Safari’s Shared Links section.
  • Developers can use SFSafariViewController, which has shared cookies, auto fill and other features from Safari. So web views in your favorite apps carry over your authentication, and autofill from Safari.
  • UIPickerView can be resized to any size. No more ugly transform hacks.
  • iOS apps can show a text field in notifications, which was previously restricted to Messages. This will bring quick reply to WhatsApp, Messenger and other third party apps.
  • Contacts can be finally accessed via an object oriented API, as opposed to the earlier C API.
  • Calling API methods not available on minimum deployment target causes a compile time error. There’s a new available condition to conditionally execute code and avoid crashes for using new APIs. This should result in fewer crashes, especially on older iOS versions:
Screen Shot 2015-06-09 at 2.34.35 am
  • UICollectionView got a lot of new methods to support interactively moving items.
  • There’s a new UIFieldBehavior in UIKit Dynamics to simulate fields.
  • App Thinning: Devices won’t download assets of all sizes, only 1x, 2x or 3x depending on its traits, reducing the app size. Additionally, devices will only download the app binary they need, as opposed to downloading both the 64-bit and 32-bit versions of the executable.

Some interesting links:

Cross posted from iOS Dev Tips.

Like this post? Share it!