書評 – iPhone&Androidアプリ内課金プログラミング完全ガイド

2012年12月16日 0 , ,

以前 iOS のアプリ内課金を実装した時、非常に苦労した。

Apple の公式ドキュメント「In-App Purchaseプログラミングガイド」は親切だし Web 上にも有益な情報も存在する。なかでも StoreKitと闘う | なんてこったいブログ はとても参考になった。しかし API の癖が強くリストアの扱いなどハマリどころがいくつもあり、課金処理の問題によるリジェクトも経験した。そのためこの辺をふまえた網羅的な情報がほしいなぁと常々、思ってた。

そんな折、アプリ内課金に特化した書籍があることを知り購入。

テスト方法や課金トランザクションのライフサイクルを意識した実装 ( たとえば中断など ) についても解説してあり、かなり実践的。

また書名にもあるとおり、iOS だけでなく Android のアプリ内課金も丁寧に解説されている。使う機会があるかわからないが Amazon App Store についてもひとつの章を割いて説明している。付録の iAd や APK Extention Files も嬉しい。特に後者は大容量コンテンツ系アプリ ( ゲーム、マルチメディア、…etc ) を作成するのに有用そう。

さすがに Windows Phone は取り上げていないものの、現在主流のスマホプラットホームにおける課金実装はこれ一冊で十分という印象。

開発者でなくとも 1 ~ 3 章は興味深く読めるはず。もし企業で初めてアプリ内課金を検討するならこの部分だけでも関係者で共有しておけば、コミュニケーションが円滑になるかもしれない。私がアプリ内課金に対応した時も、この辺の知識が企画営業へうまく伝わらず喧々諤々のやりとりに多くの時間を費やしてしまった。

説明は総じて細かく丁寧なので、アプリ内課金に関わる予定があるならリファレンスとして手元に置きたい一冊。

難点は紙であること。350p 超のボリュームは持ち運ぶのに厳しい。これで電子書籍だと更によいのだが。

よくわかるiPhoneアプリ開発の教科書【Xcode 4対応版】

2011年8月21日 0 , ,

よくわかるiPhoneアプリ開発の教科書【Xcode 4対応版】

仕事で iPhone アプリ開発に携わることとなったため、その道のベテランな方におすすめの開発本をたずねてみた。いくつか良本を挙げていただいた中から、まずは入門書を購入。

推薦に添えて「えらく丁寧に書かれていました」とコメントされていたがその言葉に偽りなし。まさに教科書と呼べる完成度。購入後、書店で他の入門書も手に取ってみたが現時点では本書がベストだと感じた。

ではどのあたりが優れているのだろう?私が本書を評価したポイントを、以下にまとめてみる。

豊富で良質な図解

本書の 1/2 近くは何らかの絵で構成されている。量だけでも驚きだがそれらの作り込みも素晴らしい。

例えば Objective-C の説明。

変数を表す図では変数が青い箱、値はオレンジ色の文字となる。続くポインタと配列の解説も、この基本図を踏襲して表現されるため構造と概念が実に分かりやすい。

ポインタの場合、値はアドレスとなり箱の横にはアスタリスクが添えられている。そこから延びた矢印がメモリ上のどこかを指している。

アドレス、アスタリスク、矢印はすべてオレンジ色になっているので、これらは同一、または強く関連付いていることは明確だ。

矢印の指す先がアドレスに連動するという挙動も想像しやすい。変数に格納されているのはアドレスであり、それの指す値ではないことまで明示されている。

そして配列。これの図も上手いのだが、何より先にポインタを解説するという構成に感心した。

この流れにより、配列と呼んでいるものが連続したメモリ領域の先頭を示すポインタであることを理解しやすい。図もポインタとメモリ領域をきちんと分けて描いており、余計な誤解を招かないようになっている。

続く NSDictionary の図も同様なので、この構成はポインタの正確な理解に基づいて採用されたものなのだろう。表現すべきものを正しく把握しているからこそ、分かりやすい図を提示できる。

オールカラー

開発系の書籍には珍しく本書はオールカラーである。

コスト面を考えたら採用しにくい仕様だが表現力で妥協したくなかったのだろう。実際、本書は色による表現を積極的に利用している。

図解やスクリーンショットは当然として他の部分も実にカラフルである。といっても配色はパステル調なので長時間、眺めていても目が疲れにくい。Xcode 4 の配色も似た調であるためスクリーンショットが本文と調和して見える。これは意図的なのだろうか。

ただ残念なのはサンプル コードに色づけしていない点である。せっかく Xcode と似た色調なのだから、こちらも Xcode 風にハイライトして欲しかった。

本書に限った話ではないが紙の書籍で見るソースは平坦なモノクロであるため読みにくい。コメントだけでも色を変えるかキーワードをボールドにするぐらいの加工はあってもよいと思うのだが。

丁寧な解説

本書のサンプル プログラム作成ではサンプルごとに毎回、Xcode の起動とプロジェクトを作成するところから始める。選択するプロジェクトのテンプレートも、しっかりと書かれている。

その後の手順もなにひとつ省略することなく続き、そのままトレースすれば確実にサンプル プログラムを作れるようになっている。「詳しくは~を参照のこと」というような表現はない。必要な情報は、すべてその場に書いてある

戸惑いそうなところは手順の側に「ワンポイント」や「どういう意味?」という小コラムを配置して補完している。疑問すらその場で解決するように徹底しており、実に隙のないつくり。

