Release Notes

Swift Playgrounds 3.0

New in Swift Playgrounds 3.0

  • Playground Books can now contain directories of Swift code that can be imported for use by any page in that book.
  • Files in ./Contents/UserModules/ are editable by users, using the new source editor tabs.
  • In addition, the modules in a book’s Modules directory .playgroundbook/Contents/Modules can be imported by any page in the book, but can’t be viewed or edited in the app.

Note: Swift Playgrounds 3.0 uses Swift 5 (swiftlang-1001.0.69.5). Code written using other versions of Swift may not work in UserModuleExample.playgroundbook.

Known Issues in Swift Playgrounds 3.0

  • Attempting to delete all of the shared Swift files in a module will result in an error for playgrounds that have been set to “Limited” mode by the author. Closing and reopening the document will fix the issue. (48727765)
  • Not all content may be updated to a supported Swift version. (47831096)
  • Playgrounds which use Swift 3 are no longer supported. Swift 4.2 is still supported. (50259764)

Swift Playgrounds 2.2

What’s New

  • More to Explore lets you browse and download content from your favorite third-party creators, directly within Swift Playgrounds.
  • Swift Playgrounds 2.2 supports the iOS 12 SDK.

Note: Swift Playgrounds 2.2 uses Swift 4.2 (swiftlang-1000.0.37.1). Code written using other versions of Swift may not work in Swift Playgrounds 2.2.

Known Issues

  • Some playgrounds and third-party subscriptions may not yet be compatible with this release.
  • A playground may get stuck after recording a movie. A workaround is to force close Swift Playgrounds from the App Switcher, then relaunch the app and open the playground again.
  • The number keypad pop-over has been removed. The on-screen keyboard designed for Swift will auto-show instead.

Swift Playgrounds 2.1

What’s New

  • What’s Next suggests other playgrounds to try based on your progress so far.
  • Support for macOS content caching to speed downloads in networks with multiple Swift Playgrounds users.
  • Swift Playgrounds 2.1 supports the iOS 11.3 SDK.

Note: Swift Playgrounds 2.1 uses Swift 4.1 (902.0.48). Code written using other versions of Swift may not work in Swift Playgrounds 2.1.

Known Issues

Swift Playgrounds 2.0

What’s New

  • Now you can subscribe to playgrounds from your favorite third-party creators, then browse and download their content directly within Swift Playgrounds.
  • Subscriptions automatically show new playgrounds when available and alert you to updates
  • New robots including IBM’s TJBot and Mekamon are available from the Add Subscriptions button
  • New content gallery shows all playgrounds including third-party subscriptions in a single view
  • Documentation for iOS features and commands is now available from the Help button and the tools menu
  • Locations button lets you open playgrounds from the Files app on your iPad

    Note: Third-party robot playgrounds previously included in the app are now available directly from their respective authors when you browse subscriptions. Playgrounds already downloaded from the Accessories tab using a previous version of Swift Playgrounds continue to be available on your iPad or in the Playgrounds folder in iCloud Drive.

  • Swift Playgrounds 2.0 supports the iOS 11.1 SDK.

    Note: Swift Playgrounds 2.0 uses Swift 4.0.2 (900.0.69.2). Code written using other versions of Swift may not work in Swift Playgrounds 2.0.

For information on creating your own playgrounds and publishing a subscription on the web, please see Playground Book Format Reference.

Known Issues

  • Swift Playgrounds may freeze after heavy use on iOS 11.

    Workaround: Restart the iPad and open Swift Playgrounds

Resolved Issues

  • The “Take Picture” feature no longer produces an empty, white snapshot.

Swift Playgrounds 1.6.1

What’s New

  • Fixes an issue introduced in Swift Playgrounds 1.6 that would prevent some existing playgrounds from running. Learn to Code, the Hour of Code challenge, and most other playgrounds now work as expected. Some of the accessory playgrounds may require that you tap the New Playground button to get the latest version.

