くまちゃんのiOS/Androidゲームプログラミング

マイペースでゲームつくってます。

イマドキのプログラミングはクセがすごいんじゃぁ〜

iOSのアプリを作ってから半年以上経ち、そろそろObjective-Cの毒素も抜けてきた頃合いなので心機一転、今こそ食わず嫌いで避けてたSwiftに乗り換えるべく勉強すべし、とAppleチュートリアルをペチペチ打ち込み始めてみたのでした。

実はSwiftが世に出た当初に敬遠していた理由としては、JavaScriptRubyPythonなどイマドキの言語の書き方になっていたことが大きかったのでした。「なんでいなんでい、どいつもこいつもオブジェクト指向になりやがって。所詮プログラムなんてメモリに値をぶっこんで、ポインタぶん回してナンボのもんじゃい!制御はオイラに任せやがれってんだこのやろォ!」と昔気質を気取っていたのですが、必要に迫られJavaScriptで小さなWebアプリをいくつか作り、イマドキのモダン(高機能)ブラウザの恩恵を受けた後ではすっかり馴染むカラダになってしまっていて、「あ!この書き方、楽ぅ〜。なんかJavaScriptっぽくない〜?」と逆に親近感を覚える変わりようなのでした。

ただ2点ほど、どうしてもしっくりこないクセがあります。1つ目は「?」の使い方。Optional型というもんなのですが、これは文字通り使い方が「?」なのでして。プログラマーが予期しないバグを防ぐための方策であり、効能が認められるからこそ採用されたのでしょうが、いかんせん学習し始めの頃はこの見慣れない「?」と、冗談のごとく対で使う「!」の記号の用法がイマイチどんな場面で役に立つのか実感が無く、いちいち「いるの?いらないの?」と悩まなければならない面倒くささだけが先に立ってしまい、頭に「入ってこない」のです。「あぁ〜、助かったぁ〜」という成功体験でもあればいいのでしょうけども、学習し始めの頃はそんな混みいったプログラムを書くこともないので、一向にありがたみがわかる気配がありません。

2つ目はAutoLayoutの使い方。iPhoneもさすがに画面サイズがバラバラになってしまい、なんとかそれに対応しようとしている努力はわかるんですけども、まあいきなりデザインしようとする画面が「正方形」なのは直感的では無く、違和感ありまくりですし、配置するボタンなど部品の位置をコントロールするために「制約」という考え方が気色悪い。人間、やはり部品を「そこに置きたいねん!」と思う「足し算」の思考が自然なのに、「えーっと、こうしたらあかんでぇ〜」と「引き算」の思考を積み重ねるのはなんともしっくりこなくて。これはAndroidxml直書きの方がわかりやすいかなぁ。

ということで、そんなSwiftの気晴らしに、とAndroidのアプリも3ヶ月ぶりにやってみるか、とこの土日にAndroid Studioのアップデートもしつつ立ち上げ、まっさらな気持ちで今までおろそかにしていた根本的な部分からじっくり書き始めてみると、こちらはこちらでどえらいクセがあることに今更ながら思い知らされまして。UIスレッドっていうんですけど、長くなったのでこちらはまたの機会に。