iPad版Swift Playgroundsはダウンロードしないと損

iPad版Swift Playgroundsはダウンロードしないと損

  • 週刊アスキー
  • 更新日:2016/10/18

早いもので、iOS 10が登場してから約1ヵ月が経ちました。iOS 10とともに一般公開され、App Storeから無料ダウロード可能になったSwiftプログラミング学習アプリ「Swift Playgrounds」は、もう試されたでしょうか。プログラミングに興味がある、これからプログラミングを学びたい、プログラミング経験はあるがSwiftとはどういう言語か知りたい、そのうちiOSやMacのアプリ開発にも挑戦したい、といった人は、迷わずこのSwift Playgroundsを試してみましょう。

ちょっと残念なのは、利用できるデバイス、条件がやや厳しいということです。まずiOSは10以上でなければ動きません。またiPad専用となっていて、iPhoneでは動きません。そのiPadも、第4世代以降の機種(iPad Air以降、iPad mini 2以降、iPad Proシリーズ)となっています。とはいえ、これはSwift Playgroundsの制限ではなく、iOS 10がインストールする可能なiPadという意味です。そうした比較的厳しい条件を考えても、動かす価値は十分にあります。このためだけにiPadを新調しても十分にもとがとれると感じる人もいるでしょう。Swift Playgroundsは、久々のiOSのキラーアプリと言っても過言ではない魅力があります。

前置きが長くなりましたが、もう1つだけ付け加えます。Swift Playgroundsを動かすのにiOS 10が必要なのは、このアプリで動かすSwiftのバージョンが3.0になっているからです。Swiftはまだ歴史の浅い言語ということもあって、バージョンの更新とともに仕様の変更が大きくなっています。いよいよ完成の域に達したと思われる3.0だけに、これまでと比べて変更になった部分が少なくないのです。これからSwiftを学習するなら、言うまでもなく最初から3.0で始めるべきです。というわけで、Swift 3.0を採用したiOS 10は、Swift Playgroundsのためというよりは、Swift学習のために必須なのです。

Swift Playgroundsの始め方

Swift Playgroundsは、以前からあったMac(macOS)のXcode版のPlaygroundを元にして、それをiOSに移植したものと考えることができます。いちばん基本的な動作は、白紙のソースコードエディタにプログラムを打ち込み、その場で走らせて結果を確認することです。しかし、iPad版のSwift Playgroundsには、特に初心者がプログラミングの学習を始めることを意識して、最初から大きなボーナスが用意されています。それはインタラクティブなプログラミング学習教材と言うべき、いくつかの「ブック」が用意されているということです。このブックは、オンラインで入手し、Swift Playgroundsにダウンロードして動かすことができるようになっています。

このあたりの仕組みは、初心者にはちょっとわかりにくいかもしれません。ひととおり確認してみましょう。まずSwift Playgroundsの「Featured」と呼ばれるメニュー画面は、一種のApp Storeのようなものと考えられます。この中に見えるのはAppleのサーバーに用意されているブックです。この場で動かすことはできません。どれかをタップして選ぶと、そのブックに関する簡単な説明が表示されるので「GET」ボタンをタップして自分のiPadにダウンロードします。

No image

Swift Playgroundsのメイン画面の1つ「Featured」からは、Appleの提供する「ブック」をダウンロードできます

ダウンロードしたブックは、「My Playgrounds」というもう1つのメニュー画面に表示されます。FeaturedとMy Playgroundsは、Swift Playgroundsのメイン画面の底辺のタブボタンで切り替えます。

No image

もう1つの画面「My Playgrounds」には、Featuredからダウンロードしたブックや、自分で作ったPlaygroundが並びます

「My Playgrounds」中には、「Featured」からダウンロードしたブックだけでなく、自分でiPad上で作ったPlaygroundが並んでいます。ここで目的のブック、またはPlaygroundをタップすることで、ようやくそれを開いて「遊ぶ」ことができるようになります。

まずは「LEARN TO CODE」から試してみる

現在のところFeaturedには、「LEARN TO CODE 1/Fundamentals of Swift」と「LEARN TO CODE 2/Beyond the Basics」という2つの大きな枠のブックと、その下の「Challenges」というエリアに、6つの小さめの枠のブックが並んでいます。実は、iOS 10と同時にSwift Playgroundsが登場した際には、小さめのブックは4つだけでした。あとから「Running Maze」と「Rock, Paper, Scissors」の2つが追加されたのです。

