2009年11月アーカイブ

 現在開発中のアプリの進捗は7割程度といったところ。そろそろ,どんな形でアプリを公開すべきかイメージしながら作業を詰めていく必要が出てきました。

 判断すべき大きな問題は「無料」か「有料」か...。

 App Storeが存在しているおかげで,登録の手間はかかりますが,個人が開発したアプリを有料販売することも可能な状況になっています。しかも,全世界に向けて販売することも出来,そのこと自体が快挙といってよいでしょう。

 そうしたアプリ販売という魅力的な取り組みに挑戦したくなるのは開発者なら誰しも抱く正直な気持ち。大なり小なり労力を割いてアプリ開発したわけですから,その対価が得られればと思わないではありません。

 しかし,有料アプリとして「売る」ことと,「売れる」こととはまったく別。

 アプリとしての完成度や魅力が乏しければ,有料アプリとして買われないばかりか,無料アプリだとしても手厳しい評価をつけられるのがiTunesのApp Storeです。

 もちろん,それ以前にアプリの存在自体を知らしめる広報も必要であり,それが上手くいかなければ,10万もあるアプリの大海の中に沈んでしまう運命かも知れません。


 とにかく,アプリ開発者としては「広く使って欲しい」という願いと「できれば対価が欲しい」という願いを抱えるがために,無料で公開し広く使ってもらう道を選ぶか,有料アプリとして対価をいただけるように努力する荒波へ漕ぎ出すのか,という選択を迫られるのです。

--

 今回,私が開発しているものは,アプリ開発の学習を兼ねてつくっているアプリなので,もうちょっと別の道を模索してみることにしました。

 まず,先般App Storeの方針が変わり可能となった「無料ソフトのアプリ内課金システム」。

 このシステムを導入すれば,無料ソフトとして配布しながらも,試用期間経過後の継続使用に対して課金を促すことが出来るのです。支払いがなければ,試用期間終了とともにアプリは使用できなくなります。

 つまり,実際に使ってもらった結果として評価されれば対価をいただくことが出来るわけです。これはとても納得のいくシステムではないでしょうか。開発者にとってもアプリに触れてもらいやすく,かつ評価されれば対価を正々堂々といただくことが出来ます。

 ただし,試用期間が終わって評価されず購入されなければ,使ってもらえなくなるのは少し残念であること。それから「アプリ内課金システム」に関する技術的な知識を習得して,アプリに試用期間設定の機能と課金のための機能を実装しなければならないという手間。この2点がネックです。

 開発の学習の観点からいけば魅力的な挑戦ですが,ちょっと今回はハードルが高いです。

--

 そこで,もう一つの道。「アプリ内広告」の導入を検討してみることにします。

 アプリ内広告とは,文字通り,使用中のアプリケーション内の一部分に広告が表示されるもの。この広告表示に対していくらかの広告掲載料が発生するので,それをアプリの対価としていただくという考え方です。雑誌や新聞,Webと同じですね。

 iPhoneアプリ向けの広告は,全体の規模としてはまだまだ小さいようですが,アプリ利用率の高いiPhoneアプリは,広告媒体として注目を集めているようです。

 今回,これを導入することで,ある程度の金銭的な道筋を確保しつつ(といってもかなり微々たるもので,アプリがヒットしなければ収入はゼロに近いでしょう),無料アプリとして配布する道に挑戦してみることにしました。

 アプリに広告を表示するという機能の実装ならば,比較的作業も容易に思えたからです。

 
 いろんな会社がiPhoneアプリ内広告を手がけていますが,今回は,先日Googleに買われたことでも話題の会社AdMobのサービスを利用してみることにしました。当のGoogleもAdSenseのiPhone版を開発中みたいなので,公開時にはGoogleに乗り換えることもあり得ますが,場合によってはAdMobにAdSenseが(あるいはその逆で)統合される可能性もあるかも知れませんので,その辺の期待も込めて選択しました。

AdMob アプリケーション開発者向け
http://jp.admob.com/appdevs

 AdMobに登録し,次にiPhoneアプリ開発者として登録すると,AdMob SDKという広告表示のためのライブラリと,個別コードを発行してくれます。ちなみに登録の際にはPayPalのアカウントがあれば,それを利用して金銭のやりとりが出来ます。米国の納税者番号も用意しておきましょう。


 アプリへの組み込みはUIViewクラスを画面表示する要領で実現します。実際には,組み込みのサンプルアプリが用意されていますので,それを参考にコードを真似ればよいだけです。あとは,表示にアニメーションなどの工夫を加えて完成。

 どんな広告が表示されるかは分かりません。ただし,キーワードやジャンル,言語などを基準としてフィルタをかけることは出来ます。自分のアプリとは関係ないジャンルや出て欲しくないキーワードなどを設定すれば,それ以外でいろんな広告が出てくるというわけです。

 ただ,正直なところ,日本語による広告出稿量は少なそうです。この辺は,Googleによる買収が良い効果を発揮してくれることを願います。

