何故webアプリ制作を選ぶのか。今後の自分が浮気しない為のまとめ。
はじめに
今回、Webアプリケーションの制作技術を学ぼうと思い立った。
ここでは、自身のモチベーションを高め、途中棄権を防止する為に、その動機を言語化しておく。
何を学ぶつもりか
- HTML5
- CSS3
- JavaScript
- JavaScriptのライブラリ(jQueryなど)
- Google App Engine
- Facebookアプリ
何故この技術を選ぶのか
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 EngineやAmazon Web Servicesなどクラウド環境のサーバを用意することができ、サービスの規模に合わせた柔軟な設備投資が可能である。サービス開始時はサーバ費用が少なく済む為、その間に細かなユーザログを活用して収益化の方策を検討し、ユーザが増加した時には十分な利益が得られる様にしておきたい。
おわりに
以上見てきた様に、HTML5を使ったwebアプリは、今後主流となっていくポテンシャルを持っている、と自分は考えている。こういった理由から、私はそれを学ぶ事とした。
などとまとめてみたが……
正直な所、個人で小さなことをやるだけであれば、スマートフォン向けアプリを作る方が無難だと思う。