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

EverLearn Ver.1.2.0 が公開されました

EverLearn Ver.1.2.0 が昨日公開されました。 今回は8/28にSubmitして、

記事を読む

no image

Professional Android 2 Application Development (Reto Meier著)

Xperiaをオークションで入手して、Androidアプリの開発をはじめたので、書店やWebでAnd

記事を読む

iOS 13の新機能をざっくり把握する本 購入

https://twitter.com/shu223/status/11517528848553

記事を読む

no image

ツイッター 140文字が世界を変える コグレマサト+いしたにまさき

一度途中まで書いたのが手違いで消してしまった...のでもう一度。 一応Reviewplusさんからの

記事を読む

Miselu C.24 届いた

Bluetooth 鍵盤 Miselu C.24 が2015年3月にようやく届い

記事を読む

iTunes Connect でアプリページを表示できない

いつからかわからないけれども、iTunes Connect で自分のアプリを表示できなくなってしまい

記事を読む

no image

iPhoneアプリ おんぷちゃん開発日記 和音表示

自分の娘のために作った五線譜学習アプリ「おんぷちゃん」の開発を細々と続けている。 iPadのグランド

記事を読む

au iPhone 6 Plus 64GB Silver 届いた

9/19 の発売以来、悩み抜いた結果 au で iPhone 6 Plus 64GB S

記事を読む

no image

Amazon Book Marker 取り下げ

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

記事を読む

no image

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

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

記事を読む

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

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

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

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

Vision Pro カバーケースを買ってみた

[itemlink post_id="11629"]

→もっと見る

PAGE TOP ↑