DevLOVE iPhoneアプリ勉強会

3,370 views

Published on

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,370
On SlideShare
0
From Embeds
0
Number of Embeds
51
Actions
Shares
0
Downloads
0
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

DevLOVE iPhoneアプリ勉強会

  1. 1. 公開用(一部修正あり)
  2. 2. • Twitter/@tilfin Hatena/id:tilfin • フリーランスエンジニア • 一人会社の代表 • Webサービスやらアプリやらガジェットやら 作ってます。 • たくさんの人に自社のプロダクトを使って、 良いな!と感じてほしい。
  3. 3. • 電車内で見渡すと、 おじさん、おばちゃん、 お兄さん、お姉さん みんな持ってる。 ⇒たくさんの人に届く
  4. 4. • 開発準備編 • アプリケーション開発編 • アプリケーション配布・管理編 • リリース後 • iPad編 • 最後に
  5. 5. • スタンダード (個人、法人なら複数開発者で使える) • エンタープライズ (社内業務アプリを配布する。社員数500人以上)
  6. 6. • 注意!! Developerという名だが、開発会社ではなく提 供会社、社内で利用する会社もライセンスを 取得している必要がある。
  7. 7. • iOS SDK および Xcode のダウンロード • ライブラリリファレンス • サンプルコード • 開発者フォーラム
  8. 8. • Ceritifates 証明書の発行 • Device デバイス(実機)の登録 • App ID アプリIDの登録 • Provisioning Profile 上記の組み合わせを登録したプロファイル
  9. 9. 1. 証明書をMac OS X アカウントに紐づけて(キーチェーン アクセス)開発者がライセンスを持つことを示す。 2. プロビジョニングプロファイルをXcodeのオーガナイザ で追加。 3. アプリIDをXcodeのプロジェクトに設定する。 4. 実機へのアプリケーションのインストール、実行(デ バッグ)が可能になる。
  10. 10. • iOS は Mac OS X のサブセット • Cocoa Frameworkで構築される クラス名は NSxxxx、UIxxxx • Objective-C 2.0, C, C++ で書く。
  11. 11. • 2つ以上の言語経験が必要 (3つ以上ならたぶん楽勝) • クライアントアプリケーションの実装経験 が必要
  12. 12. • .h (ヘッダファイル) クラスが持つ変数、関数などの定義部 @interface • .m (実装ファイル) ヘッダファイルで宣言したものの実装部 @implementation
  13. 13. NSArray *array = [[NSArray alloc] init]; ↑ Java とかの object.method() は [ receiver message ] となる。 レシーバーにメッセージを投げることが オブジェクトのメソッドを呼ぶことになる
  14. 14. NSArray *array = nil; if([array count] == 0){ … ↑ array は nil (NULL) でもエラーにならない nil に対してメッセージを投げると nil となる。
  15. 15. @inteface Person : NSObject { @private: NSString* name; } @property (copy, nonatomic) NSString* name; @end ↑ プロパティは擬似的なもの @property で宣言し、 実装側で @synthesize と書くと、勝 手にコンパイル時にgetter、setterを生成している。
  16. 16. • JavaScripter, ActionScripterには無縁。 • Webアプリプログラマーもこの手の処理は DBトランザクションが担ってるから、割と無 縁。 • 古き良きクライアントアプリ作成者の出番。
  17. 17. • UI部を.xibファイルとしてリソース化する ためのツール • いきなりだと直感的に使えない。 • Xibファイルは実行時にロードされるため、 ソースにベタ書きするよりも若干遅い。
  18. 18. • 最適化したい場合はパーツに使わない。 • iPhone/iPod touch と iPadを同一バイナリ で配布したい場合は、Xibをそれぞれ 作って切り替えるという手法が良い。
  19. 19. • ViewController ⇒Helper has-a View. • ボタンなどのコントロールはアクションとメソッ ドを紐づける • テーブルなどのビューは各種イベント用メソッ ドをプロトコルとして定義し、その型のデリ ゲートプロパティにViewController をセットす る。 • UIがXibかコーディングかでメソッドサイクルが 異なる。
  20. 20. • 参照カウンタを理解すること。 • alloc, retain, copy プラス • release マイナス ゼロになると破棄 • autorelease は関数の戻り値に使う。
  21. 21. • メモリリークの検出 • メモリの使用量の確認 • 実機だと非常に重い。 • シミュレーターでは嘘が表示される。
  22. 22. • didReceiveMemoryWarning の実装 • iPhone シミュレーターからわざと起こせる。
  23. 23. • 開発環境と異なり、iPhoneアプリの実際の稼 働時はネットワークが安定していない。 • よって、ネットワークエラーに対するハンドリン グが簡単にテストできない。 • バグが出やすくなる。 • モバイルアプリ全般に言えることかもしれない。
  24. 24. • Manage Your Applications • Sales and Trends • iAd Network • Contracts, Tax, & Banking Information
  25. 25. • これは現在、途中から切り替えることができ ない。 • 日本語がデフォルトだと、英語を追加しても、 フランス語、ドイツ語圏も日本語。 ⇒最初のアプリ登録で決まってしまうらしく、自 分は涙目 (+_+) 状態です。
  26. 26. • リリースと同様、アップデートにも審査がある。 • 申請から公開・更新までだいたい一週間。 • つまりバグがわかってから修正してアップ デートがかかるため10日くらいはかかる。 • iTunes App Storeのコメントにビクビクする。
  27. 27. • スタートダッシュがすべて • 新作アプリの注目期間は、 リリース日順のカテゴリー表示のときだけ。 • 最初でランキングに生き残れないと、ロング テールの彼方に消える。
  28. 28. • クオリティが高いこと • 動作が軽い • インターフェイスが秀逸 • ブルーオーシャン • ライバルがいないところを狙う
  29. 29. • iPhoneと違い、iPadは複数のビューを並べて 表示できる広さがある。コンテキスト同士のつ ながりを意識する。 • iPhoneは向き固定でも良いが、iPadは縦横の 回転によるインターフェイスデザインを熟慮す る。 • 単純に、画面をデカクする OR SplitViewControllerを使うだけではダメ。
  30. 30. • 大画面モニターが必要。 • iPhone シミュレーターでは勝手にレジューム 対応してしまう。 ⇒アプリ終了で初期化されてない。 • 複数の向きや回転の反応などを確かめる。
  31. 31. Objective-C と Xcode への 拒否反応がなければ問題なし そうでなければ拒否反応にめげない 断固たる決意が必要
  32. 32. ご清聴ありがとうございました。 ちなみに・・・ iPhoneはもってません。 おわり

×