プログラミングの川

プログラミングなど全く初めての方のために、感覚でとらえられるよう記載させていただきます。
iPhoneアプリを作るためにということでSwiftとXcodeを使用した場合の前提のお話です。
Xcode内で作成したプログラムはちょうど川の流れのように走ります。ちょうど一枚の葉っぱを川の上に落としてどう流れていくかを観察するようなものです。
プログラムを自分の意図するように動かすには川の中流にダムを建設する必要があります。流れてくる葉っぱをせき止めたいか、別の方向に流すか、別の葉っぱに代えて流すかなどの選択をすることがプログラムを扱う上での神髄となります。


実際、iPhoneで単語帳程度のアプリ作成であればこのダムの配置をどのようにするか考えるだけである程度のプログラムを使いこなせるようなります。Xcodeには既にスイッチのパーツであったり、テーブルビューのパーツであったりと単にドラッグ&ドロップでビジュアル的に簡単に追加することのできる部品が多々あり、こういったものを利用すれば素人でもそこそこのものが作れるようになるからです。
それではこのプログラムの川の流れを体感できるXcodeの付属アプリとしてPlaygroundを紹介させていただきます。Xcodeをmac PCにインストール後、File -> New -> Playgroundより起動してみてください。
起動して適当にファイル名(Name)と保存先を決めましたら以下のような画面が表示されるかと思われます。

 


画面左側がコードの入力エリアで右側が出力エリアです。左側のコードの入力エリアではちょうど上から下にプログラムが流れていきます。

 


起動直後では上記のような記述があります。注意が必要な記述は真ん中のimport UIKitと書かれているところです。これはプログラミングを行う上で、フレームワークを読み込むための命令文となります。ちょうど英語文法に関係代名詞のルールを取り込むようなものなのです。(今回の講座では消しても支障はありませんが、アプリ作成の段階では特に重要となります。)この上下の行は、上がコメント文、下が例文ですので別に消しても構いません。
次にこれらの記述の下に以下のように記述してみてください。

 


ではこのプログラミングの流れを感じるために最低覚えなければならないSwift用語を二つ紹介させてください。
一つはvar、もう一つはprint()です。細かい意味は今回は考えなくても結構です。
varに関しては数学でおなじみの変数を定義するためのものと思い浮かべてください。
数学ではX=1, Y=2ならX+Y=3ですよね?
varはプログラム上で初めて出てくる変数の手前に置く習慣があります。だから2回目以降の同じ変数にはつける必要がありません。
数学が得意な方は同じ変数が2回以上出てくるとなると混乱してしまうかもしれませんが、実はvarは変数を上書きして別のものにすることができるのです。var x=1; x=2; x=3と順番に記述した場合、最後に定義されたものが優先され、最終的にx=3となります。
次にprint()の説明です。
Playgroundでは自動で出力結果が右側に表示されますが、Xcodeをアプリ作りのために実際に動かす時にはこの親切な出力画面はなくなります。代わりにDebugエリアというものが下方に配備されるようになります。このprint()は()内の変数をDebugエリアに出力する役割を担います。従って、最終的な変数の確認などに用いると非常に便利です。

 


この二つの機能がわかったところで以下プログラムの流れを確認してみてください。xは最終的に下流という文字が反映されておりますね?(そうそう、変数には数字以外に言葉も入れることができます。)
次にダムをせき止めることを体感してみましょう。Swiftにはプログラムのスクリプトを無効にする//というものが存在します。これは起動直後の第一文にもありましたがコメントアウトと呼ばれるもので//以降の一行の命令文を無効にする役割があります。Xcodeでは緑色で表示されるようになるのでわかりやすいです。もともとプログラム上にメモなどを残したい場合に使われるものです。
この//を下流に配備すると出力結果が中流となりますね?

 


ただ、一つ重要なのは決してプログラムの流れが中流で止まっているというわけではなく、下流での代入命令がスキップされたということになります。プログラムの流れは出力されていることからもprint(x)までしっかいり到達しています。
この証拠に最後に以下の流れを確認してみましょう。今度は中流の流れをスキップします。すると以下のようにxは再び下流という文字が代入されていることがわかりますね?

 


以上でプログラムの流れというものを感覚で覚えられましたでしょうか。ではまた次回に!

2016年12月27日