勉強法
Swiftの開発で参考になるサイト
- Apple
- Stack Overflow
- raywenderlich.com
- Medium
- YouTube
- Qiita
他のプログラミング言語と違い、Swiftの開発は調査力が影響する。文法や使い方を知ること以上に、調査を高度にルーティン化することが効率的な開発に不可欠になる。例えば検索するときに、キーワードと一緒に2018と入力すると効率がよくなる。Swiftは最も言語仕様が変わるプログラミング言語である。
またYouTubeの解説動画は、特定の言語仕様を深く理解する上で、遠回りでも役に立つことが多い。特に Lets Build That App というYouTubeチャンネルは中上級者向けにわかりやすく解説している。
Swiftの開発は英語力がものをいう。iPhoneの利用率は高いが、Swift日本語の文献はきわめて少ない。
ブログよりもStack Overflowと公式リファレンス
英語でも日本語でもブログはたくさんあるが、結局はStack Overflowを読むと効率がよくなる。しかし、画面遷移や画面制御の本質を理解しないままコードやストーリーボードを作ることは大きなリスクがある。
Swiftの開発は段階的に本質を理解する作業をともなう。本質を探る時間を一定以上とらないと、作ったものが本質的に間違っていたということが何度も起きる。
そうした非効率な作業を減らすためには、定期的にAppleの公式リファレンスを読むことがなにより役立つ。
車輪の再発明、独自技術症候群を全力で避ける
Swiftなどのプログラミング言語は、多くの人がすでに膨大な数のライブラリを作っている。例えばPythonで機械学習のアルゴリズムをゼロから作ることは、時間と金の浪費にしかならない。
iPhoneからサーバーに接続してデータを取得するコードをゼロから書いても意味がない。それはAlamofireという強力なライブラリが用意している。
開発のステップは次のようになる。
- ライブラリを探す
- ライブラリを使う
- ライブラリを使えない場合、自分のしたいことが間違っていないか考える
- 間違っていなければ、ライブラリに相当するものを自分で作る
代表的なライブラリは下のページにまとめている。
Swiftで人気のCocoaPodsライブラリ一覧(IGListKit、Alamofire、SwiftyJSONなど)
文法そのものは真正面から勉強しない
Swiftは他のプログラミング言語にない独特な文法を持っているが、本を読んでこれらを真正面から受け止めるより、開発を通じて自然に学ぶほうが効率がいい。これはC言語などと同様かもしれない。
Swiftは本から勉強してはいけない。言語仕様が毎年のように変わっているため、少しでも古い本はあてにならない。
Objective-Cはとりあえず無視する
今でもObjective-C関連のページが残っているが、Swift 4以降のページのみを参考にする。意図してObjective-Cのページを避けていかないと、結局時間を浪費することになる。
基本
CocoaPods Tutorial for Swift: Getting Started - raywenderlich.com
【Swift】CocoaPods導入手順 - Qiita
CocoaPodsによる、外部ライブラリの利用と作成 | Developers.IO
ライブラリ(CocoaPods)
Swiftで人気のCocoaPodsライブラリ一覧(IGListKit、Alamofire、SwiftyJSONなど)
タブバー
タブバーそのものはシンプルだが、アイコンを設定したり、タブとナビゲーションを組み合わせたりというときに、次のページが参考になる。
ナビゲーションバー
How to Navigate from one View Controller to another using Swift - Stack Overflow
Changing navigation title programmatically - Stack Overflow