サンプル プログラムを作成しながら学ぶ本の場合、手順がどれだけ丁寧に書かれているかは重要なポイントである。

通常の文章と異なり手順書に省略は禁物である。どれだけ冗長に感じられても読者が追体験できるよう、あらゆる操作と状態を記述しなければならない。この点を誤ると、はまりどころの多い手順になる。たったひとつ押すボタンを抜かしただけで読者は混乱するものだ。

私自身、そういう手順書に悩まされたし同様のミスで人を混乱させたこともある。それだけに本書の丁寧さには感心させられる。

まとめ

ここまで完成度の高い入門書が存在することに iPhone アプリ関連の市場が成熟していることを感じる。同時に、このレベルを満たしてこそ入門書と呼ばれるに相応しいのではないか?とも。

技術書を選ぶ際の基準が一段階、高くなってしまった気がする。特に入門書は本書と比べてしまいそうだ。

Titanium Mobileで開発するiPhone/Androidアプリ

2011年6月16日 0 , , , ,

待望の Titanium Mobile 入門本が発売されたのでさっそく購入。

Titanium Mobile とはモバイル向けアプリをクロス開発 ( Android/iPhone/iPad ) するためのツールである。

無料で始められる気軽さ、開発言語として広く普及している JavaScript を採用したことなどが評価されたのか昨年あたりから急激に注目を集めている。

そんな感じで人気の Titanium Mobile だが開発しようとしても情報が少なく、いろいろとハマリどころも多い。そのため網羅的な入門書を待っていた開発者も多かったことだろう。かくいう私もその一人である。

本書をひととおり読んでみたところ、そのような期待へは十分に応えられていると感じた。現在、唯一の Titanium Mobile 本ということを差し引いてもかなりおすすめである。

以下に各章ごとの感想を書く。

第 1 章 : Appcelerator Titanium Mobile について

Titanium Mobile の仕組みや現状についての解説。

以前に騒がれた Apple の規約に関するリスク ( ※ ) についても言及されており、本書が「このツールは現実的な選択肢になりえるか?」という視点を持って書かれていることが分かる。

  • Apple の規約に関するリスクについて

第 2 章 : 開発環境導入とアプリケーションの第一歩

おそらく Windows の登場する唯一の章である。

本書では iPhone/Android を両方サポートする関係上、環境は OS X を想定しているようだ。ただし Android 開発なら Windows も利用できるので、そちらの環境構築についても説明されている。

ツールの使い方や実装は Win/Mac でほぼ共通なため、下手に両環境をとりあげて長くなるより思い切った方がよいと判断したのだろう。

本書で使用するツールは Titanium Developer になる。Titanium Studio を利用している場合は違いを考慮して読む必要がある。

第 3 章 : 実践!Twitter クライアントアプリ開発

簡単な Twitter クライアントを作成しながら、Titanium Mobile 開発を学んでゆく。

GUI、イベント処理、ログ取りといった基本から Titanium Mobile 独自のデータ管理、iPhone/Android 分岐といった応用までかなり手広く触れている。

章の終わりには AppStore と Android Market への公開も取り上げており、本章だけでアプリ開発をひととおり体験できるようになっている。

第 4 章 : ライブラリやデバイスの活用

前章で作成したアプリへ機能追加しながらライブラリやデバイスの利用方法を身につける。

OAuth やカメラの解説は他のアプリでも役立つことだろう。個人的には require によるソース分割と設定画面のつくりかたが参考になった。

第 5 章 : GPS 活用アプリケーション「食べナビ」

この章では新たに食べログ API を利用した別アプリを作成する。

スマホの代表的な機能である GPS とマップの使い方を学べる。飲食店の検索サービスは地理が重要なので題材として好ましい。

ここで初めてデータベース操作が登場。SQL についての解説は最小限だが CRUD をひととおり使用しているためサンプルとしては必要十分。

開発に JavaScript を使用するので、もしかして JSON からクエリ生成するのか!?と期待していたのだが、手続き型の API に SQL 文字列を指定する一般的な形式だった。安堵しつつも、少々、残念。

第 6 章 : Titanium Mobile API 簡易リファレンス

本書の著者である @donayama 氏は titanium-mobile-doc-jaというプロジェクトの管理人でもある。これはいま読める日本語の Titanium Mobile 資料のなかでは最も詳細、かつ網羅的なものである。

本章はこのプロジェクトと Appcelerator 本家の API リファレンスを日本語訳して組み合わせたような構成になっている。

Web と同じ量を紙面でカバーするのは無理があるので API は一部。しかしアプリを作り始めるに必要なものは網羅されている。

入門書は一読すると滅多に読み返さないのものだが、この資料の存在により本書は何度も参照することになりそうだ。本家リファレンスや KitchenSink のソースを読む前に API へ慣れるための副読本としてよい感じ。

Appendix

興味ぶかい内容の多い付録。

ただし自動レイアウトは 2 章あたりで説明してもよかったと思う。GUI を持つアプリの場合、レイアウトやイベント処理はフレームワークの癖が出る部分であり慣れるのが大変な部分。そのため独立した章にしてもよさそう。

とはいえ、そういう作りにしたら読者が減ってしまいそうだが…。

またモジュール機能はもう少しページ数がほしい。もし将来 Effective Titanium Mobile 的な本を出す予定があるならば、ここを突っ込んでくれることに期待する。例えば GUI コンポーネントの利用など。