プログラム未経験者が独学（書籍）のみでiOSアプリをリリースする方法 + Swift追加

プログラムが全くの未経験だった自分がiOSアプリをリリースできるようになるまでに
試行錯誤した方法をまとめます。

*注）発行日が古い本は情報が古い場合があります。発行日が新しい類似の書籍に置き換えてください*

これからプログラムを勉強して、個人でiOSアプリをリリースしたいと考えている方の参考になれば幸いです。
すでにプログラムがわかる方に取っては、ツッコミ所いっぱいかも知れませんがご了承ください。

勉強法は書籍とネット上の情報のみで何とかします。
この記事では基本的に勉強の流れと参考になった具体的な書籍名を紹介します。

ここでいうプログラム未経験とは、if文？なにそれ？くらいのレベルです。

まず、iOS開発関係の書籍を調べると、初心者向けからハイレベルなものまで多数出版されています。
初心者だと、「iOSアプリ入門」とか「だれでもわかるiOSアプリ開発」的な書籍に手を出したくなります。
私もそれ系の書籍を最初に読みましたが、今思い返すと手順としては失敗だったと思います。

なぜなら、プログラムの基礎知識がない状態でこれらの本を読んでも、
サンプルアプリのコードを写経するだけで終わり、サンプルアプリは動いているけど、
「なぜこんな動きになるのかわからない」「自分が作りたいアプリは作れない」という状態に陥ります。

なので、iOSアプリを作るまでに、やはり基礎知識を身につける必要があります。

iOSアプリの場合は、以下の知識が最低必要になると思います。

* C言語
* objective-C
* Xcode
* iOSのフレームワーク

前置きが長くなりましたが、これらを学習するために参考になった書籍を紹介します。


まず、最初にc言語の勉強をしたいところですが、もっと初心に帰ってこの書籍を読みましょう。
**「Cプログラミング入門以前」**
http://www.amazon.co.jp/dp/4839920648

そもそもコンピュータがどのような仕組みで動いているかを勉強します。
今後、c言語等を勉強する上で登場してくるポインタなどのわかりづらい概念を理解しやすくなります。


次にC言語を学習します。
if文やfor文など、プログラミングで必ず使う基礎的な概念を身につけます。
**「解きながら学ぶC言語」**
http://www.amazon.co.jp/dp/4797327901

if文などのプログラムの基礎を、簡単な問題をひたすら打って学習します。
正直、単調でしんどいです。
for文で1を繰り返し足し算するこが、iOSアプリ開発とどうつながるのかわからなくて死にたくなりますが、
くじけずに最後まで解きます。


次に、ここまで単調な勉強をしてきてプログラムが嫌になってくると思うので、
息抜きにiOSアプリを作ってみましょう。ここで、iOSアプリの入門書を使います。
**「つくって覚えるObjective-C入門 iOS対応」**
http://www.amazon.co.jp/dp/4048703641

iOS入門書は多数ありますが、先ほど書いたように、iOS入門書は基礎知識がないと写経になってしまします。
ある程度、写経も必要ですが、気軽にiOSアプリ開発に触れたいので、この本がおすすめです。
なぜならページ数が少ないからです。
とりあえず、短期間で動くアプリを作ってみて、モチベーションを維持しましょう。


次に、少しステップアップして、さらにサンプルコードを見ながらiOSアプリを作ってみましょう。
**「改訂3版 基礎から学ぶ iPhoneアプリ開発」**
http://www.amazon.co.jp/dp/486354121X

いろんなパターンのサンプルアプリを作りながらアプリ開発にふれていきます。
この段階ではObjective-CやiOSのフレームワーク、Xcodeの使い方の知識が必要になってくるので、
下記の書籍を参考書として併用します。
わからないところは、ひとつひとつ辞書のようにひいていきます。

**「改訂2版 Objective-C逆引きハンドブック」**
http://www.amazon.co.jp/dp/4863541058

**「Xcode 5 完全攻略」**
http://www.amazon.co.jp/dp/4797375361

~~・「iPhoneプログラミングUIKit詳解リファレンス」~~
~~http://www.amazon.co.jp/dp/4897978440~~

**「UIKit徹底解説 iOSユーザーインターフェイスの開発」**
http://www.amazon.co.jp/dp/4844336088

「Xcode 5 完全攻略」はひと通り読み通したほうがいいと思います。
アプリを配信する際に必要なデベロッパー登録や、証明書の発行などの方法もある程度記載されています。
プログラムの知識とは別に、これらの作業でつまづくと思いますので、あわせて学習してください。


ここまでくれば、簡単なアプリなら自力で作れるようになると思います。
しかし、少し高度なアプリを作りたいと思うと、どうしていいかわからないと思います。

ここでまた、単調な学習に戻りましょう。

**「詳解 Objective-C 2.0 第3版」**
http://www.amazon.co.jp/dp/B00GJGOPDW

この段階で、徹底的にObjective-Cを身につけましょう。
この書籍はかなり難解です（私の場合ですが・・）。
章ごとにひと通り読み、理解できなかったら再度章の始めから読み直して、
ある程度わかるまで繰り返し読み込みます。そして最後まで読み通します。
かなり苦しいですが、これを乗り越えると、一段階も二段階も高度なアプリを作れるようになるはずです。


これと合わせて、MVCという概念を学習します。

**「iOS開発におけるパターンによるオートマティズム」**
http://www.amazon.co.jp/dp/4861007348

MVC（モデル・ビュー・コントローラ）はiOSアプリのような、
ユーザーインターフェイスを持ったアプリの開発に必要な概念です。
これを身につけることで、コードか簡潔になり、
メンテナンスしやすい開発ができるようになります。


アプリを開発していると、データを保存するタイプのアプリを作りたくなります。
アプリの設定を保存する程度なら、簡単な方法がありますが、
メモアプリのような、データベースに保存するならCoreDataを使う必要があります。

**「iOS Core Data徹底入門 」**
http://www.amazon.co.jp/dp/4798039799

CoreDataもかなり難解です。（これも私の場合ですが・・）
appleが日本語訳したリファレンスを出していますが、はっきり言って意味不明です。
まず日本語がおかしいです。
「iOS Core Data徹底入門 」はわかりやすく解説されています。
本の前半はCoreDataと直接関係ない部分がありますが、それとは別に初心者には勉強になるので、
CoreData以外の勉強にもなると思います。


iBeaconやGPSを使いたい場合

**「iOS位置情報プログラミング」**
http://www.amazon.co.jp/dp/4798040703


最後に、アプリが作れるようになったら、金儲けがしたくなります。

**「アプリ内課金+広告iPhoneプログラミング」**
http://www.amazon.co.jp/dp/4798040436

アプリ内広告やアプリ内課金の方法が解説されています。


私がプログラム知識ゼロから、アプリをリリースするまでにたどった方法をまとめてみました。
これからiOSアプリを作ってみたいという方の参考になれば幸いです。

最後に、私が最近リリースしたアプリはこちらです。
無料なので、お試しください。
https://itunes.apple.com/jp/artist/shuichi-sasaki/id461369100

##2015/05/18追加##
Objective-CでiOSアプリがある程度開発できるなら、
Swift対応は以下の書籍で大丈夫かと思います。

**詳細! Swift iPhoneアプリ開発 入門ノート**
http://www.amazon.co.jp/dp/4800710707

**詳解 Swift**
http://www.amazon.co.jp/dp/4797380497