--

 というわけで,広告が煩わしいという方には少し申し訳ないですが,アプリ内広告付きのアプリとして配信してみることから始めようと思います。

 また後日,具体的な導入方法を書ければ...。

 長らく表示ばかり表示されて予約受付状態だった本が刊行されました。執筆の修正段階が長かったらしく,結果的に米国amazon.com上の原稿を読んだ人々の評価が高いようです。

 広範なトピックスについてそこそこバランスよく,ある程度の深さも確保しつつといった感じになっています。中級から上の人々にとっては各トピックスでもう一踏み込みして欲しいといった物足りなさがあるかも知れませんが,全体をまとめて学びたい場合には,よい出来上がりの本です。

 CoreData等に関する記述も一通り扱われており,SDK3.0開発の新しい定本の候補ではないでしょうか。


 ネットワークとGPSに焦点を当て,Wordpresなどを組み合わせながらARっぽいアプリの開発を例にしながら解説しています。そちら方面の情報が欲しいというときには良さそうですよ。

Apressの開発本

user-pic
   

 例のApressが味をしめたのか,開発本をずらっとラインアップしてますよね。ちょっと並べてみます。

予約受付中
 
 

発売済み
 
     


 発売されています。まだ手に入れてないです。いま開発中のものは,あんまり音の活躍の場が無いので,次回以降ですね。関心の有る方は是非!

 ちなみに洋書ではこんなものが出るみたい...
 

 

 Mac Cocoaプログラミングの定番書である「ヒレガス本」。原著は第3版まで出ていますが,日本語翻訳本は長らく初版のままでした。そしてとうとう待望の翻訳最新版が登場しました。

 訳者の村上さんのご努力によって,原著にはないSnowLeopardへの対応や日本語環境への対応,最新状況に合わせた修正など施された上で発刊です。本当にお疲れさまでした。そしておめでとうございます。

 iPhoneによって注目を集めているCocoaプログラミングですが,iPhoneアプリ開発の激戦に疲れた皆様は是非Macプログラミングで心を癒してください。今回の「緑のヒレガス本」も定番という地位は変わりありませんね。

 Core Dataを使ってアプリを開発しています。Macソフトを開発したときにかじったことがあるので,今回も3.0でCore Dataが採用されたことをいいことに(2.0ごめんなさい)データ管理はCore Dataに頼ってしまおうという魂胆。

 『iPhone SDK3プログラミング大全』や『サンプルプログラムでマスターするiPhone SDK』の解説を記憶呼び戻しに使いながら,通称「HMDTの赤本」(『Happy Macintosh Developing Time -Third Edition-』)のCore Dataページでおさらいをしていたのですが,やはりどうしてもスッキリしない。

 いや,実際アプリ自体は正しく動いているので,それでいいんだろうとは思うのだけど,どうしても言質が取りたいという気持ちがあって,公式ドキュメントもひっくり返してみたものの,こちらも状況証拠ばかり...。

--

 スッキリしていなかったのは,Core Dataのエンティティに基づく管理オブジェクト同士のリレーションを結びつける方法。リレーション関係にするつもりの管理オブジェクトを別個に生成したら,この関連をどうすれば登録できるのかについて,真正面から書いてくれているものがほとんど無かったのです。

 確かに公式ドキュメント「Core Data Programming Guide」の77-78頁には,「anEmployee.department = newDepartment;」というコードと後は全自動ですとかなんとか説明があります。あとはプログラミングやってりゃ分かるでしょ...的な空気が充満していて,「まぁ,そりゃそうだけど...」と流されてプログラミングはしているわけですが,う〜ん。

 日本語の解説書はほとんど一つのエンティティモデルの例だけを扱っていて,最も詳しいはずの赤本もMac開発だとIB中心の記述に留まってしまうため,モヤッと感は消えないままなのでした。

--

 最近ようやく「Core Data」の本が登場した模様。さっそく手に入れて読んでみました。副題に「Mac OS X」としか書いていませんが,実際にはiPhoneに関する記述も1章分載っています。

 さて,丸ごと一冊Core Dataの本ですから,私をスッキリさせてくれるのかどうか,気になりますが,その結果は。
 
 わ〜い!スッキリ!スッキリ!


 To-OneリレーションとTo-Manyリレーションに関する解説で,ハッキリと例示してくれました。To-Oneの場合では,

 NSManagedObject *foo = ...;
 NSManagedObject *wow = ...;
 [foo setValue:wow forKey:@"..."];

 ってな感じ(名前は改変してます)でインスタンスをセットすればいいのだと示してくれてました。To-Manyの場合はNSSet絡みでさらに納得のいく解説(それは本をお買いください...)。

 これで自信を持ってコーディングできます。この本,CoreDataの入門としては良さそうなので,誰か翻訳するといいのに...。