Swift Playgrounds

Swift Playgrounds(プレイグラウンドとも呼ばれる)は、Appleが開発したSwiftの開発環境。

Playgroundsの最初のmacOSバージョンは、2014年6月2日のWWDC 2014でXcodeの一部として発表された。2016年9月、Swiftを習い始める若い学生をターゲットにしたSwift PlaygroundsのiPad版がローンチされた。

 概要 
Playgroundsは、コードをリアルタイムでレンダリングするテスト環境を提供する。これには、ユーザーの入力したコードが実行された際にその結果を評価付きで表示し、迅速なフィードバックを提供する機能が含まれる。このタイプの開発環境はREPL (Read–Eval–Print–Loop) と呼ばれることが多く、学習、実験、および高速プロトタイピングに役立つとされる 。Swift Playgroundsでは、AppleによってSwiftのチュートリアルや、REPLの利点を説明するガイド付きツアーが用意されている 。

Swift PlaygroundsのiPad版は、2016年6月13日のWWDC 2016内で、Swiftを学ぶ人のためのiPad専用アプリとして発表された。開発者向けのバージョンが同日にリリースされ、翌月にはパブリックベータも公開された。アプリでは学生向けの教育ツールとして、タッチディスプレイ用に設計されたインタラクティブ環境(対話型環境)を使用したコーディングのコアコンセプトが紹介された。アプリは2016年9月に(一般ユーザー向けに)リリースされた。Appleは、このアプリを中学生以上に推奨するとするSwift Playgroundsカリキュラムを公開している。

macOS用のSwift Playgroundsのスタンドアロン版は、2020年2月11日にMac App Storeでリリースされた。これはXcodeから完全に切り離されているものとなり、iPadOS版をmacOS用に移植したものとなる。

 特徴 
Swift PlaygroundsのiPad版は、開発環境と教育教材を組み合わせたものとなっている。このアプリでは、各教材を受講前にダウンロードし、以降はオフラインで利用できる。但し、ステージをiCloud Driveに保存する場合には、ネットワーク接続が必要となる。

Swift PlaygroundsのiPad版の初期レッスンでは、Byte、Blu、Hopperの3つのキャラクターが紹介されている。それぞれの課題において、プレイヤーは、いくつかのコードを組み合わせてキャラクターを操作し、定められた目標を達成する事を求められる。ステージが進行するにつれて目標はより困難になり、それらを解決するためにより複雑なアルゴリズムが必要となる。Swift Playgroundsではいくつかのステージをクリアすると、新しいコードが利用できるようになる。Swift Playgroundsの上級レッスンでは、Apple Bluetooth APIやApple Augmented Reality開発プラットフォーム(ARKit)のといった複雑な機能が利用できるようになる。

2018年1月、AppleはSwift Playgroundsにサブスクリプションを導入した。これにより、ユーザーはサードパーティの作成したPlaygroundをプレイでき、コンテンツプロバイダーはPlaygroundを販売できるようになった。

 開発とリリース 
Swift PlaygroundsはAppleのDeveloper Tools部門によって開発された。Swift Programming Languageの発明者であり、Developer Tools Departmentのシニアディレクター兼アーキテクトであるChris Lattnerによると、Playgroundsは「ブレット・ビクターのアイディア、ライト・テーブル、その他多くの対話型システムから大きな影響を受けている」(原文意訳)という。Swift Playgroundsは、2014年6月2日のWWDC 2014でXcode 6の一部として発表され、同年9月にリリースされた。

Swift PlaygroundsのiPad版は2016年9月13日にリリースされた。Chris Lattnerは構想、設計、実装、反復など、Swift PlaygroundsのiPad版を牽引した数少ない中核的人物の1人でもあった。Appleはリリースと同時に、iBook Storeで同アプリケーションの操作方法や使用方法をユーザーに教えるガイドブックを公開した。この発表は、公立学校にプログラミング教育の実施を求めるシリコンバレーの大規模なキャンペーンと時を同じくして行われた。Appleは、子供たちがプログラミングを学ぶのを助けるためにコンピュータサイエンスのカリキュラムを提供する、「Everyone Can Code」プログラムを発表した 。Swift Playgroundsはこのプログラムに含まれており、Appleは教師がSwiftを教えるための詳細なガイドを提供している。さらに、AppleはSwiftソフトウェア開発を教えるための一年間のカリキュラム「Swiftを使ったアプリ開発」を公開し、その後、学生のコーディングスキルを検証/認証するSwift認定プログラムを導入した。

