プログラマでありたい

おっさんになっても、プログラマでありつづけたい

アプリ開発者から見たAndroidとiPhone

 未来の自分へのメモがてらに、アプリ開発者目線から見たAndroidプラットフォームとiOSプラットフォームについて。

私の両プラットフォームの経験は次のとおりです。
同等の開発経験をしていないので、多分に憶測も含まれます。
・iOSアプリについては何点か開発して、AppleStoreにも並べている
・Androidアプリについては、サンプルアプリを軽く作っただけ


 まずiOSですが、プラットフォームとしてのメリットは、何と言っても(ほぼ)単一機種向けに開発すれば良いことです。iPhone/iPad、OSのバージョンの違いはありますが、機器性能依存の強いアプリ(カメラアプリ等)を作らないのであれば余り気にする必要はないです。せいぜいOSのバージョンごとのAPIの存在の差異を気にするくらいです。また、単一機種に関わらず圧倒的なマーケットの大きさは魅力です。何も宣伝していないようなアプリでも、毎日コンスタントにダウンロードされます。この二つは大きいです。
 反対にデメリットですが、やはり審査制度です。審査時間が掛かるといったことや、非公式APIを使うと問答無用にリジェクトされるということもありますが、最大の問題はアプリのコントロールが開発者から奪われることでしょう。アップルの審査基準は基本的にAppleが考えるiPhone,iPadに適合するかです。ジョブズの美意識に反するエロアプリや、Appleの戦略に直接競合するアプリは出せないのです。どんなアプリを作るかは、開発者の自由。どんなアプリをインストールするかは、ユーザの自由。こうあって欲しいです。またアプリ間の連携の手段が少ないのも気になります。基本は1アプリ1機能に限定して、機能連携はユーザが好きなアプリと連携というのが望ましいですが、現状では難しいですね。


 次にAndroidアプリですが、メリット・デメリットはiOSアプリのほぼ反対となります。メリットとしてはプラットフォームの自由度の高さです。自由といっても端末によって色々制約があったりはするのですが、それは端末を選んで開発出来るというメリットがあります。また他アプリとの連携もiOSに比べて比較的やり易いです。
 反面、多様性は開発する上では大変です。建前はAndroidアプリだとどこでも動くというものでしょうが、実際はそんなことはないでしょう。やはり機種ごとのカスタマイズは必要になるかと思います。となると、Galaxy等の流通量の多い端末をメインのターゲットに開発することになるので、市場としては劣化iPhoneなんじゃないのとか思ったりします。


 上記を踏まえて今後どっちに注力するのと言われたら、恐らくどっちもそこそこと答えると思います。基本的なロジック・制御はサーバサイドでやって、iOS,AndroidはViewの部分だけを担当させるのが楽なんじゃないかなと思います。まぁそのViewの部分の最適化が一番面倒くさいんですけど。また使う人から考えたら、出来るだけローカルの端末で処理してもらえる方が早くて楽でよいはずです。ただ回線の進化等考えれば、やっぱりサーバで処理させても遜色ないんじゃないかなと思います。
 という訳で今年はGoogle App Engine等を使って、サーバ側がほぼ無限にスケールするアプリを作ってみたいですね。1年後全く違うことを言っていると思いますが、今のところの考えです。