今週から、iOSアプリの作り方を学び始めました。
「簡単にできることを、複雑にやる必要はない。」
という方針のもと、
どうやって勉強したら、苦労しなくて済むか?を調査&検討してみました。
ラリー・ウォールによれば、プログラマの三大美徳とは次の通りである。
・無精(Laziness)
・短気(Impatience)
・傲慢(Hubris)
プログラマに必要とされる効率や再利用性の重視・処理速度の追求・品質にかける自尊心を言ったものである。
・インターネットで、iOSアプリの作り方に関するノウハウをチェックする。
・本屋に行って、最新の技術書をチェックする。
その結果、分かったことは、iOSアプリの作成に必要となる知識には、
(1) Xcode
(3) Swift(またはObjective-C)
の3つの要素があることが分かりました。
ザックリとしたイメージでは、
(2) iOS SDK(各種機能の詰合せセット)の使い方 → 7割
(3) Swift(iOS用のプログラミング言語)の使い方 → 2割
というかんじで、iOS SDKの使い方が、必要となる知識の大半であるように感じました。
上記(1)(2)(3)を、どのように学んで行ったら良いか?
自分なりにカリキュラムを考えてみました。
●Xcode
開発ツールである「IDE」(Integrated Development Environment。統合開発環境)には、いろいろありますが、「Xcode」は使いやすくて、良くできたIDEだと思いました。
=どこに、どんな機能が配置されているのか?が、分かりやすい。
飛行士が、操縦席で飛行機を操作して、飛行機を飛ばすように、
プログラマーは、IDEを操作して、プログラムを書いていきます。
IDEが使いやすいと、プログラムを書くのも楽になります。
Xcodeの基本的な使い方を始め、iOSアプリ作成の手順を一通り、軽く触れてみるための教科書として、「Swiftではじめる iPhoneアプリ開発の教科書」という本が、分かりやすそうでした。
=人に薦められて読んでみたら、自分には分かりやすい説明の本でした!

Swiftではじめる iPhoneアプリ開発の教科書 【Swift 2&Xcode 7対応】 (教科書シリーズ)
- 作者: 森巧尚
- 出版社/メーカー: マイナビ出版
- 発売日: 2015/10/30
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
→Amazonの評価(星の数)は、あまり高くなかったけど、内訳を見たら、クレームっぽい星一つがあったせいで、平均値が下がっていただけみたいです。
各レビュアーのコメントに、著者である森巧尚さんが、丁寧にレスを付けていたのが印象的でした。(誠実なかんじ?)
まず、この本を完璧に理解できるまで、何巡か読んでみます。
=サンプルコードを写経して、実際に動かしてみる。
●Swift
パッと見ですが、言語仕様は、
・Swift → シンプル
・Objective-C → 複雑
という印象を受けました。
Objective-Cには、C言語固有の難点(バグを発生しやすい仕組み~ポインターとか)があるので、まずはSwiftを使ってみます。
Objective-Cの出番もあるようなら、必要に応じてObjective-Cも勉強してみようと思います。
Swiftの特徴は、
・「手続き型」プログラム言語に属する。
・一般的なオブジェクト指向プログラミング言語の機能を一通り備えている。
という点が挙げられるでしょう。
Swiftは、モダンなプログラミング言語であり、記法も分かりやすいので、学習者の負担を軽減してくれそうです。
Xcodeに付属している「Play Ground」という画面で、手軽にSwiftの練習ができるので、Play GroundでSwiftの文法を一通りチェックしてみます。
Swiftの文法を重箱の隅を突くように、細かく見て行きたい場合は、「詳解 Swift」という本が、分かりやすそうでした。
●iOS SDK
iOSのSDK(Software Development Kit。ソフトウェア開発キット)は、いろいろなパーツの寄せ集めになっています。
メインは、「UIKit」というライブラリーであるようです。
UI=User Interface=画面を作るために使うパーツ集。
攻略の順番としては、
まず「UIKit」の使い方を一通り理解して、
それから他のライブラリーも習得していく、というかんじになるかと思います。
UIKitの使い方を詳細に解説した本として、「UIKit&Swiftプログラミング」という本がありました。

UIKit&Swiftプログラミング 優れたiPhoneアプリ開発のための UI実装ガイド
- 作者: 斉藤祐輔 JIBUNSTYLE Inc.
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/06/17
- メディア: 大型本
- この商品を含むブログを見る
この本は、GUIアプリの基本構造である「MVC」についても、簡単に解説してあったので、MVCのV(View=画面)を作る手順も、見通しが良くなっていると思いました。
他に面白そうなライブラリーとして、
・2Dゲームを作る「Sprite Kit」
というのもありました。

SpriteKitではじめる2Dゲームプログラミング Swift対応 (Smart Game Developer)
- 作者: 村田知常,原知愛,近藤秀彦,山下佳隆
- 出版社/メーカー: 翔泳社
- 発売日: 2015/02/28
- メディア: 大型本
- この商品を含むブログを見る
必要に応じて、SDK全般を見ていこうと思います。
●その他
Xcode、Swift、iOS SDKを一通り触ったら、他の機能もチェックしてみます。
アプリで作ったデータを保存する場所として、データベースが必要になる場合があります。
iOSアプリの場合、データの保管庫(ストレージ)として、いくつかの選択肢が選べるようです。
(A) Core Data → Appleが用意している純正のデータストレージ
(B) SQLite → 広く使われている簡易なデータベース
(C) Realm → SQL無しでも使えるデータストレージ
等があるようです。
「Core Data」に関する解説本として、「iOS Core Data徹底入門」という本がありました。
→ 発刊日が2013年10月だったので、もしかしたら内容が古くなっているかも?
●学習方針まとめ
・とりあえず、本を読んで、サンプルコードを写経する。
(1) Xcode → 画面やボタンの配置を覚える。
(2) Swift → Play Groundで、コードを書いて動かしてみる。
(3) iOS SDKのうち、UIKitの使い方を押さえる。
・作ってみたいアプリに必要な機能を調べて、使い方をマスターする。
Sprite KitやCore Data等の使い方をマスターする。
という方針で行ってみます。