Swiftを使って一ヶ月しか経っていないが、C言語、C++、Java、Python、PHP、JavaScriptなどの主要な言語を扱ってきた人間として、Swiftを使うためにとるべき方針がいくつかわかってきた。それを以下にまとめる。
- ストーリーボードを可能な限り使わない
- しばらく更新されていないライブラリは積極的に使わない
- 更新頻度の高いライブラリは積極的に使う
- タブバーとナビゲーションバーの意味を理解する
- 一つの画面に複雑なアイテムを入れるより、画面を遷移させる
- ナビゲーションプッシュを徹底して使う
- 調べる時間の95%はStackOverflow
- 残りの3%はYouTubeの解説動画
- 2016年以前の情報は調べない
- クラスや関数の意味を日頃から理解するように努める
コードを徹底して書いてきた人はおそらく、理性を超えた部分で、ストーリーボードを拒否するだろう。実際、多くのページではストーリーボードを使わないやり方で複雑な問題を解説している。反対意見がメールでたくさん届くことを覚悟で言えば、ストーリーボードはプログラムコードの持つ「可読性」「修正の容易さと修正コストの少なさ」「コピー可能性」といったメリットを無視している。
Linux的、コマンド的、エディター的な文字の並びは、技術者にとって絵やペンに近いものである。
またSwiftは短期間で仕様が変わるため、2016年、できれば2017年以前の情報はあまり調べないほうがいい。単純な機能を調べるならともかく。
スケジュール管理
全体を少しずつ作り上げて、完璧主義を徹底して排除する。Swiftでは特に完璧主義が負の影響を持つようだ。Pythonがそもそも完璧主義的な側面を持っていることと対照的で、両者はおそらく真逆の言語的特性を持っている。
スケジュールの少なくとも2割は定期的な見直しに当てられるべきだ。つまりその時間で技術者はコードを破壊し、再構築する。Pythonなどの言語は再構築の半分は自己満足で終わる。しかしSwiftは、短いスパンで細かい仕様が変わっていることに加え、さまざまな言語的ルールが安定していないため、自分がかつて書いたコードが表面的理解のもとに書かれた赤点の駄作であるとすぐに気づく場合が多い。
最後に。Swift開発の生命線は、クラスの本質の理解にある。UICollectionView一つをとっても、使えば使うだけ要素を並べることの難しさを知ることになる。UICollectionViewは、要素を並べるときに生じやすい問題(コンパイル言語として避けて通れない問題)を先回りするように解決している。そこに気づくといくぶん開発時間が減るに違いない。