Release Notes

Swift Playgrounds 4.0

What’s New (iOS)

  • Build iPhone and iPad apps with SwiftUI right on your iPad (requires iPadOS 15.2 or later)
  • App Store Connect integration lets you upload your finished app to the App Store
  • App Preview shows live updates as you make changes to your app
  • Full-screen preview lets you see your app edge-to-edge
  • Smart, inline code suggestions help you write code quickly and accurately
  • App Projects make it easy to move projects to Xcode and back
  • Project-wide search finds results across multiple files
  • Snippets Library provides hundreds of SwiftUI controls, symbols, and colors
  • Swift Package support lets you include publicly-available code to enhance your apps

What’s New (macOS)

  • Support for Swift 5.5

Swift Playgrounds 3.4

What’s New

  • The console area shows the output of print() statements.
  • Code suggestions appear much faster.
  • Export as a new playground to create custom lessons with a new reset point.

Swift Playgrounds 3.3

What’s New

  • Works with the new cursor support in iPadOS.
  • Updated Brick Breaker challenge has all new graphics and is more customizable.
  • Performance improvements and additional bug fixes.

Resolved Issues

  • Learn to Code no longer hangs or crashes when connected to a Bluetooth output device. (58015786)
  • Fixed an issue that could cause excess CPU use on macOS after opening a number of playgrounds in a short period of time or leaving the Live View sitting idle in some playgrounds. (59395922)
  • Fixed an issue that could result in some playgrounds being flagged as malicious and prevent them from running on macOS 10.15.4. (59689857)

Swift Playgrounds 3.2 for Mac

What’s New

  • Swift Playgrounds is now available for macOS Catalina in the Mac App Store.
  • Use the same playground files on macOS Catalina and iPadOS.

Unique Features for Mac

  • Code suggestion area also displays help for many available commands.
  • Sidebar shows a complete list of all pages and additional Swift files in a playground.
  • Touch Bar puts commands such as Run My Code at your fingertips.
  • Menu bar organizes available commands with keyboard shortcuts for common actions.

Known Issues

  • Live View elements are not accessible to VoiceOver if VoiceOver is enabled after opening the document. (56687963)
    • Workaround: Close the document, make sure VoiceOver is enabled, and reopen the document.
  • Learn to Code 1 and 2 may crash when connected to a Bluetooth output (58015786).
    • Workaround: Turn off “Sound effects” on the Audio button in the live view, or do not use Bluetooth.
  • Swift Playgrounds 3.2 uses Swift 5.1 (swiftlang-1100.0.270.13). Code written using other versions of Swift may not work in Swift Playgrounds 3.2.

Swift Playgrounds 3.2 for iPad

What’s New

  • Code suggestions appear faster.

Swift Playgrounds 3.1

What’s New

  • Use the new Dark Mode coding theme when running Dark Mode in iPadOS 13.
  • In Learn to Code, help Byte and friends explore their world at night when using Dark Mode in iPadOS 13.
  • Build with the SwiftUI framework in new playgrounds you create.
  • Includes Swift 5.1 and the iOS SDK.

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

Known Issues

  • Subscribing to a feed through universal link hides the “Edit” and “Done” buttons in the document store. (55053548)

Workaround: Download a piece of content to continue using the app.

Swift Playgrounds 3.0

What’s New

  • 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

  • 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 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