このページの本文へ

Swift Playgroundsで学ぶiOSプログラミング第15回

ライブラリを利用することでプログラムの幅が広がる

ユーザーインターフェースを通して対話する

2016年11月21日 17時00分更新

文● 柴田文彦 編集●吉田ヒロ

  • この記事をはてなブックマークに追加
  • 本文印刷

 iPad版のSwift Playgroundsを使い始めてから前回までは、主に「Blank」のテンプレートを選んで作った、文字通り白紙のプレイグラウンドを使ってきました。これはプログラムを打ち込む場所が白紙なだけでなく、実行環境としても、純粋な言語の機能だけを備えた、ほとんど「素(す)」のSwiftを使っていることになります。プログラミング言語としてのSwiftを学ぶだけなら、これでもなんとかなるかもしれません。しかし、それだけではユーザーからの入力を受け取ることはおろか、画面に何かを表示することすら満足にできません。それでは「アプリケーション」と呼べるようなプログラムを書くのは非常に困難です。

 もちろん、同じようなことはどんなプログラミング言語にも言えます。純粋な言語の機能に加え、ユーザーとやり取りするさまざまな入出力機能がそろって、初めてアプリが書ける環境が実現するのです。Swift Playgroundsでも、(頑張れば)基本的にiOSのほとんどすべての機能が利用できるので、一般のiOS(iPad用)アプリと同等のプログラムも作れます。しかし、そこまでの道のりはかなり長いのです。あせらず一歩ずつ進みましょう。

「Answer」テンプレートを利用する

 今回は、ユーザーとやり取りできるアプリとしての最小限の機能の実現を目指します。それは、ユーザーから何らかの入力を受け取って、指示に従って処理し、その結果を出力するというものです。それだけも、Swift単体では実現できません。これを自力で実現するには、一般的なiOSのアプリと同様に、iOSが提供する「UIKit」というフレームワークを使うのが最も基本的な方法です。しかし、そのような正攻法では多くの手順が必要となります。そこで、とりあえずユーザーとの簡単なやり取りを実現するためのライブラリを利用することにします。

 そんなライブラリがどこにあるのかと疑問に思われるでしょう。たしかにライブラリ単体で用意されているものは、今のところ見当たりません。しかし、Swift Playgroundsで新たなプレイグラウンドを作成する際に選択可能なテンプレートの中で、これまで使ってきた「Blank」以外の3つは、そのようなライブラリをあらかじめ含んでいるのです。今回は、その中の「Answers」を利用します。

今回は「Answers」のテンプレートを使ってプレイグラウンドを作成します。あらかじめユーザーと対話するためのライブラリを含んでいます

 このテンプレートから作成できるプレイグラウンドは、2つのページを含んでいます。最初のページは「Text」で、あらかじめ3行のプログラムが入力されています。

「Answers」の1ページめの「Text」には、名前を聞いてくるのでキー入力すると、「Hi 」の後にその名前を付けて表示するプログラムがあらかじめ入力されています

 まず、show()ファンクションを使って「What is your name?」と表示し、「Name」という枠を表示して名前の入力を促します。そのあと、入力された名前を「Hi 」の後に付けて表示するというものです。

 2ページ目は「Types」で、最初のページよりも多くのプログラムを含んでいますが、複雑さは変わりません。内容は、誕生日の年月日を入力させるもの、好きな数字を入力させるもの、そして好きな色を選ばせるものの3つです。

「Answers」の2ページめの「Types」に入力されているプログラムは、誕生日を入力させるもの、好きな数字を入力させるもの、そして好きな色を選ばせるものの3種類です

この連載の記事

週間ランキングTOP5

ASCII倶楽部会員によく見られてる記事はコレだ!

ASCII倶楽部の新着記事

会員専用動画の紹介も!