[iPhone 開発本] iOS SDK Hacks の感想など。

公開日: : iPad, iPhone, , ,

iOS SDK Hacksは発売前から話題になっていて、発売日は10/23だが前日に新宿ジュンク堂に並んでいるとの情報をTLで得て買ってきた。
Binary Hacksと同様、iOS SDKを使った便利な技が41個載っている。
著者は吉田悠一氏と高山征大氏とUICoderz。

オライリーのページはこちら。著者によるサポートページはこちら。サンプルコードが公開されている。

「筆者らが常に「こんなこと」が本やネットに載っていればなあ…と思っている項目を中心にまとめてある」と前書きにあるとおり、知りたかった知識がまとまっている印象。

Push Notification のサーバ側コードなど、日本のSDK本に載っているのは見たことがないので類書のない本になりそう。

なぜかAmazonの目次がとても読みづらいので、書き出してみる。Method Swizzling, otool, VFP など知らない言葉がいろいろあって読むのが楽しみになる。
ついでにちょっと内容紹介を書いてみる。

  1. subviewsを辿る … 第1章、UIKit Hacks。UIViewのsubviews を使ってViewの中を探る話
  2. respondsToSelectorをフックする … NSObject の respondsToSelector を使って、デリゲートメソッドの呼び出しをフックする
  3. UIWebViewでユーザーエージェントを切り替える… shouldStartLoadWithRequest を使う話
  4. class-dump … class-dump の使い方の紹介。
  5. 便利マクロ … デバッグログをリリース版では出さないようにするマクロなど
  6. UITableView Hacks … UITableViewの描画が遅い理由の説明。Quartzを使って自前クラスを書き高速化する
  7. NSOperation … More iPhone Cool Projects にも載っていた NSOperationを使ったマルチスレッド処理の書き方。簡潔に書かれていてわかりやすい
  8. PNG最適化 … 実はiPhone上で高速に描画できるPNGは普通のPNGとは違う! という話
  9. MapKitとMKMapView … Google Local APIを使って、MKMapView上にピンを配置するコードの紹介
  10. MKMapViewでピンをアニメーションさせる … MKAnnotationView の話
  11. AsyncSocket … 非同期通信で AsyncSocket を使う話
  12. ImageStore  … 画像の非同期ダウンロードに ImageStore を使う話
  13. AdHocビルド  … AdHoc ビルドしてアプリを配布する話。自分は何度も失敗しているが、dist.plistファイルを追加していないためかもしれない
  14. 外部ディスプレイ … UIScreenの話。外部ディスプレイには Apple iPad Dock Connector to VGA アダプタ を使って出力する
  15. 文字を高速に描画するには … ここから第2章 Quartz Hacks。NSString(UIStringDrawing)の話。
  16. 影付け  … #15の文字列に陰を付ける話。CGContextSetShadow などを使う。
  17. クリッピング  … Quartzのクリッピング機能を使って、角丸図形を描画する話
  18. NSStringを使わない描画方法  
  19. Quartzで2バイト文字等を描画する  
  20. 描画される文字の幅を調べる  
  21. 自分で用意したフォントを使う  … 例として IPAフォントを使って自分で用意したフォントを使ってみる話
  22. UIImage Hacks  … UIImageからピクセルデータを読み出す話
  23. ピクセルデータから UIImageを作成する … RGBAのピクセルデータからCGImageを使って UIImageを作成する
  24. Objective-Cの動的性質  … ここから第3章 Objective-C Hacks。Objective-CはこんなCコードに変換されるのか。
  25. Method Swizzling  … 既存のクラスのコードを Method Swizzling で自前コードに入れ替える話。method_exchangeImplementations を使っている
  26. Method Swizzlingによる UIWebView Hackの例(iOS 3) … iOS3の target=”_blank” 問題を回避したりする
  27. dlopen … dlopen(3) を使ってバイナリを動的にロードする
  28. 性能チューニング  …第4章 パフォーマンスチューニングHacks。NSDateやCFAbsoluteTimeGetCurrentやgettimeofday(3)の紹介
  29. otool  … otool の使い方の話。ある程度新しい環境なら /usr/bin/otool が使えるらしい。
  30. Instruments  … Instruments の使い方の説明。DTrace が使われていたのか。NSZombieの設定もInstrumentsでできる。UIテストの自動化も。#40にもあり。
  31. Shark  … Shark はオフライン処理でさらに正確な計測が可能らしい。
  32. ARMイントロダクション  … Thumb命令、VFP, NEONなどARMアーキテクチャ概要。わかりやすい。
  33. NEON  … ARMv7のSIMD命令 NEON を使う話。NEONはintrinsics で書ける。3GS以降で利用可能。
  34. VFP … インラインアセンブリを書いてVFP(Vector Floating Point):浮動小数点演算用コプロセッサを利用する。こちらは3Gでも利用可能。
  35. Push Notification … 第5章 ネットワークサービス Hacks。APNs用のサーバ側Rubyスクリプトが紹介されている
  36. In App Purchase … ざっと全体が書かれている。やはりIn App Purchaseは大変そうだ。とっかかりとしてとてもよさそう。
  37. ユニバーサルバイナリ … 第6章 iOS4 Hacks. ユニバーサルバイナリはiPhone/iPad両方で動くアプリの話だと思っていたが、異なるiOSバージョンをサポートするのにも使えるとのこと
  38. iOS 4のカメラ API  … iOS4からはカメラで撮影した画像にリアルタイムでアクセスできるようになったらしい。
  39. Accelerate.framework  … Accelerate.framework は数学演算用のライブラリらしい。vImage, vecLib, vDSP, BLAS, LAPACK が含まれるとのこと。
  40. UI Automation  … Instruments を使ったユーザインタフェーステストの自動化の話
  41. Grand Central Dispatchによる並列処理 … dispatch_get_global_queue, dispatch_apply を使ってGCDを利用しようの話。実際にはまだiPhoneはシングルコアなので将来向けの話。

