iOSアプリケーション開発室(2013年改訂版)
~~最近の主な更新点~~
長らく私がiOSアプリ開発を開始するために、とりあえず資料をかき集めて翻訳しただけの内容でしたが、 ようやく、実開発を経て得た情報を元に大幅に書き換えました。 しかし、内容は相変わらず「無保証」なので、怪しいと思ったら、必ず自己責任で再確認してください。 それが出来ない者はここを読んではいけません。

ここは何?


ここは、私がiOSアプリケーション開発のために勉強したObjective-C 2.0やCocoa Touch等の情報をまとめた場所です。 Appleの資料を意訳した部分と自作の部分、それに世間にあった資料をまとめた部分が混在しています。

あくまで「自己解釈」なので、世間一般とは異なるかもしれません。 一応実際のアプリ開発を何本かこなした結果によって書き換えましたが、 まだ理解不足で間違っている所もあるでしょう。 これから先も随時修正/追記/変更される可能性はあります。

 最先端のiOSの使い方に関する情報を求めにここに来ても無駄です。 正直「どうして他の人はこんなすごい物を作れるのだろう」と関することしきりで、 自分の才能のなさにはほとほとあきれかえっている状態です。

ここを読むには前提として「C言語は習熟している」必要があります。本で読んだ程度ではなく、実開発をかなりこなしたレベルです。 私が基本「Cで考える人」なので、Cの動作に置き換えて理解しようとしている部分が多々あります。 「C言語はマスターしているけどオブジェクト指向言語はさっぱりだ」という人には合っているかと思います。

私のCの書き方は「我流」の部分があり、私が覚える以上Objective-Cにもそれは「継承」していくので、 「普通の書き方とは違う」部分があることを承知おきください。 基本的にこのページは「自分用」ですので、変える気はありません。

なお、内容については一切保証しません。「無責任文章」です。 一応、実開発で得た経験や情報を元に全面的に書き換えましたが、 怪しいと思ったら、必ず「自己責任」で再確認してください。 この意味が分からない人は、絶対に読んではいけません。

追加情報は「うたブログ~情報編」に掲載してます。 まれにこちらにもフィードバックします。


~~目次~~


Objective-C 2.0の勉強
まずは、Objective-Cそのものに関する勉強。または、Cocoa Touch特有だけど、 一般的概念に関する部分の勉強。
  1. 基本
  2. メソッドの宣言
  3. クラスの宣言
  4. メソッド実体実装
  5. super
  6. インスタンスの確保/初期化/解放とAutorelease Pool
  7. オブジェクトの所有権
  8. id型よりクラス名 *の方が安全
  9. メンバーの公開範囲
  10. Class型
  11. セレクタ
  12. メソッドのポインタ
  13. カテゴリ
  14. プロトコル
  15. デリゲート
  16. ターゲット-アクション、アウトレット
  17. KVO : Key-Value Observe
  18. プロパティ
  19. 列挙子/高速列挙;NSEnumerator
  20. ファイル所有者オブジェクト
  21. モデル・ビュー・コントローラー
  22. 例外処理
  23. 並行動作制限
とりあえず、Objective-Cは「ソースの見た目」はともかく、言語としての拡張され方はC++に比べ 明らかに美しく、習得しやすいと思う。言語動作や構造的にも興味を引かれる部分が多々ある。 一方、C++はもはや「仕様を覚えること自体に興奮を覚えるフェチ言語」になってきているので覚えようとは思えない。 マイクロソフトですらC#とか作って逃げ出そうとしているくらいだ。
それはともかく、Objective-C習得における課題は、私も含め頭が「C」的な設計をするようになっている人には、 それをオブジェクト指向で設計するようにすることの方であろう。 こればっかりを数をこなして理解していくしかないのかもしれない。
Cocoa Foundationクラスライブラリの勉強
Objective-Cの基本的なところは理解できたと思う。しかし、効率よくプログラムを組む、 もしくはiPad/iPod touch上でユーザーインターフェースを構築するためるためには、 開発環境であるCocoa Touchに存在するクラスライブラリの使い方を覚えていく必要がある。