これらのブックのうち、上の大きな2つは、本当の初心者からのSwiftのプログラミングの入門用となっています。下のChallengesのほうは、その2つのコースをやり終えた人、あるいは最初からある程度のプログラミングの経験がある人向きと考えられます。少なくとも、このChallengesのほうには、今後も、おそらく不定期でブックが追加されていくものと期待できます。ただし、今のところここはAppleから一方的に供給されるブックが並ぶだけで、だれでもここにアップロードできるというわけではありません。将来は、App Storeや、iBooksのアプリ内のストアのように、サードパーティーがSwift Playgroundsブックを公開したり、学習者同士が課題を交換し合ったりする場を作ってほしいところです。

いずれにしても、初心者はまずSwiftの基礎が学べるLEARN TO CODE 1から始めるのがいいでしょう。これと、その続編の同2は、非常によくできた、かなり手の込んだブックになっています。学習者は、非常に簡単なSwiftのプログラムを書くだけで、ゲームのような3D空間内でキャラクターを動かすことができます。これはプログラム入力中も常に動いているライブなアニメーションになっていて、早くキャラクターを動かしてやろうという意欲も刺激される仕組みになっています。

基本的にSwift Playgroundsの画面は左右に分割されています。簡単に言えば、左側はプログラムを書く領域、右側が実行結果を表示する領域です。LEARN TO CODE 1などのブックでは、左側の領域を、解説の文章や課題の指示、あるいは穴埋めのプログラムを表示しておくためにも使っています。ユーザーは赤い字で「Tap to enter code」と書いてある部分をタップしてプログラムの入力を始めます。

No image

提供されているブックの1つ「LEARN TO CODE 1」を開いてプログラミングを始めるには「Tap to enter code」という部分をタップします

このとき、画面をよく見ると、底辺のあたりにツールバーのようなものが現れます。その真ん中あたりには、「collectGem()」と「moveForward()」という2つのボタンが配置されています。このボタンは、この局面で有効な2つのSwiftの命令(ファンクションの呼び出し)を表しています。タップすることで、その命令をプログラムとして入力できます。

No image

プログラムの入力には、画面の底辺に表示されるツールバーのボタンを利用できます

collectGem()は「宝石を取る」、moveForward()は「前に進め」という命令です。この最初の課題は、右の画面の迷路のようなブロックの上にいるキャラクターを動かして、先の方にある赤い宝石を取ることです。この場合、moveForward()を3回繰り返してキャラクターを3ブロック分前に動かし、その後にcollectGem()を実行して宝石を取るようにプログラムするのが正解です。プログラムを入力したら、画面の右側の下の方にある赤い文字の「▶ Run My Code︎」というボタンをタップすればプログラムが走り、キャラクターが動いて宝石を取り、課題が解決します。

No image

前に進むコマンド(moveForward())と宝石を取るコマンド(collectGem())を組み合わせて課題を解決しました

課題が進んでいくと、ツールバーに配置されているコマンドだけでは足りなくなり、キーボードで1文字ずつタイプして任意のプログラムを入力する必要も出てきます。その場合は右下角にある「∧」のようなボタンをクリックしてキーボードを表示します。このキーボードの上辺にもツールバーがあるので、ボタンと文字キーを併用して、効率的にプログラムを入力することができます。

No image

画面の右下角にある「∧」ボタンをタップしてキーボードを表示することもできます

なお、Swiftのプログラムは基本的に英文字で書くことになるので、iPadの「設定」で英語キーボードを表示できるようにしておくことをお勧めします。日本語のキーボードでも英字モードに切り替えて入力できますが、面倒な操作になりがちです。欲を言えば、Swiftのプログラミングに適した専用のソフトキーボードがあるともっと便利でしょう。これはサードパーティーに期待できるかもしれません。 Swift Playgroundsのブックは、中身が複数のチャプターに分かれています。そしてチャプターは複数のページから構成されます。ふだん見ているのは1つのページです。そのタイトルは、左半分のコード領域の最上部に書かれています。その左右にある「<」と「>」のボタンで、左右にページをめくれます。また、「≣」ボタンをタップすると、目次のようなメニューを表示します。この中から目的のチャプター/ページを選んで直接開くことができます

No image

画面の左上角近くにある「≣」のようなボタンをタップすると、ブックの目次を開き、目的のページに直接ジャンプできます

LEARN TO CODE 1の場合、チャプターは「Commands」「Function」「For Loops」「Conditional Code」「Logical Operators」「While Loop」「Algorithms」の7つに分かれています。それぞれのページ数も多く、全部で54ページもあります。これによって、コマンド(ファンクション)の呼び方、ファンクションの定義のしかた、ループ、条件分岐、論理演算、簡単なアルゴリズムなどが学べます。

