iPhone開発本 iPhone Cool Projects

公開日: : 最終更新日:2009/10/18 iPhone, ,

iPhone Games Projectsに続いて、iPhone Cool Projects も買ってみた。
この本はApress的にはBeginning iPhone 3 Development (邦訳 はじめてのiPhoneプログラミング)の次に読むべき本で、説明も図を使って丁寧になされている。7人の分筆により作られた本。

人により得意な分野、不得意な分野があるだろうし、ひとに説明できるようになるまで習熟するまでには時間がかかるので、このように自分の詳しい部分だけを責任持って書くというのは今後も流行っていくのかもしれない。

先月発売されたばかりのサンプルプログラムでマスターするiPhone SDK プログラミング実践ガイドも、複数の人により書かれていて、この本のスタンスに似ていると感じた。

iPhone Games Projects はObjective-Cを使わずに書かれていたりしてちょっと特殊な世界だったが、この本は一般Cocoaプログラマでも普通に使いそうな内容が紹介されている。

Apressのページはこちら

以下、簡単に内容紹介。

1. Designing a Simple, Frenzic-Style Puzzle Game

パズルゲーム Frenzic の作者、ARTIS SoftwareのWolfgang Ante 氏の章。
Frenzicのようなゲームを、Objective-Cで普通にUIViewやNSTimerを使って書く方法について記載。
作者も、通常はゲームはOpenGL ESなどを使って書くものだと書いているが、Frenzicのようなあまり動きが激しくないパズルゲームであればUIKitを使う手もある。その場合に使える実用的な技などを紹介している。

例として、Frenzicを簡略化したサンプルアプリケーション、Formicを使用している。FormicのソースコードはApressのダウンロードサイトからダウンロードすることができるので、動かしてみるとどんなものか理解することができる。

内容紹介

  • MVC原則の紹介と、今回一部それを破っている理由について
  • application delegateを使って、MVC間でデータをやりとりする
  • ユーザデフォルトを使ってゲームを再開する
  • iPhoneではオーディオ再生は重い処理なので、最初から考慮に入れておく

個人的には、Frenzicで点数を獲得したときにスコアが拡大して徐々に消えていくアニメーションを、UIViewを2枚用意して、1枚は通常表示、もう一枚は拡大アニメーション用に使用するという小技を初めて知ったので早速今作っているアプリに活用してみた。

2. Mike Ash’s Deep Dive Into Peer-to-Peer Networking

Rogue Amoeba SoftwareのMike Ashの章。Commondore 64からのプログラマで、NetAwakeやNanogolfの作者らしい。

POSIXソケットを使ったLANゲームのサンプルアプリケーションを使って、iPhoneでのネットワーク関係のコーディングを学ぶ。サンプルはSphereNetで、LAN内の複数のiPhoneアプリ間で、画面上で動き回る円の位置を共有するもの。
円のアニメーションにはCore Animationを使っているが、主眼はUDPを使ったデータのやりとりのコーディング。
UDPを使ったのは、リソースが少なく高速であるため。SphereNetのようなアプリであれば、多少のデータの欠損は無視することができる。

内容の紹介

  • ソケットプログラミング 例) socket(AF_INET, SOCK_DGRAM, 0)など
  • ネットワークを使ってデータをやりとりする際に注意しべき、Endian問題 (htons(), ntohs(), CFSwapInt32HostToBig())
  • #pragma pack(1)
  • Bonjour を使って、LAN内で同じプロトコルを使えるデバイスを探す

3. Doing Several Things at Once: Performance Enhancements with Threading

xcelMe.com の Gary Bennett がマルチスレッドプログラミングに関して説明する章。Gary Bennettは昔米国海軍で nuclear power engineer だったという異色(?)の経歴の持ち主らしい。

thread, critical section, mutex, race condition, deadlock の話。あまりiPhoneに特化した話ではなく一般的な話で、教材にも使えそうだ。
サンプルアプリケーションは Thread the needle で、スレッドを走らせて各スレッドでタイマーでカウンターを更新するもの。
performSelectorInBackground を使用。

スレッド中では、メモリプール管理は NSAutoReleasePool で時前で行う必要がある。また、メインスレッドで行わせたいことは、performSelectorOnMainThread を呼び出して行う。

Critical Section はNSLockで実現されていた。

4. All Fingers and Thumbs: Multitouch Interface Design

好きな言語はPythonとObjective-C、のUKのWooji JuiceのMatthew “Canis” Rosenfieldがmultitouch APIの使い方を紹介した章。

代表作は Stage Hand(Keynoteコントロールアプリ)、Hexterix らしい。Stage Handを開発した際に発見したことをいろいろ紹介している。

実は tap region は見た目よりかなり広い。Down と Up のregionも広さが違う。これは使い勝手を考慮したもの。
ジェスチャーは、touchesBegan, touchesMoved, touchesEnded, touchesCancelled の4つで認識する。gesture の認識は 難しく、言ってみればmind reading のようなもの、と表現されている。

新居さんのiPhoneアプリケーションプログラミング P166 にも書かれているが、ジェスチャーの判断は特にガイドラインもなく、自分で最初の位置や時間差を求めて判断する必要がある。なのでmind reading と表現されているのだろう。

(すぐにマルチタッチAPIを使う予定がないので、この章はあまりちゃんと読んでいない…)

5. Physics, Sprites, and Animation with the cocos2d iPhone Framework

