コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

いそのー、これSwiftの勉強になるらしいぜ。いっしょにやろーぜ

だが僕には「いその」という友人・知人はいない……

はい、おはようございます。僕です。今日も誰も読まないブログを書いております。この呼びかけは誰に向けてのものなのでしょう。それを知った時、あなたは真実を知ることになるであろう……。


というわけでして、子供向け Swift 講座みたいのがあったので早速やってみました。
swiftswitch.org

SwiftSwitchは、ブロックプログラミングによりSwift言語を学ぶことができるツールです。
通常のアプリ開発では専用の開発環境を要しますが、SwiftSwitchはブラウザを利用することでOSに関わらず利用することができます。そのため、WindowsPC、MacWindowsタブレットAndroidタブレットiPadで利用することが可能です。

スモールステップの積み上げ型の学習となっており、子ども自身が自分のペースでじっくりと学べます。7ステージ各10レベルあり、各ステージでは学ぶ項目が異なります。ブロックをドラッグ&ドロップして組み合わせることでプログラミングし、ステージごとに決められたアイテムを集めて解いて行きます。
(※ Swift言語とは、Apple社のiPhoneiPadMacApple Watch・AppleTV向けアプリ開発に世界中のプログラマーが利用しているプログラミング言語です。)

概要はこんなんだそうです。

やってみた


f:id:andron:20180524212650p:plain

f:id:andron:20180524212523p:plainf:id:andron:20180524212524p:plain
こんな感じのブロックプログラミングを解いていきます。正解コードに Swift 感をまったく感じないけどどうなんでしょうね。やっていけば分かるのかなと思って全部解いてみました。


これをな……。
f:id:andron:20180524212159p:plain


こうじゃ……
f:id:andron:20180524212232p:plain

とりあえず、最後までやってみた。衝撃のラストだった……。


やった感想としては、配列や変数がつかえないとこんな感じに収まるのかなって印象。それでも、パズル感はあるからそこそこ苦戦はしました。内容はこんな感じです。

1. コマンドを学ぶ
このブロックプログラミングの基本文法、「進む」「曲がる」などについて使い方が学べます。Swift って Python で言うタートルグラフィックス的なものがあったかはよくわかりませんが、Swiftではない固有の描き方っぽい上の画像みたいなコマンドが覚えることから始まります。


2. ファンクションを学ぶ
2ステージ目からファンクションについて学ぶことになります。

func ファンクション(){
    処理
}
ファンクション()

繰り返すこと多いから処理が楽になるはずなんだけど引数はつけられないので、あまり便利になる実感を感じない。


3. 繰り返し(for文)を学ぶ
For文の問題です。

for i in 1.. n {
    処理
}

いわゆるfor-inループの描き方が学べます。ブロック書いていると文法まったく意識しないけどね……。


4. 条件分岐(if文)を学ぶ
条件分岐問題です。

if isOnなんとか(){
  処理
}

ifは()に条件式不要ということでisOn~のような名前で処理を判別していく仕様となっています。リーダブルなコードを書くための素養が身につくかもしれない?


5. 論理演算子(and, or, not)を学ぶ
論理演算子の問題です。

演算子
&& 論理AND
|| 論理OR
! 論理NOT

NOTがくせもので !isOnなんとか() の形式でよくでてきます。適当にやってると i、! で見間違えやすい。


6. 繰り返し(while文)を学ぶ
繰り返し文です。実行前に処理が終わらないことがわかると無限ループだから見直してねとエラーがでます。トライアンドエラーでやってた僕には個人的難所でした。

while 条件{
  処理
}


7. アルゴリズムを学ぶ
アルゴリズムが学べるってことなんですけど、こちらのチャプターではアルゴリズムというよりデバッグっぽいことしかやっていない気がする……。



といった感じの内容でした。ベースがブロックプログラミングなんで意識して正解コード確認しないと Swift 力付かなそうな気がした。ただSwiftの学習サイトは珍しいのでやってみて損はないのでは…?