Known Issues

  • After updating to a new version of Swift Playgrounds the app may attempt to update your existing playground documents to work seamlessly with this new version. Normally, this happens transparently. For the playground to be updated it must be on the device when the app launches.

    If you have a playground in iCloud, but not on the device, then that playground will not be updated until it is downloaded. A similar situation can arise if you receive an older playground via AirDrop or email. In both cases, these playgrounds will be updated after Swift Playgrounds fully closes and is then re-launched.

    To trigger the update manually, force the Swift Playgrounds app to close and then re-launch it. Swift Playgrounds will then update all the playgrounds you have stored on your iPad. For information on how to force an app to close see the following article:

    In rare cases, you will need to create a new version of the playground using the “New Playground” button. This will retrieve the latest version of the playground, compatible with your version of Swift Playgrounds.

Swift Playgrounds 1.6

What’s New

  • New Augmented Reality challenge uses ARKit to show the familiar Learn to Code characters within the real world.
  • You can now access the iPad camera from your code.
  • Errors in your code are more clearly explained.
  • Your code can take advantage of Swift 4 and the iOS 11 SDK.
  • New languages for the app and the Learn to Code 1 lessons include: Spanish (Spain), Italian, Dutch, Chinese (traditional), Korean, Swedish, Thai, Turkish, and Portuguese (Brazil).

Supported Configurations

  • Swift Playgrounds 1.6 uses Swift 4 (900.0.65), and code written using other versions of Swift may not work in Swift Playgrounds 1.6.
  • ARKit features require an iPad Pro or iPad (5th generation) running iOS 11.

Known Issues

The following AVFoundation APIs are not available:

  • AVCaptureDevice.Format.supportedColorSpaces
  • AVCaptureDevice.supportedFlashModes
  • AVCapturePhotoOutput.availablePhotoPixelFormatTypes
  • AVCapturePhotoOutput.availableRawPhotoPixelFormatTypes
  • AVCapturePhotoSettings.availablePreviewPhotoPixelFormatTypes

Swift Playgrounds 1.5

What’s New

Command robots, pilot drones, and make music with Swift code you write. The new Accessories tab includes immersive playgrounds and starter templates to build your own playgrounds for the following hardware devices:

  • Sphero SPRK+
  • Parrot drones Mambo, Rolling Spider, and Airborne
  • MeeBot by Jimu Robots
  • Dash by Wonder Workshop
  • Skoog musical instrument

Note: Swift Playgrounds 1.5 uses Swift 3.1 (802.0.53). Code written using other versions of Swift may not work in Swift Playgrounds 1.5.

Swift Playgrounds 1.2

What’s New

  • Swift Playgrounds is now localized for Latin American Spanish, French, German, Simplified Chinese, and Japanese.
  • You can now add and remove pages to playgrounds you created from scratch or from templates.
  • Support for Swift 3.1 has been added.

Note: Swift Playgrounds 1.2 uses Swift 3.1 (swiftlang-802.0.46). Code written using other versions of Swift may not work in Swift Playgrounds 1.2.

Known Issues

  • Code completion choices may display poorly if the active keyboard is Chinese or Japanese.

Swift Playgrounds 1.1

What’s New

  • Learn to Code 3 continues the guided learning experience as you help Blu explore the universe
  • Hour of Code challenge gives a Byte-sized introduction to the Learn to Code lessons
  • Step through your code to highlight each line as it is run
  • Learn to Code now includes music and sound effects
  • Notifications for new and updated content

Note: Download new copies of Learn to Code from the Featured page to get the music, sound effects, and line highlighting features.

Known Issues

  • Swift Playgrounds 1.1 uses Swift 3.0.1 (swiftlang-800.0.58.6). Code written using other versions of Swift may not work in Swift Playgrounds 1.1.
  • Do not subclass MTKView and override the draw(_:) method. Instead, use the drawing methods provided by the MTKView delegate.
  • The character picker may not function correctly in Learn to Code playgrounds from prior versions of Swift Playgrounds. To use the character picker, re-download Learn to Code 1 and Learn to Code 2.
  • iOS 10.1 is required to hear music.

Downloads and Support