続編のLEARN TO CODE 2では、チャプターは「Variables」「Types」「Initialization」「Parameters」「World Building」「Array」の6つとなっていて、ページ数は全部で51です。こちらは、変数、クラス、メソッドの引数、配列などについて学べます。

いずれもプログラミングの基礎的で重要なトピックを扱っていますが、全体を通して基礎の領域を踏み出すものではなく、この2つのコースをきっちりと学んだからといって、いきなりiOSやMacのアプリが作れるようになるかといえば、残念ながらそんなことはありません。しかし、基礎は重要なので、Swift Playgroundsの位置付けを考えれば、これは妥当な構成と言えるでしょう。

ただし、基礎の割には(だからこそですが)分量が多く、また基本的に迷路状の3Dゲーム盤面と、途中からバリエーションも出てくるとはいえ、いくつかのキャラクターの組み合わせという構成は最後まで変わりません。必然的に動きの種類も限られているので、途中で飽きてしまう危険があります。全部をやり遂げるにはかなりの根気がいりそうです。また、今のところ大量のページの説明文はすべて英語のため、日本人、特に低年齢の学習者の立場からすれば、早く日本語にローカライズしてほしいところです。

次に「チャレンジ」で腕を磨く

Featuredにあるブックのうち、Challengesのエリアにあるものは、順を追って学ぶプログラミングコースというよりも、サンプルプログラム的な性格が強いものとなっています。とは言え、与えられたプログラムを読んでみたり、動かしてみるだけでなく、学習者がプログラムの一部を変更して、その結果がどのような動きになるかをその場ですぐに確かめられます。これこそがSwift Playgroundsの強みです。

例えば、「Blink」は、昔からよくある「ライフゲーム」の一種です。ライフゲームとは、周囲に他の生物がいるかどうか、といった単純な条件によって、生物の繁殖、絶滅をシミュレーションするものです。このブックでは、その生物がどのような条件で繁殖するか、という基本的な部分のプログラムを修正して、結果の違いを吟味できるようになっています。

No image

Challengesシリーズの1つ「Blink」は、古典的な「ライフゲーム」のSwift Playgrounds版です

考えてみればすぐにわかることですが、LEARN TO CODEシリーズよりもかなり簡素な画面になっているとはいえ、iPadの画面の右側を占めるグラフィックが、それほど単純で短いプログラムで実現できるはずはありません。実はブックには、通常は見えないところに大量のプログラムが隠れているのです。LEARN TO CODEが常に表示している3Dのゲーム風の盤面も、もちろんそうしたユーザーからは直接見えないプログラムによって実現されています。

隠れたプログラムを見る方法がないわけではありません。左側のコード領域の上辺の右端にある「…」ボタンをタップしてみましょう。「Tools」というメニューが現れます。そのいちばん下の「Advanced」をタップすると「View Auxiliary File」つまり外部ファイルを見るという項目があるので、それをタップします。

No image

画面の上辺の「…」ボタンをタップすると、「Tools」メニューが表示されます

すると、ブックのパッケージの中身を見るブラウザーのような画面に切り替わります。これはmacOSで、アプリのアイコンなどを右ボタンクリックして「パッケージの内容を表示」を選ぶようなものだと思ってください。この中には、ブックそのものの内容だけでなく、そこから利用する多くのSwiftソースコードが含まれています。

No image

ブックに含まれている通常は見えない裏方のプログラムも見ることができます。ただし編集はできません

それらのプログラムを読み込めば、かなりの勉強になることは間違いありません。しかしそれはSwift Playgroundsが、利用者として想定するユーザー(学習者)に期待していることではありません。その内容は、iOSやmacOSのアプリ開発に匹敵するレベル、部分的にはそれ以上に高度な内容を含んでいます。Swift Playgroundsの期待ユーザーレベルと、その外部コードのギャップを埋めるのは容易なことではないでしょう。それをSwift Playgroundsのブックによる学習で埋めることは不可能だとは言わないまでも、かなり困難な気がします。

最後は白紙から完全オリジナルに挑戦

Swift Playgroundsでは、既存のブックを開いて学習するだけでなく、自分で白紙のPlaygroundにプログラムを打ち込んで学習していくことも可能です。そのためには、My Playgroundsの画面にある白紙に大きな「+」が描かれたサムネールをタップします。すると「Choose a Template」というダイアログが開きます。ここには「Answers」「Blank」「Graphing」「Shapes」という4種類のテンプレートが用意されています。

No image

独自のPlaygroundを作成する場合には4種類のテンプレートから1つを選ぶことができます

