タイトル
プログラマが知るべき97のこと
著者
和田 卓人 (監修), Kevlin Henney (編集), 夏目 大 (翻訳)
出版社
オライリージャパン
Amazonで購入する

本書は、「プログラマ」の、「プログラマ」による、「プログラマ」のための本です。

  • プログラマとして成功したい!
  • プログラミングの腕を上達させたい!
  • ソースコードの質を向上させたい!
  • メンバーと上手くやりたい!

こういった願いを持つ人のために、世界中でよく知られた著者陣のエッセイがまとめられています。

何か壁にぶち当たっている人、成功したプログラマはどんなことを考えていたのか知りたい人、どういうことを考えてプログラムを書けば質が上がるのか知りたい人。

すべての「プログラマ」におすすめの一冊です。

参考

プログラマが知るべき97のこと - Wikisource

iOS 4.1 から、正式に Game Center が使えるようになりました。Game Center を使うと、ゲームに簡単に対戦やスコア、達成目標などの機能を追加できます。

Game Centerは、プレー中のゲームについての情報をプレーヤー同士で共有したり、ほかのプレー ヤーと一緒にマルチプレーヤー対戦に参加できるソーシャルゲーミングサービスです。Game Center は、ワイヤレスネットワークと携帯電話ネットワークのどちらからでもサービスを提供できます。 Game Centerの主な機能は、次の通りです。

  • 認証 - プレーヤーはGame Centerでセキュアなアカウントを作成し、iOSベースのデバイスでGame Centerにアクセスできます。

  • 友だち - プレーヤーはGame Centerのほかのプレーヤーを友だちとして登録できます。友だちは、最近遊んだゲームなどプレーヤーの詳細情報を確認できます。

  • Leaderboard - プレーヤーのスコアをGame Centerに記録したりGame Centerから取得したりできます。
  • アチーブメント(Achievement、成績) - そのゲームでのプレーヤーのアチーブメントを管理します。アチーブメントは、Game Centerサービスに記録され、Game Centerアプリケーションとゲームの中で閲覧できます。

  • オートマッチ - Game Centerを介して複数のプレーヤーとつながるネットワークゲームを作成できます。プレーヤーは友だちを招待したり、まだ会ったことのないプレーヤーと接続して対戦できます。プレーヤーは、ゲームを実行していないときでも対戦への招待を受信できます。その場合、ゲームが自動的に起動し、招待が処理されます。

  • ボイス - 対戦に接続されたプレーヤー間で音声通信を行うことができます。
『Game Kit プログラミングガイド』より

Game Center を使うためのプログラミングは形式的ながら、視点が二つ(自分と対戦相手)あるため、どの機能が何に当たるのかを理解していないと混乱しがちです。

本記事は、自分で Game Center を使ったアプリを作ったときの、メモをまとめたものです。

開発時の環境

iOS SDK バージョン
4.3
クライアント iOS バージョン
自分: iOS 4.3.2   対戦相手: iOS 4.3.5

docomo 携帯のユーザエージェントから、iモードブラウザ1.0かどうかを判断する方法

  • UA が DoCoMo/1.0 で始まっている
  • UA が DoCoMo/2.0 (c100; で始まっている

DoCoMo/1.0 で始まっているのは、PDC 端末。DoCoMo/2.0 で始まっているのは FOMA 端末になります。

FOMA 端末のうち、iモードブラウザ1.0 なのは、キャッシュサイズが 500KB ではないものになります。ドコモのユーザエージェント一覧を見る限り、キャッシュが 100KB のものは iモードブラウザ1.0 と判断できます。

Ruby の正規表現で書くとこんな感じ?

def imode1_0?
  request.user_agent =~ /^DoCoMo\/1.0/ ||
  request.user_agent =~ /^DoCoMo\/2.0[^(]+\(c100;/
end

本書は、スマートフォンアプリ開発に使う開発ツールを探している人、Titanium Mobile という名前を聞いたことがあるけど実際にどういうものかを知りたい人、Titanium Mobile を使って開発を始めたけどこういう書き方で合っているのか不安な人向けの、概要書兼リファレンスブック的な位置づけにあたります。

Titanium Mobile

Titanium Mobile - Appcelerator

Titanium Mobile を開発、提供している Appcelerator が用意してくれている Web 上のドキュメントは、Titanium Mobile を始めたばかりの人には分かりづらく、「こういうことがしたいんだけどどう書けばいいの?」という時には使いづらいのです。

本書は、そんな Titanium Mobile のドキュメントの弱さを補い、Titanium Mobile とはどういうふうに動作しているのか、こういうことをするときはどう書けばいいのかを学ぶのに最適な本です。

iPhone、Android 向けスマートフォンアプリとはいえ、プラットフォーム SDK が備える機能はとても豊富です。これらの SDK を JavaScript から扱えてしまう Titanium Mobile をよくここまでまとめたなぁという印象の良書です。

スマートフォン開発は、Windows や Mac などの GUI アプリケーションと同様、イベントドリブンモデルの開発になります。そのため、GUI アプリ開発の経験がない人には Titanium Mobile を使って JavaScript で開発を行うと、どうしても戸惑うことが出てくると思います。

本書をとりあえず読んでみて、Titanium Mobile 上で JavaScript で GUI 開発(スマートフォンアプリ開発)ってこういうふうにするんだというのを体感してもらい、リファレンスとしてのお供にされるといいと思います。

本書の対象者は、Titanium Mobile を使って開発を始めたい人、実際に開発を始めたがまとまった情報がほしい人です。Titanium Mobile を使ってとにかく何か作ってみたいひとは、本書内のサンプルを写経してみるといいと思います。

Titanium Mobile を使って開発をしてみたものの、不安が残っている人に最適な一冊です。

本書は、プログラミング後のコードレビューを行う視点で、どういった点を確認すれば良いのかを教えてくれるものです。

ソースコードレビューの目的については本書では触れられていませんが、僕が考えるソースコードレビューの目的は、コードの品質を高めるためです。

テストではソースコードの品質は高められません。単体テストはあくまでも、コードが意図したどおりに書かれているかを確認するものになります。品質は、ソースコードを書くこと(書き直すこと)でしか高められません。

他人の目から見ることで複雑なところがわかる

自分でコーディングしているときは気づきにくい、処理の複雑な部分が他人の目によって明らかになる

他人の経験を生かせる

リファクタリングが必要な部分や、もっとシンプルで効率のよいコードに直せるところを指摘してもらえる

本書では、こういった他人の目から見たコードの注意点を勉強できるものになっています。