Hatena::Groupiphone-dev

Ni chicha, ni limona - 平均から抜けられない僕

2011-01-10

[iOS] 書籍「iOS 4 プログラミングブック」の執筆に参加しました 20:07  [iOS] 書籍「iOS 4 プログラミングブック」の執筆に参加しました - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク はてなブックマーク -  [iOS] 書籍「iOS 4 プログラミングブック」の執筆に参加しました - Ni chicha, ni limona - 平均から抜けられない僕  [iOS] 書籍「iOS 4 プログラミングブック」の執筆に参加しました - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

今月から発売される書籍「iOS4プログラミングブック」に、共同執筆の一員として参加しました。


  

iOS4プログラミングブック

iOS4プログラミングブック


この本は、iOS4で新しく追加された機能をメインに「どんな機能か」「どう使ったら良いか」、そして「使うときに気をつけたい箇所は何か」を詳細に説明した本です。

目次

Amazonでも確認出来ますが、本書は次のような構成になっています。

 第1章 高解像度ディスプレイ

  1-1 高解像度ディスプレイの概要

  1-2 高解像度ディスプレイのリソース

  1-3 Core Graphcisの高解像度ディスプレイ対応

  1-4 UIKitの高解像度ディスプレイ対応

  1-5 Core Animationの高解像度ディスプレイ対応

  1-6 OpenGL ESの高解像度ディスプレイ対応

 第2章 マルチタスキング

  2-1 マルチタスキング

  2-2 マルチタスキングのキーワード

  2-3 目的別のマルチタスキング適用方法

  2-4 マルチタスキングのまとめ

 第3章 マルチメディア

  3-1 AV Foundation概要

  3-2 カメラ制御

  3-3 ビデオの編集とエクスポート

 第4章 アセットを使ったフォト/ビデオへのアクセス

  4-1 Assets Libraryとは

  4-2 クラス構造

  4-3 基本的な使い方

  4-4 Assets Libraryを使用する時の注意点

 第5章 マルチスレッド

  5-1 Blocksの概要

  5-2 Blocks解説

  5-3 Grand Central Dispatchの概要

  5-4 Grand Central Dispatchの解説

 第6章 ローカル通知

  6-1 ローカル通知の概要

  6-2 Local Notificationの実装

  6-3 Local Notificationの応用

 第7章 イベントキット

  7-1 Event Kitの概要

  7-2 Event Kitの実装

 第8章 広告エンジン

  8-1 iAdとは

  8-2 iAdのiTCの登録

  8-3 iAdの実装方法

  8-4 iAdと他の広告との比較

  8-5 iAdと他の広告の実装方法

 第9章 ジャイロセンサー

  9-1 ジャイロセンサーの概要

  9-2 ジャイロセンサーの実装方法

 第10章 ユニバーサル対応

  10-1 ユニバーサルアプリケーション

  10-2 デバイス識別方法

  10-3 古いiOSバージョンへの対応

 第11章 misc.

  11-1 ドキュメントプレビュー

  11-2 リソースファイル

  11-3 データ保護

私が担当した箇所と、どういう内容を書いたか

上の目次のうち、私が担当したのは

  • 2章のマルチタスキングについて
  • 4章のAssets Libraryフレームワークについて
  • 8章のiAd(これはサポートだけですが)

の3つです。


マルチタスキングでは標準的な説明だけでなく、アプリケーションの振る舞いがどうなっているのかを丁寧に説明することに注力しました。自分がマルチタスキングをサポートするアプリを作りたい場合に、どういう作法に従うべきかを解説しています。


Assets Libraryフレームワークでは、とかくマイナーな存在であるこのフレームワークについて、基本を丁寧に解説することに注力しました。ユーザーのiOSデバイスに保存されている、ユーザーにとっての貴重なデータを活用出来るという夢広がるフレームワークです。これまでに発売されている洋書でもほとんど解説されていない箇所ですので、貴重な資料になっています。


iAdでは、自分のアプリにiAdを組み込むにはどうしたらよいか、という点を丁寧に解説するよう心がけました。iAdはAppleの示す作法にしたがった実装が行われていないと審査でRejectされてしまいます。作法自体は簡単なものですが、それらを分かりやすくまとめています。


それ以外にも、超強力な執筆陣によるとても役立つ内容が揃っています。Mac OS Xアプリ作成にも役立つ(←重要!)BlocksやGCD、iOS4で格段に機能拡張されたAVFoundationをはじめ、「iOS4の機能を使いつつiOS3デバイスもサポートしたい」「iOS4でカメラ周りのAPIが変わったけどどうしたらいい?」「OpenGLをRetina液晶で使うベストプラクティスを知りたい」といった要望にも応える内容が満載です。

他の執筆者の紹介記事

最後に、他の執筆者の皆様が本書に言及されている記事を紹介します。それぞれがどのような内容になっているかを窺い知ることができますので、ぜひご覧ください。

氏は書籍「そのまま使える iPhoneアプリプログラム」の著者でもあります。

splhack氏はBlocksについての補遺(ほい)をブログ上で掲載しています。非常に濃い、良い内容ですのでぜひご覧ください。

後者のエントリは、「不安なので買う前にもっと情報を」という方にオススメの情報が書かれています。