このうち「Blank」以外の3種類は、既存のブックと同様に、あらかじめなんらかの外部プログラムを含んだものです。「Answer」は、テキストによる簡単な対話を実現するもの、「Graphing」は数字をグラフ表示するもの、「Shapes」は簡単なグラフィックのプログラミング方法を示すものとなっています。LEARN TO CODEやChallengesのシリーズよりはだいぶ単純なので、どのような外部コードが含まれ、それがどのような働きをしているのか探求するには、まずこのあたりから始めるといいかもしれません。

選択可能なテンプレートの中で本当の白紙は「Blank」だけです。これは、Xcode版のPlaygroundを開いた直後の状態に近いと言えるでしょう。最初は本当の白紙で何もプログラムが入力されていないだけでなく、既存のブックや他のテンプレートにあった右側の結果表示の領域も用意されていません。

No image

まったくの白紙のPlaygroundには、右下の「Run My Code」というボタンが配置されているだけです。プログラムを入力してから、これをタップします

この状態からある程度意味のあるプログラムを動かすには、最低限「UIKit」をインポートしましょう。これで三角関数などが使えるようになるので、適当なループを構成すれば、Swift Playgroundsが勝手にグラフ表示してくれます。このあたりの使い勝手はXcode版とほぼ同じです。

No image

白紙のPlaygroundに、ごく簡単なプログラムを入力して走らせてみました

あともう1歩進んで、右側に結果表示領域を開いて、そこにグラフィックの1つも描いてみたいものです。そのためにはさらに「PlaygroundSupport」というモジュールをインポートします。これでiOSのシェイプやパスを使って、グラフィックを表示できるようになります。

No image

白紙から始めても、少しのプログラムを書けば、右側の領域にグラフィックを描くことができます

ASCII倶楽部でSwift Playgrounds連載がスタート

Swift Playgroundsのユーザーとしては、プログラミングの学習者として学ぶという一般的な立場だけでなく、学習者にブックという教材を提供する教育者側に立つこともできます。このブックのフォーマットはAppleのウェブサイトで公開されています。作成したオリジナルのブックは、AirDrop機能を使ってMacからiPadに転送したり、iPadで受信可能なメールアドレスに添付ファイルとして送信し、iPadのメールソフトを使ってSwift Playgroundsで開くことができます。すでに述べたように、現在はユーザーが直接ダウンロードできるブックの公開場所が用意されていませんが、今後はそうした環境も充実させて欲しいところです。

iPad上で動くプログラミング学習ソフトにもいろいろなものがありますが、Swift Playgroundsの最大の特長の1つは、学習者が書くプログラムは、すべて生粋の、そして最新のSwiftである点でしょう。これは、MITで開発された「Scratch」系のように、プログラム機能をブロックで表すものとの最大の違いです。機能ブロックを使えば、プログラミングのロジックを学ぶことは簡単にできるでしょう。しかし、それとiOSなどのアプリ開発に使うプログラミング言語との間には大きなギャップがあります。機能ブロックで一通り学んでも、そこからプログラミング言語に移行するために、また一苦労することが避けられません。Swift Playgroundsには、その部分のギャップはありません。それぞれ一長一短はあるものの、少なくともその点では、Swift Playgroundsの方がゴールに近い気がします。

いろいろな角度から駆け足でSwift Playgroundsについて見てきました。ゲームで遊ぶ感覚でプログラミングの基礎を学ぶところから始まって、サンプルプログラムをいじってアプリの仕組みを理解し、独自のプログラム作りにも挑戦できる。さらには、学習用のオリジナル教材を製作するところまでの材料が用意されている。Swift Playgroundsは、極めて奥の深いプログラミング学習ソフトと言えるでしょう。興味を持った人は、さっそく今日から始めてください。

なお、ASCI倶楽部で連載中の「Swift Playgroundsで学ぶiOSプログラミング」では、これまでXcode版Playgroundを使って準備を進めきましたが、次回からいよいよSwift Playgroundsを使った学習に入ります。そちらもぜひご利用ください。

■関連サイト

Swift Playgrounds

Swift Playgrounds(App Storeダウンロード)

この記事をお届けした
グノシーの最新ニュース情報を、

でも最新ニュース情報をお届けしています。

Appleカテゴリの人気記事

グノシーで話題の記事を読もう!
変化なしというサプライズ?2017年のiPhoneは「iPhone7s」との噂
これが本当だったらガックリってレベルじゃない...来年発売のiPhone、見た目の変化ナシか
iOS10.2ベータ7とパブリックベータ7が公開!正式版は来週公開か
ボロボロのiPhone6sをピカピカの鏡面仕上げにしてしまう方法が話題に
iPhone 6sに電源が突然落ちる不具合 バッテリー無償交換
  • このエントリーをはてなブックマークに追加