X68上の開発では、最強のマニュアルプロテクトと言われたXCの「ライブラリマニュアル」を読破・・・ までは必要なくても、必要な機能がどの辺にあるか位は知っていかねばならなかったのと同じである。 細かい仕様は都度仕様書を見ればいいが、だいたいの使い方は把握していかねばならない。

その中でも、まずはハードにあまり依存しないFoundationクラスから勉強する。

なお、クラスの全機能を書けているわけではない。基本形だけで、派生のクラスについても多くは省略してる。 それについてはアップルのドキュメントを見ると言うことで。

(等)とあるのは、実は「クラスでない物」も含まれているからである。まあ、関数であろうが型であろうが、 関係あるものは一緒に勉強。

追記:unichar=unsigned shortである。
  1. NSクラスを使うために
  2. ルートクラス;NSObject
  3. 文字列;NSString/NSMutableString
  4. 配列;NSArray/NSMutableArray
  5. バイナリデータ;NSData/NSMutableData
  6. 辞書;NSDictionary/NSMutableDictionary
  7. 数値クラス;NSNumber、範囲構造体:NSMakeRange/NSIntersectionRange、数値型:NSInterger、NSNumberFormatter
  8. 型変換;NSValue
  9. ファイル操作;NSFileManager/NSFileHandle
  10. URL操作;NSURL/NSURLConnection/NSURLRequest/NSURLResponse
  11. バンドル;NSBundle、リソースプログラミング(ちょっとだけ)
  12. デフォルト設定;NSUserDefaults
  13. 日時;NSDate/NSDateFormatter/NSLocale/NSTimeZone/NSCalender/NSDateComponents
  14. タイマー;NSTimer/NSTimeInterval/NSInvocation/NSMethodSignature
  15. 並行動作;NSRunLoop
  16. 通知;NSNotification/NSNotificationCenter
  17. エラー処理;NSError
  18. 例外処理;NSException
  19. セット(重複排除配列);NSSet/NSMutableSet/NSCountedSet
  20. インデックスパス;NSIndexPath
  21. インデックスセット;NSIndexSet/NSMutableIndexSet
  22. 属性付き文字列;NSAttributedString/NSMutableAttributedString
  23. 文字列内スキャン;NSScanner/NSCharacterSet

Cocoa Touch UIKitクラス(等)の勉強
次はユーザーインターフェース部分のクラス「UIKit」である。
iOSはv5.0以降を対象とする。
  1. 操作用語集
  2. プログラム用語集、もしくは翻訳凡例
  3. 画面構成
  4. 画面向き
  5. UIKitクラス階層構造
  6. UIViewController
  7. UIView
  8. UIWindow
  9. UIImageView
  10. UIPopoverController
  11. 分割表示;UISplitViewController
  12. UINavigationController
  13. UINavigationBar/UINavigationItem
  14. UIControl
  15. UILabel
  16. UIButton
  17. UIBarButtonItem
  18. UISwitch
  19. UISegmentedControl
  20. UISlider
  21. UIPickerView
  22. UIDatePicker
  23. UIWebView
  24. テキスト表示;UITextView
  25. テキスト編集;UITextField
  26. UIImage
  27. UIScrollView
  28. UIActivityIndicatorView
  29. 進行度計;UIProgressView
  30. UIPageControl
  31. 画像取得・選択;UIImagePickerController
  32. UISearchBar
  33. UITabBar
  34. UITabBarController
  35. UIToolBar
  36. UIAlertView
  37. UIActionSheet
  38. UITableView
  39. UITableViewCell
  40. UITableViewController
  41. UIResponder
  42. UIApplication
  43. UILocalNotification
  44. UIDocumentInteractionController
  45. デバイス情報;UIDevice
  46. 画面サイズ;UIScreen
  47. フォント;UIFont
  48. 色;UIColor
  49. モーション;CMMotionManager
  50. コンパス;CLLocationManager/CLLocation/CLHeading/CLRegion
  51. 地図表示;MKMapView/MKUserLocation/MKUserLocation
  52. 地図注釈;MKAnnotationView/MKPinAnnotationView/MKShape
  53. 地図オーバーレイ;MKOverlayView
