Twitter のつぶやきで面白そうな iPhone アプリを発見することが多くなってきたので、そうした iPhone アプリに関するつぶやきをまとめて見ることができる AppTweets という iPhone アプリをリリースしました。
単にそういうアプリを開発したかったというのもありますが、実はこのアプリは Objective C を一行も書かず、HTML + CSS + Javascript だけで開発できる PhoneGap という開発環境で開発しており、そうしたアプリが Apple の申請を通るのかどうかを実際に試したかったという裏の目的(実はこれが本命という話もありますが。。)がありました。
折も折、先日iPhone SDKの規約が
「アプリケーションはObjective-C、C、C++、またはiPhone OS WebKitエンジンによって実行されるJavaScriptで書かなければならない。C、C++、Objective-Cで書かれたコードのみコンパイルして公開APIに直接リンクできる(変換・互換のためのレイヤーやツールを使って公開APIにリンクするアプリは禁止する)」
» せかにゅ:Apple、iPhone SDKの規約変更 Flash締め出しか - ITmedia News
のように変更され、物議を醸しました。Flash アプリを iPhone アプリに変換できる Creative Suite 5 をはじめ、Javascript + HTML + CSS だけで開発できる PhoneGap や Titanium といった変換ツールで開発された iPhone アプリは審査を通らないのではないか、と。
結論をすでに書いていますが、PhoneGap については今のところは大丈夫なようです。
PhoneGap 開発元 Nitobi のブログ
» Jesse @ Nitobi » Blog Archive » PhoneGApp Store Approval
でも April 13, 2010 のアップデートで、今回の規約変更は PhoneGap には ZERO impact と書いています。
僕のような Web プログラマにとっては、日頃使い慣れている HTML + CSS + Javascript で iPhone アプリを開発できる PhoneGap は非常に魅力的です。AppTweets を触ってもらうと、詳しい人でないと気づかないと思いますが、実はトップ画面だけがネイティブのアプリになっていて、以降表示される部分は Web アプリなのです。開発自体は正味3日間くらいしかかかっていないくらい迅速に開発できますし、バグがあっても審査を通すことなくすぐに修正することができます。
では、これからも PhoneGap を使い続けていくのか?
僕はリスクが大きすぎると考えたのでやめようと思っています。
実は AppTweets は3月始めに審査に出しています。その後、3度 Reject された末に先週ようやく AppStore に並びました。結局 Reject の理由は他の部分にあったのですが、Reject される度に「PhoneGap を使っているからかな?」という不安が頭をもたげてくるのは精神衛生上悪いです。
また、Reject された際に、2度 US Apple の担当者と電話で直接話したのですが(なんとわざわざ自宅に電話がかかってきました)、懇切丁寧に Reject の理由を説明してくれて、どのようにアプリケーションを修正すればよいかといったアドバイス、そしてアプリケーションの機能提案までしてくれるのです。Apple の Review Team はかなり細かく品質維持に気を使っており、AppStore に並ぶアプリケーションの品質をある一定レベル以上に維持しようという強い意志を感じました。
先に紹介した ITmedia News の記事内に、
ジョブズ氏はこの件についての問い合わせについて、品質維持のための措置と答えている。同氏はクロスプラットフォームアプリを開発するための中間レイヤーが「水準以下のアプリを生み出し、iPhoneプラットフォームの進歩を妨げる」ためと説明している。
とありますが、確かに PhoneGap で開発したアプリケーションは、そう見えないように努力はしていますが、細かなところで、やはりネイティブアプリケーションと比べて操作性が劣る部分がみられます。
「水準以下のアプリを生み出し、iPhoneプラットフォームの進歩を妨げる」かもしれない、というのはうなずけます。
開発環境にまで口を出してくる Apple はけしからん、開発者の自由にさせろ!!という方もいるようですが、
を読めば、そういった考えがいかに意味がないかがわかると思います。
そこで、TechCrunchなどが最近のApple批判記事で取り上げるAppleの“悪業”はすべて、フールプルーフな消費者製品を作らなければならない企業にとっては、当然の行為なのだ。たとえば、ブラウザやシステムを頻繁にクラッシュさせるFlashはおことわり、というJobsの態度は至極当たり前だし、弊社がちゃんと検査して検査に合格したアプリケーションでなければユーザに使わせない、という姿勢も非常に納得できる。
開発者に自由にアプリを作らせてしまったら、iPad/iPhone を誰でも使うことができる「家電製品」として維持できないのです。
iPhone アプリを開発するときは、Apple の製品を作っているという意識に立てば、おのずと選択肢は限られます。
開発言語は Objective C しかない。これが、いろいろと悪戦苦闘した末にたどりついた僕の見解です。
2010/04/20 14:58:20