西海岸より

つらつらざつざつと

iPhoneアプリ開発への道

新しくiPhoneアプリ開発を始めるためにどういうステップがよいか、考えてみたので簡単にまとめてみました。
※あくまで個人的な経験を元に書いてますので、その点ご了承ください。
※ゲーム開発はターゲットにはしていません。

役立つスキル

iPhoneアプリ開発にあたって、役立つスキルとしてはC言語オブジェクト指向の知識、でスクトプアプリの作成経験などが強く生きます。開発言語はObjective-CとCの印象が強いですが、オブジェクト指向の考え方がより重要でプログラムの設計に大きな影響を与えます。C言語の経験がある場合には、Objective-CはC、C++を包含していることから、部分的な高速化といったチューニング、メモリ管理、Cのライブラリの利用、といった点でメリットがあると思います。

必要な技術要素

  • オブジェクト指向の理解
  • クライアントGUIアプリの実装
    • シングルスレッド、非同期処理による対話型アプリ
    • MVCモデル
  • Objective-C
    • 基礎文法
    • メモリ管理
    • ライブラリの利用
  • iOS(UIKit)

1人前の定義

  • Xcodeを使える
    • InterfaceBuilderを使える
    • クラス、素材(画像、音声、動画)を扱える
    • 実機で動作できる
    • (+α) 単体テストがかける
    • (+α) StaticLibraryを作れる
  • Objective-Cを理解する
    • 基礎文法を理解する
    • メモリ管理をきっちり行える
    • Cocoaライブラリを自分で調べて使える
    • 外部ライブラリを利用できる
    • エラー処理をできる(NSError)
  • iOSの仕組みを理解する
    • iOSアーキテクチャ
    • アプリのライフサイクルを知る
    • Viewのライフサイクルを知る
    • デスクトップアプリ開発の特徴を体感
  • 自分の作りたいアプリを作れる
    • http通信できる
    • Json, Xmlのハンドリングができる
    • CoreDataが使える

1人前になるまでの大まかな流れ

プログラミング初心者ではないことを想定した場合は、以下の通りかと。

  • 簡単なサンプルアプリを作ってみる
  • 一通りobjective-cの仕様を確認
  • AppleiOSプログラミングガイドを読む
  • 資料、ライブラリの調べ方を知る

あとはいろんな実装パターン、パーツを使ったiPhoneアプリのサンプルをひたすら打ち込めば、体感的にiPhoneアプリの開発スキルが身に着くと思います。

1人前になるまでのステップ

  • 前提として、開発環境(Mac+Xcode)があることを想定。
じゃんけんアプリを作る
    • 目的は、とりあえずアプリを作り、動かすところまでを体験し、感覚をつかむこと。
    • XcodeObjective-cを全く触ったことが無い人でも、この通りに進めるだけでアプリが作れます。
    • 個人的にもiPhoneアプリ開発する人にまずおすすめしています。
[発展課題]
- CPUとあなたの勝敗数を表示しよう。
- 勝敗数をリセットするボタンを作ろう。
書籍「基礎からのiPhone SDK」 のアプリをひたすら作る。

基礎からのiPhone SDK 改訂版

基礎からのiPhone SDK 改訂版

  • 目的は、iPhoneアプリの様々なUIパーツを使ってみて、何ができるか体感すること。
  • じゃんけんに引き続き、この本を読んで書くだけでXcodeObjective-cを全く触ったことがない人でも一通りアプリが作れちゃいます。
  • また、objective-cの学習要素も入っており、効率よく勉強っできます。
(発展)CoreDataを使う

アプリ開発をしていくと、データ管理が必要になり、CoreDataを使う場面が出てくると思います。

  • CoreDataとは、アプリで扱うデータを効率的に管理するフレームワーク
    • SQLを扱えるDBとは等価では無いことに注意。(似たように利用はできる)
資料の調べ方
  • Xcode上でクラスやメソッドを調べる
    • 知りたいクラスやメソッドの上で、「Alt」を押しながらカーソルを合わす。
    • 該当文字列が青くなるので、クリックするとその関数の定義情報が開く


  • わからないことを調べる

技術的な確認ポイント

上記ステップを実施してもらった後、以下の点について理解できているか確認するようにしています。

  • Objective-C
    • 参照カウント方式(retain, release, autorelease)とは
    • propertyの意味
    • delegateの意義
    • オブジェクトのライフサイクル

上記のあたりを応えられるようになれば、とりあえず最低限の理解はできているかと思います。

書籍紹介

必須レベル

詳解 Objective-C 2.0 改訂版

詳解 Objective-C 2.0 改訂版

    • objective-cの基礎的な文法や特徴を全て抑えている一冊。一通り読むべし。
    • バイブル的な本ながらも読みやすく、他言語経験者にとってわかりやすい。
    • Apple公式のアプリ開発ガイド(PDF)。iOSアーキテクチャの概要が載っており、iPhoneアプリ開発者必読のマニュアル。
    • これを読んでおけば、アプリ実装時にどの技術要素が必要でドキュメントを読めばよいかがわかる。
    • UIデザインについての説明。アップル審査にも関連するので注意すること。
推奨

基礎からのiPhone SDK 改訂版

基礎からのiPhone SDK 改訂版

    • このサンプルを作り続けるだけで、開発ノウハウを吸収できる。
  • iPhoneプログラミングUIKit詳解リファレンス

iPhoneプログラミングUIKit詳解リファレンス

iPhoneプログラミングUIKit詳解リファレンス

  • UIパーツ単位で、使い方サンプルが載っている。辞書的に使えて便利。
  • iOS4プログラミングブック

iOS4プログラミングブック

iOS4プログラミングブック

    • iOS4の新機能に特化して技術紹介した本。一通り目を通しておき、後に自分のアプリを作る際に技術的に困ったときに助けに
    • カメラアプリを作る場合にはぜひ一読すべし。サンプルアプリも充実。
必要に応じて