また、南東京iPhone開発者勉強会を精力的に主催していらっしゃる@cqa02303氏も、得意のカメラアプリについての情報を惜しみなく記しています。


2011/2/3追記

発売してからもAmazonで1位を獲得したりと、好評を頂いていて何よりです。皆様本当にありがとうございます。

執筆者のブログも更新されていますので、現況に合わせてリンク一覧を纏め直しておきました。

LennaLenna2011/05/14 14:20HHIS I soluhd have thought of that!

xpnqknfeqxpnqknfeq2011/05/14 21:38ow9RUR <a href="http://audjfbjvqlik.com/">audjfbjvqlik</a>

profgpvcsprofgpvcs2011/05/15 22:31RZRTQO , [url=http://fohadljpdglm.com/]fohadljpdglm[/url], [link=http://qjhmeuhwvxhm.com/]qjhmeuhwvxhm[/link], http://wltidlzitxgh.com/

profgpvcsprofgpvcs2011/05/15 22:31RZRTQO , [url=http://fohadljpdglm.com/]fohadljpdglm[/url], [link=http://qjhmeuhwvxhm.com/]qjhmeuhwvxhm[/link], http://wltidlzitxgh.com/

hughorsnxhughorsnx2011/05/17 13:15mkRrBH <a href="http://osiwpxcljgkm.com/">osiwpxcljgkm</a>

pcwyjrxtfxpcwyjrxtfx2011/05/29 22:18D1omG0 , [url=http://nmpplywgacfu.com/]nmpplywgacfu[/url], [link=http://cxrclqyxdggb.com/]cxrclqyxdggb[/link], http://axqgeyrpktnh.com/

2011-01-09

[AssetsLibrary] Assets Libraryフレームワークを使うときの注意点 11:32  [AssetsLibrary] Assets Libraryフレームワークを使うときの注意点 - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク はてなブックマーク -  [AssetsLibrary] Assets Libraryフレームワークを使うときの注意点 - Ni chicha, ni limona - 平均から抜けられない僕  [AssetsLibrary] Assets Libraryフレームワークを使うときの注意点 - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

Assets Libraryフレームワークは、ご存じのとおりフォトライブラリの中の全メディアにプログラムからアクセス出来るようになる素敵なフレームワークです。

これを使えば、たとえば

  • 複数の画像を一度に選択できるイメージピッカー(そしてFlickrに一括転送、とか)
  • 画像管理アプリ
  • 好きなあの子の写真だけを表示出来るスライドショーアプリ
  • 撮影した写真のExif情報を取得
  • ライブラリ内の画像にExif情報を付けて別名保存(上書きは不可)

みたいなことができるわけです。今さらかもしれませんが、本当に便利なフレームワークなのです。なのですよね!


さて、このフレームワークを使っているとき*1に1つ気づいた点がありますので、記しておきます。


注意点:「ALAssetsGroupのposterImageメソッドは、大元のALAssetsLibraryオブジェクトが解放されていると、nilを返すことがある」


これはどういうことかと言いますと、ALAssetsLibraryから取り出したALAssetsGroupで得られるグループの代表画像(=posterImageメソッドで得られるサムネイル画像)は、ALAssetsLibraryが解放されていると、正常な画像が得られないことがあるということです。確認し切れていませんが、さらに先のALAssetを取得する段階でも問題が発生する可能性があります。


// マズいコード
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library enumerateGroupsWithTypes:ALAssetsGroupAll
				    usingBlock:resultBlock
				  failureBlock: errorBlock];
[library release]; // これだと以降のグループに対する処理がおかしくなってしまう!

上記のようにグループ取得後にリリースした場合、それ以降にALAssetsGroupオブジェクトに対して行う処理が失敗してしまうようになります。確認した範囲では、ときどき失敗したりと、不安定になっていました。

ですので、上記のALAssetsLibraryオブジェクトはクラスのメンバー変数にしておくことが必要になります。


// OKなコード
// --- @interface部 ---
ALAssetsLibrary *library_; // メンバー変数で持たせる

// --- @implementation部 ---
library_ = [[ALAssetsLibrary alloc] init]; // そして保持したままにする!
[library_ enumerateGroupsWithTypes:ALAssetsGroupAll
				     usingBlock:resultBlock
				   failureBlock: errorBlock];

お気を付けください。


Assets Libraryフレームワークに関する資料は、現在だと世界中を見渡しても非常に少なく、クラスリファレンスとにらめっこして、動作のトライ&エラーを繰り返して開発しなければいけません。

しかし、今月発売される「iOS4プログラミングブック」にはこのAssets Libraryフレームワークについての解説が載っています。フォトライブラリに溜まる写真を活用したい方は、ぜひ手にとってご確認くださいませ。


  

iOS4プログラミングブック

iOS4プログラミングブック


*1:iOS SDK4.2.1で確認しました。

msrdzebirwmsrdzebirw2013/12/18 05:27sucemjqipof.efw, <a href="http://www.tvwaunanwi.com/">auhexwbpnz</a> , [url=http://www.fssvrrtnmw.com/]niirjwuska[/url], http://www.rgwvzwlfds.com/ auhexwbpnz