Arcade Hockeyを作った、Brainjuice の Benjamin Jacksonの章。

cocos2d, Chipmunk, OpenGL ES の紹介ということになっているが、上記技術をある程度分かっている人向けに書かれており、使い方を知った上で読むときっと得るところもあるのだろうが、自分は知らないので理解が難しかった。自分はcocos2d に関しては以前ちょっと調べたことがあるくらいで、Chipmunkはこの本で初めて知った。
サンプルはAir HockeyもどきのGolfゲームが使われている。
cocos2dに関しては Mac Devなるところがよい情報を提供してくれているようだ。Chipmunk はFreeの物理エンジンのCライブラリで、ソースコードが提供されている。
alexandre game がチュートリアルを提供していた。これはわかりやすそう。

6. Serious Streaming Audio the Pandora Radio Way

Pandora の開発者 Neil Mixの章。Pandora Radioアプリを作った際の苦労を元に書かれており、含蓄深い。

Core Audioの返値は必ずチェックすべき、少なくともログはすぐにファイルに出力できるように、と主張している。
例としては、Core Audioを使って、HTTPでオーディオ再生をする。
要件にもよるが、なるべくシンプルに作った方がよい、が筆者の信条で、Pandoraアプリでも複数のスレッドは使っておらず、それで十分な使い勝手が実現できている。
ストリーミング再生には download と streaming があるが、Pandoraではダウンロードモデルを使っている。
サンプルプログラムは、NSURLConnectionを使ったもの。ADTS(Audio Data Transport Stream)も少しだけ説明がある。

7. Going the Routesy Way with Core Location, XML, and SQLite

Routesyの作者、Pixelcap の Steven Petersonの章。

筆者はRoutesyがはじめてのCocoaアプリだったらしく、iPhone開発のlearning curve は steepだ、と表現していた。
NSURLConnection, CLLocationManager, XPath query を使ったサンプルプログラムが説明されている。
説明は丁寧だし役に立ちそうだが、今となっては他の本にも書かれていそうな内容ではある。(先月発売された サンプルプログラムでマスターするiPhone SDK プログラミング実践ガイド でも似たようなアプリが紹介されていた)

全体的に、英語は平易だし、実用的な技が紹介されていると思う。確かにBeginning iPhone 3 Development (邦訳 はじめてのiPhoneプログラミング)の次に読むのがよさそうな本だった。

iPhone Cool Projects
iPhone Cool Projects
Apress 2009-08-13
売り上げランキング : 1306

Amazonで詳しく見る by G-Tools

関連記事

no image

iPhoneゲーム開発本 iPhone Games Projects

iPhone Games Projects、ようやくざっと読んだので内容をまとめてみる。 出版元のA

記事を読む

no image

Let’s talk iPhone イベント 2011/10/04

今回のイベントも、楽しみにしながら寝て、早朝に起きてから知ることにした。 今回、事前に行われていた予

記事を読む

コードちゃん 1.0.3 アップデート

コード学習アプリ コードちゃん 1.0.3をアップデートしました。ダイアトニックコードの Bmb5

記事を読む

no image

「サンプルプログラムでマスターする iPhone SDK」 の感想

2009年9月に発売された本。 iPhone SDK 3.0 リリース後に書かれた本なので、3.

記事を読む

[iOS9] AVSpeechSynthesizer の再生スピードがおかしい

iPhone 6 Plus を iOS9 にアップデートして自作アプリをXcode7 から転送したと

記事を読む

no image

SHIELD iShell iPhone 4 用ケース購入

奥さんのiPhone 4用に SHIED iShell iPhone 4 シェルカバーを購入。Ama

記事を読む

no image

iPhone Dev Center が We’ll be back soon.

iPhone Dev Centerが昨日からずっとメンテナンス中。もうすぐ1日経つと思うけどいつま

記事を読む

no image

Bundle versions string, short と Bundle version の使い分け

Xcode 4 上の、Bundle versions string, short (CFBund

記事を読む

no image

EDAMTimestamp と NSDate の相互変換

Evernote SDKを使ったアプリで EDAMTimestamp を DBに格納する前に NSD

記事を読む

no image

[iPad開発本] Beginning iPad Development

まだ数が少ないiPad開発本がApressから出たみたい。(Beginning of iPad De

記事を読む

Comment

  1. […] iPhone Cool Projects という本があったが、その続編になる。 Amazon.com でえらくほめられていたのと、Apressの本なのである程度内容が信頼できるということで買ってみた(Kindle 版があったらほしいと思ったが、まだ無いので紙版を購入した)。 […]

  2. journals より:

    Thought I would comment and say neat theme, did you code it on your own? Looks awesome!

Message

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Ember Mug 2のACアダプタをUSB Type-Cに変えてみた

冬になると活躍する Ember Mug 2 の充電器は付属のACアダ

Wi-Fi6Eルータ TP-Link AXE5400購入

Wi-Fi6E を試してみたくなり、TP-Link AXE5

児童手当 認定請求書申請 2024 「請求者が養育をする18歳に達する日以降の最初の3月31日までの子の数」とは?

2024年に受給していない人には手紙が届くらしい。 電子申請も

Vision Proアプリ開発本 8/24、8/26に発売

Vision Proアプリ開発入門 P400が 8/24 に発売、V

Developer Strap が日本でも購入可能に

USアカウントでしか購入できなかった Vision Pro 用 De

→もっと見る

PAGE TOP ↑