ざっと内容を書いてみて内容の濃さがよくわかった… 持っているときっと何かの時に役に立つのではないかと。中級者以上向け。

iOS SDK Hacks ―プロが教えるiPhoneアプリ開発テクニック
iOS SDK Hacks ―プロが教えるiPhoneアプリ開発テクニック 吉田 悠一 高山 征大 UICoderz

オライリージャパン 2010-10-23
売り上げランキング : 231

Amazonで詳しく見る by G-Tools

Apple iPad Dock Connector to VGA Adapter (MC552ZM/A)
Apple iPad Dock Connector to VGA Adapter (MC552ZM/A)
Apple Computer
Sales Rank :

Average Review star
starJailbreak your iphone or ipad and it works for EVERYTHING
starDoesn’t work
starFrom touch to your flat screen

See details at Amazon by G-Tools

関連記事

Olympus Camera Kit (SDK)を製品版に移行

発売が延期されていた OLYMPUS AIR A01も3/25(水)についに発売された。

記事を読む

no image

スティーブ・ジョブズの王国 ― アップルはいかにして世界を変えたか?

Amazonからおすすめされてたまたま発見した本。2010年11月12日発売らしい。 原書はRetu

記事を読む

no image

超初心者に最適 フォトショップのドリル! 長谷川アンナ

Photoshop初心者の自分には残念ながらPhotoshopデザインラボは全くついて行けなかったの

記事を読む

no image

「CodeIgniter 徹底入門」でPHP学習中

サーバー側のプログラミングに手を出してみたいと思い、何冊かPHP本を買ったりしてみたが、どうもしっく

記事を読む

Topeak iPhone6 Plus 用ライドケースセットを買ってみた

家から最寄り駅まで歩くと結構時間がかかってしまうため、駅前に駐輪場を借りてそこまで自転車で通勤してい

記事を読む

no image

Amazon Book Marker 取り下げ

昨日2010/01/16(土)の朝に米Amazonより、ライセンス規約に違反していると警告がきたため

記事を読む

no image

[iPhone 開発本] iPhone/iPadゲーム開発ガイド ―Objective-Cで作る2D/3Dゲーム

今年の4月にオライリーのiPhoneゲーム開発本 iPhone Game Development (

記事を読む

no image

SwitchEasy NUDE for iPhone5 を買ってみた。まだ様子見の方がよさそう

SwitchEasy NUDE for iPhone 5 UltraClearSwitchEasy

記事を読む

no image

必ず結果が出るブログ運営テクニック100 を読んでみた

ネタフルのコグレマサト氏と和洋風のするぷ氏のブログ本がTLで話題になっていたので買ってみた。 売れて

記事を読む

no image

UIScrollView の上で UIView を動かしたい

今作っているiPadアプリで、画面をピンチインアウトで拡大縮小して、さらにその上でドラッグで部品を動

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Apple Special Event 2019

https://japanese.engadget.com/2019

WatchKitのAVSpeechSynthesizerで音が鳴らない

自作英単語学習アプリ EverLearn には watchOS用アプ

進撃の巨人10周年キャンペーン

2019/09/18まで、進撃の巨人10周年キャンペーン最終回まで一

ブログネタメモ

書きたいことがいろいろあるのだが書けていない。そのうちに忘れてしまう

リズムくんがタイ表示に対応しました

長らくお待たせしました。リズム学習アプリ「リズムくん」iPhone版

→もっと見る

PAGE TOP ↑