2017年1月、AppleはRNIB(王立盲人研究所)と提携し、Swift Playgroundsの点字バージョンを提供した。2018年、Appleは米国のろう学校全体に「Everyone Can Code」プログラムを拡大すると発表した。

2020年2月、macOS Catalina向けにSwift Playgroundsのスタンドアロン版がローンチされた。このバージョンはXcodeから切り離されており、iPadバージョンのSwift Playgroundsの移植となっている。

2021年6月7日、WWDC21基調講演において、iPadOS 15でiPhoneとiPad用のアプリケーションを構築しApp Storeへ、iPad上から直接リリースできるようになることが発表された。2021年12月15日からiPadOS 15.2以降を対象にその機能を搭載したSwift Playgrounds 4が配付されている。

 バージョン履歴 
 日付  バージョン  説明文 2016年6月  AppleがiPad用のSwift Playgroundsを発表。同時にApple開発者向けのバージョンのリリース。 2016年7月  公開ベータ版のリリース。 2016年9月  1.0 最初のバージョンのリリース。 2016年11月  1.1 Learn to Codeの改良など 2017年3月  1.2 簡体字中国語、日本語、フランス語、ドイツ語、中南米スペイン語のサポート。MapKitフレームワークのサポート 2017年6月  1.5 外部ハードウェアの操作をサポート。 2017年9月  1.6 ARKit（拡張現実）のサポート。Swift 4のサポート。カメラへのアクセスのサポート。 2018年1月  2.0 サードパーティのPlaygroundサブスクリプションが利用可能に。 2019年5月  3.0 Swift 5のサポート。Swiftファイルの共有のサポート。 2019年10月  3.1 Swift 5.1のサポート。SwiftUIフレームワークを含む。 2020年2月11日  3.2 macOS Catalina用の初リリース 2020年4月2日  3.3 iPadOSのカーソルサポート 2020年7月9日  3.3.1 安定性向上、不具合修正 2020年11月16日  3.4 2021年3月9日  3.4.1 ローカリゼーションとパフォーマンスの改善 2021年12月15日  4.0 iPadOS 15.2でiPhoneとiPad用のアプリケーションを構築しApp Storeへ、iPad上から直接リリースできるようになる 2022年5月17日  4.1 macOS 12.4以降でSwiftUIでのMacアプリケーション開発、 Swiftパッケージに対応、Xcodeへの移動/戻す 2022年10月26日  4.2 コードエディタの機能強化 2022年12月5日  4.2.1 エラーメッセージが表示されたままになる問題の修正 2023年4月3日  4.3 macOS 13.3 SDK, iPadOS 16.4 SDK、ノルウェー語とベトナム語に対応 2023年5月31日  4.3.1 SwiftUIのプレビューが読み込まれない問題の修正2023年10月23日4.4Swift 5.9, macOS 14 SDK対応2023年12月13日4.4.1Swift 5.9.2, macOS 14.2SDK対応

 評価 
リリースと同時に、Swift PlaygroundsのiPad版は、約100カ国の無料iPad教育アプリのランキングで第一位になった。同アプリは、ユーザー(App Storeでの評価は5段階のうちおよそ4となっている)や報道機関から概ね好意的な評価を受けた 。また、このアプリはSwiftの学習を若い学生でも行いやすくするのに加え、Swiftに過度に焦点を当てているのではなく、良いコーディング方法を教えることに焦点を当てているとされ、称賛された 。Common Sense Mediaは、Swift Playgroundsのスコアを5段階中の5としている。

 脚注 

 外部リンク 
  - 公式開発者向けサイト

Category:フリーウェア
Category:IOSのソフトウェア
Category:MacOSのソフトウェア
Category:統合開発環境
Category:教育ソフトウェア
Category:Appleのソフトウェア