JavaScriptにどのようなビジネス的メリットがあるか
概要
JavaScript Advent Calendar 2015、7日目の記事です。
ここでは、JavaScriptが実現するアーキテクチャには、ビジネス的にどういったメリットがあり、また、それを実現するためにはどのようなスキルが必要なのかを雑にまとめてみる。
SPAによるシームレスなWeb
SPAにより、モバイルサイトなどをネイティブアプリに近づけることができる。
まずはじめに、現状の技術では、Webをネイティブアプリ以上の品質に持っていくのは難しいというのを述べておく。しかし、それより少し劣るくらいにはもってゆくことができるし、そしてそれは、つくるサービスにもよるが、通常のWebサイトに比べれば何倍も良いのではないだろうか。
また、Webのデメリットとして、プッシュ通知ができないことや、オフラインで動作しないことがあるが、オフラインキャッシュに関してはService Worker、プッシュ通知も、Chromeによって実装されつつある。
さらに、PCサイトにも流用できるのが、Webのよいところでもある。ユーザー獲得の機会をあげるためにも、SPAによる恩恵はいくつかあるように思う。
実例
Google系全般, Facebook, Twitter, SoundCloud, Newspicksなど。
必要なスキル
JavaScript
SPAをつくるには、フレームワークの使用がほぼ必須である。現在主要なものはいくつかあるが、SPAをつくるのであれば、筆者はReact+Reduxをおすすめする。加えて、適切なアプリケーション構成で開発をしていく必要があるため、Webpackなどの設計スキルも必要である。また、品質をたもつため、テストを書く必要もある。
まとめると、ざっくりと以下のようになる。
- 設計技法
- フレームワークの使用
- モジュール化
- テスト
ここでは各項目の詳細について、ツールの比較などはしないので、自分で調べて頂けるとありがたい。
CSS
無視されがちだが、本当にWebをリッチな感じにしたいのであれば、CSSの力は必須である。ルーターのせました、高速で動きますかっこいい、というレベルだと、挙動不審でとてもアプリには敵わない。適切なCSS、アニメーションや、ローディングの処理を加えて、はじめてシームレスなWebアプリだといえる(と思っている)。
クロスプラットフォーム
ここでは、ネイティブか?ハイブリッドか?という不毛な議論はしないが、JavaScriptをつかうと、Webからアプリまでクラスプラットフォームで動くやつが、プラットフォームごとに別々につくるよりも低コストで作れたりする。(あまりないけど)Web、iOS、Android、Mac/Windowsアプリに同時に展開したいときとか、JavaScriptで書く方がコード量が減るし、メンテナンスもしやすいはず。
実例
Instagram, Facebook, Slack, Evernoteなど。
必要なスキル
探せば数多く出てくるが、ハイブリッドアプリであれば、Cordovaを使用した、Meteor, React Native, Ionicなどが主要なところ。デスクトップアプリはElectron, NW.jsが有名。また、こちらもSPAと同じように設計スキルが必要である。
サーバーレスアーキテクチャ
Amazon API GatewayやAmazon Lambdaなどを活用して、メンテナンスすべきアプリケーションサーバーをなしに、ビジネスロジックをJavaScriptだけで開発をすることができる。これにより、メンテナンスや開発コストを下げることができる。これはがっつりプロダクションで使った実例をあまり知らないので教えて頂けるとありがたいです。
実例
必要なスキル
- こちらは、JavaScriptというよりも、いわばAWSの知識も必要になってくる。
- AWSのツール群は言うまでもないが、Node.jsのスキルは今後よりいっそう重要になってくるといえる。
- またIoTとも相性が良さそうなので、今後のビジネスにとってキーとなるIoTを利用した開発がJavaScriptにより可能になる。
まとめ
このように、JavaScriptの価値は高まりつつある?が、どれをやるにしても、学ぶべきことは多くなってきている。ただ、一度覚えればそんなに学習コストは高くないと考えていて、結局書いているのはJSなので、コアとなる技術を知っていることが大事かなと考える。ここでツールなどの比較をしなかったのはそういう想いが一応あったからだった。
進化のスピードも早いので、なるべく見極めながらスキルを付けてゆきたい。