余談だが、アップルの英文仕様書は「非常に」読みにくい。 関係代名詞とか"of"とか"to"とか多すぎ。技術以外の造語(というか俗語?)も多いし。 技術英語というより物語のような感じの言い回しも結構ある。 日本語に直接対応する用語がないこともあるので、それらをよく知る人が意訳してくれなければ、判らない。 英語の技術仕様書はかなり読んだ経験があるが、ここまでわかりにくいのは初めて。 「日本語は曖昧になるから英語で仕様書を作る」などと某P社が言ってたが、 「曖昧かどうかは言語によるのではなく、結局書いた人間の素養というか性格による」というのがよく解った。

プログラミングガイドの勉強
ここは、Foundationクラスや、UIKitを使ったプログラムを組む上で利用するガイド書を意訳して手入れしたものである。
概念中心なので、多少わかりにくいところもあるが、それは「私の訳がつたない」から、だけではない。 たぶん(^_^;)
なお本文中青字で書かれている部分は私の「意見」である。
集合
  1. 「集合」(collection)
  2. 「集合」の概要
  3. 配列:順序だった集合
  4. 辞書:キーと値の集合
  5. セット:順序立てられてないオブジェクトの集合
  6. インデックスセット: 配列に要素番号を格納すること
  7. インデックスパス:入れ子になった配列を通したパスを格納する
  8. 集合のコピー
  9. 列挙:集合の要素を横断する
メモリ管理
  1. メモリ管理規則
  2. オブジェクトの所有権と処分
  3. 実際のメモリ管理
  4. 自動開放プール
  5. アクセサメソッド
  6. オブジェクトコピーの実装
  7. Nibオブジェクトのメモリ管理
文字列
  1. 文字列
  2. 文字列オブジェクトの生成と変換
  3. フォーマット文字列オブジェクト
  4. 文字列フォーマット記述子
  5. ファイルやURLから文字列を読み込んだり書き込んだりする
  6. 文字列の検索、比較、ソート
  7. 改段落と改行
  8. 文字と書記素集団
  9. 文字セット
  10. スキャン
  11. ファイルパスの文字列表現
  12. 参照
リソースプログラミング(必要な部分のみ)
  1. 文字列リソース
国際化プログラミング
  1. 概要
  2. 国際化とローカライズ
  3. 国際化のサポート
  4. 言語とロケール指定
  5. 国際化のためのガイドライン
  6. 現在の言語とロケールを得る
  7. ローカライズのためのNibファイルの準備
  8. 文字列リソースのローカライズ化
  9. 国際化している他のリソース
  10. 参照
アプリケーション内での購入(In App Purchase)の追加仕方
  1. 「アプリケーション内での購入」の追加仕方

アプリケーション実装の勉強
アップルの「iPad Programming Guide」には、以下のように書かれていた(ちょっと意訳)。 また、アプリケーション内部については以下のように指示されている。 iPadヒューマンインターフェースガイドライン
  1. 序文
  2. 重要な iPad の機能 と特徴
  3. iPhoneアプリケーションから iPad アプリケーションへ
  4. iPad ユーザー 体験ガイドライン
  5. iPad UI 要素ガイドライン

アプリケーションの販売
契約と税金と銀行情報(「iTunes Connect Developer Guide」より)
  1. 契約と税金と銀行情報
「アプリ審査基準」(App Store Review Guidelines)
  1. 概要
  2. 契約条件
  3. 機能性
  4. メタデータ、評価とランキング
  5. 位置情報
  6. プッシュ通知
  7. Game Center
  8. 広告
  9. 商標と トレードドレス
  10. メディア内容
  11. ユーザーインターフェース
  12. 購買と通貨
  13. かき集めと寄せ集め
  14. デバイスへのダメージ
  15. 個人攻撃
  16. 暴力
  17. 好ましくない内容
  18. プライバシー
  19. ポルノ
  20. 宗教、文化と民族性
  21. コンテスト、賞金レース、宝くじと抽選券
  22. 慈善団体と寄付金
  23. 法的要求
  24. パスブック(Passbook)
  25. 生きている文書

その他情報

参考リンク

この部屋の参照回数: iPad Count