2016年9月9日金曜日

『実践としてのプログラミング講座』のレシピ8をちょっと改造

実践としてのプログラミング講座』という本を買いました。
Kindle向けではないですが、スマホで読んでいます。

月2回程度のボランティアとはいえ私もプログラミングを教えている身なので、Chapter 4の冒頭に書かれていたような「タブとインデントをおろそかにする」のはよく分かります。

さて、レシピ8に載っていた「爆弾回しゲーム」を次回の教材にしようとして微調整しました。

ちょっとずつ増築していこうと思っているネタを少し盛っただけですが、ここにあります。



改造したのはこのあたりです。
  • 「ばくはつ」の音の前に、ばくだんが大きくなるたびに「ポヨン」を鳴らす
  • 時々「少し小さくなる」ことで単調さを減らす
  • 爆発しっぱなしもナンなので、爆発してしばらくしたら「ゲームオーバー」で終わらせる
写経では何も学ばない風なので、おそらく次回も「小さなものからコツコツと足していく」パターンで進めようと思います。

  1. 先に爆発を作る(「ひとつだけでる」を入れて動きを見る)
  2. 爆弾の「ひとつだけでる」を消して、大きくなる爆弾を作る
  3. 爆発をクローンさせて、いったん完成。
  4. 微調整1:「ポヨン」を入れる
  5. 微調整2:確立で大きくなるようにする
  6. 微調整3:確立の「それ以外」で少し小さくなるようにする
  7. 爆発を4秒後に消してゲームオーバーとする
本当は赤い導線 or 青い導線みたいなゲームになると良いのだけど、それはさらに次の改造にしたいと思います。

ちなみに『「時間が進んだ」とき』というのは、初心者にはなじみのない概念なのかなと良く思います。頭の中で「あとで」「しばらくしたら」みたいなところまで分かっていても、このブロックにはたどり着かないことが多いです。

2016年9月8日木曜日

Xamarinを使うならMacはほぼ必須になるし、おそらくMSDN付きのVisual Studioを買うハメになる

Xamarinの入門記事を読むとたいていモヤモヤします。

これなんかも丁寧に書かれていて良いと思うのですが、『Macが必要なのはXamarin.iOSでiOSアプリを開発する場合だけ』とか言っちゃうあたりが引っかかるのです。

Androidアプリだけ開発したいなら素直にAndroid Studioを使う方がラクです。
IDEとしても優秀だし、Gradleも多機能で慣れれば快適です。

Xcodeは・・・嫌いですが無料だし、iOSアプリだけ開発したいならそれで良いのです。

そして、なんなら別々にAndroid版とiOS版のアプリを開発するほうがたいていラクです。
ググれば解決することが多いから。

今からXamarinを使う場合、普通はXamarin.Formsを使いたくなると思います。
これはかなりイバラの道です。

あまりノウハウもありませんし、そもそも部品が少ないのですぐにRendererやEffectの出番となります。
何しろフリックの検知すらできないのです。フリックするならそれぞれのNativeのViewにGestureDetector的なやつをセットしてイベント拾ってジェスチャー判定してそれをXamarin側に返す・・・というコードを書かなければなりません。

つまりiOSとAndroid両方の知識が必要になってくるのです。そのうえXamarin.FormsやC#の都合が出てくるのです。よほどの超人あるいは分業ができなければムリです。

それでもXamarinを使いたいのは、何かしらのロジック部分をC#で書いて共通化したいからだと思います。

前振りが長くなりましたが、Xamarinを使うケースはたいていAndroidとiOSのアプリを開発することになると思います。

つまり、Macは必須です。

さらに個人(正確には5人以内だっけ)でやっているのであれば無料のCommunity Editionを使えますが、そうでない組織ならVisual StudioのProfessional、しかもMSDN付が必要となります。

iOS向けのビルドをしないのであれば、MSDNは不要なので、分業してiOS担当の割合を下げれば全員がMSDN付きでなくても構いません。

こうして、私の職場でもン十万支払ってライセンスを何本か買いました。

MSDNがあれば開発用にWindowsマシンいっぱい作ったり、Azureでそこそこ何かできるな・・・と企んでいます。