何故webアプリ制作を選ぶのか。今後の自分が浮気しない為のまとめ。

はじめに

 今回、Webアプリケーションの制作技術を学ぼうと思い立った。
 ここでは、自身のモチベーションを高め、途中棄権を防止する為に、その動機を言語化しておく。

何を学ぶつもりか

何故この技術を選ぶのか

 HTML5+CSS+javascriptは現在策定中の最新技術であり、webアプリケーションの本命と言われている[要出典]。どうせやるなら、新しい物に挑戦していきたい。
 GAEを使う理由も、ほとんど同様である。Amazon Web Servicesという選択肢もあるが、個人でも使いやすく手軽なGAEを選択した。
 最終的にはFacebookアプリの形で提供を目指しているが、これは新規サービスに人を集めるよりも、既存facebookユーザに利用して貰う方が人集めが楽だと考えたからである。

何の為に学ぶのか

 抽象的には、生活を便利で豊かにする、ちょっとしたサービスを作りたい。
 具体案は秘密。

何故webアプリケーションという形態を取るのか

 これは以下に示す様な、webアプリが持つ利点と欠点を総合した結果である。簡単にまとめると、スマートフォンの登場によりwebアプリの長所が伸び、携帯電話網や公衆無線LANの増加、クラウドサーバ環境の登場により短所が補われている、と自分は考えている。

利点1.実行環境に依存しない(但しブラウザは必要)

 webアプリは対応するブラウザさえあれば動くため、WindowsでもMac OSでもLinuxでもiOSでもAndroidでも(ChromeOSでも?)、動作させる事ができる。これにより、プラットフォームを問わず、サービスを利用できる。
 ここで重要なのは「どの環境でも動く」事より「どの環境からも同じデータを扱える事」である。例えば、ToDoリストなどは、PCと携帯端末の両方から利用できる方が望ましい。そうした時、webアプリであれば元々両方の端末からアクセスできる為、扱い易く便利である。
 自分がwebアプリに狙いを定めた最大の理由がこれである。

利点2.インストール不要

 webアプリケーションは、webサイトにアクセスし、ユーザ登録を済ませた段階ですぐに利用を開始できる(アプリケーションによってはそもそもユーザ登録すら必要ない)。面倒なインストールの手間が無い為、手軽に使って貰える。

利点3.ユーザの利用状況が把握できる

 webアプリケーションでは、提供している機能の中でどれがどのくらい使われているのか、正確に把握可能である。これにより、不要機能の抽出や新機能の提案を、ユーザの需要ベースで進める事ができる。

欠点a.UIが制限される

 各プラットフォームに向けて作られたネイティブアプリケーションは、それぞれのユーザインターフェースを存分に活用でき、豪華なUIを実装できる。これに比べて、webアプリケーションはインターフェースが貧弱になりがちである。この欠点は、利点1と表裏一体の問題である。
 但しこの問題は、HTML5の策定や各種javascriptライブラリによってクリアされつつあり、それほど深刻な物ではなくなってきた。また現状でもAdobe社のFLASHを利用することで、十分リッチなインターフェースが実装可能である。

欠点b.インターネットに接続できる環境が必須

 当たり前だが、webアプリケーションを利用する為には、端末がインターネットに繋がっている必要がある。この欠点も、利点1と関係する。
 とはいえ最近は、通常の家庭であればインターネット常時接続環境が存在し、携帯端末も携帯電話網や公衆無線LANなどでネットワーク接続可能な場合が多い。今後ますます無線ネットワークは発展すると予想され、この欠点も徐々に解消されていくだろう。
 また、HTML5にはアプリケーションのオフライン実行を可能にする仕様が組み込まれており、必ずしも常時接続が必要ではなくなる点も見逃せない。

欠点c.ユーザ登録の必要性

 通常、webアプリケーションではユーザのデータをサーバ側に保管する為、利用者の識別の為にユーザIDとパスワードを発行する。これは思った以上に手間のかかる物であり、ユーザ登録画面を見た時点でページを閉じてしまうユーザもいると思われる。この欠点は、利点2と表裏一体の問題である。
 この問題は、mixiアプリFacebookアプリとして提供する、Google App Engine上で提供するなど、ユーザが既に所有しているアカウントを流用できる形にすることで、ある程度解消可能である。

欠点d.運用コストかかる

 webアプリケーションを提供する場合、ユーザデータの保管、アプリケーションの実行などを行う為のサーバリソースを必要とする。この欠点は、利点3と表裏一体である。
 幸い、現在ではGoogle App EngineAmazon Web Servicesなどクラウド環境のサーバを用意することができ、サービスの規模に合わせた柔軟な設備投資が可能である。サービス開始時はサーバ費用が少なく済む為、その間に細かなユーザログを活用して収益化の方策を検討し、ユーザが増加した時には十分な利益が得られる様にしておきたい。

おわりに

 以上見てきた様に、HTML5を使ったwebアプリは、今後主流となっていくポテンシャルを持っている、と自分は考えている。こういった理由から、私はそれを学ぶ事とした。

などとまとめてみたが……

 正直な所、個人で小さなことをやるだけであれば、スマートフォン向けアプリを作る方が無難だと思う。