アプリ開発日誌
2016.10.31
【どっちがいい?】ネイティブアプリとWebアプリの違いとそれぞれの利点について
モバイル用のアプリと作るといってもいろいろなアプローチがあります。その中でもネイティブアプリとWebアプリが思いつきます。まずそれぞれのアプリについて説明します。
ネイティブアプリ
弊社がメインで開発するアプリで「Play Store」や「App Store」に申請し、ユーザーはアプリを各OSのストアからダウンロードし、端末にインストールすることでアプリを使うことができます。
弊社では、Androidのアプリを開発環境はAndroidStudioで言語はJavaで作りまして、iOSのアプリは開発環境はXcodeで言語はSwift,改修案件ではObjective-Cで作るのが多いです。
Webアプリ
GoogleChromeなどのブラウザプリからアクセスし、レスポンシブデザインによってスマートフォンのデバイスのサイズに最適化されたレイアウトを表示させることで使いやすさを担保しています。
例:YAHOO!ショッピング http://shopping.yahoo.co.jp/
レスポンシブでないWebページはPCで開いたときと同じレイアウトでスマフォの画面に表示されるためボタンが小さくて押しずらく使い勝手が悪い印象を受けます。
例:厚生労働省HP http://www.mhlw.go.jp/
モバイルで使用することを前提にアプリを作るのであればレイアウトには気をつけなればいけませんね。
HTML5をで書かれるようです。ネイティブアプリとは違ってWebベージにアクセスすることでユーザーは初めてアプリを使うことができます。
さて、今回はレイアウトについてではなく、上記の二つアプリのメリットとデメリットは何なのかを考えていきたいと思います。
食べログ https://tabelog.com/ というアプリがあります。使ったことがある人も多いのでないでしょうか。
このアプリはストアからもインストールして使うこともできますね。
Android https://play.google.com/store/apps/details?id=com.kakaku.tabelog&hl=ja
iOS https://itunes.apple.com/jp/app/shiberogu-rankingutogurumena/id763377066?mt=8
実際に使ってみるとわかると思います。やはり表示する速さやデータのレスポンスはネイティブが早いと感じます。ここでいう「速さ」についてですが、データをやり取りする通信速度のことではなく、ユーザーが何かボタンを押したタイミングで期待される挙動までの体感時間が重要と思います。同じ通信速度であっても、端末にインストールされているネイティブアプリはインジケータを表示させて「動いている感」を表現したり、端末に取得した情報を保存してオフラインでも使用できるようにすることでユーザーが感じる「速さ」の印象は異なります。
カメラやGPS、ジェスチャーにプッシュ通知、指紋認識やBluetoothなどデバイスの機能はアプリと連携することでアプリの可能性を広げることができます。Webアプリでも一部の機能を使うことはできるようですが、デバイスにインストールされるネイティブアプリが勝利と思います。
費用の面でいうと上記二つのアプリではまず制作物の数の違いがあります。ネイティブアプリはAndroidとiOSでリリースすることでユーザーのパイを確保するのが基本のようで、BtoBのアプリでない限り両OSのアプリを開発するため、知識を持ったエンジニアをアサインしなくてはいけません。よって人月が増えるため費用が制作物が一つのWebアプリと比較すると増えてしまうのはやむを得ない状況です。
開発コストでも言及しましたがエンジニアのリソースが限られている場合、両OSでの実行を担保できるWebアプリの開発速度はネイティブのそれと比較すると単純計算で半分になるためWebアプリの方が早いと言えるでしょう。
まとめ
以上4つ挙げてみましたが他にもいろいろ着目する点はあります。運用や管理コスト、トレンドなど。しかし、なぜ開発コストもかかるし開発速度も遅いのになぜネイティブアプリをつくるのか
トレンドだからという理由も考えられますし、いろんな理由があると思いますが、その中でもシンプルな理由の一つで、
「USER FIRST」
という理念があることが一つ大きな理由でしょう。アプリは企業のブランティングや販促、利益を生むものでありますが、大前提として、それを使うユーザーを楽しませたり、生活の質を向上させるものであるべきだと思います。
いくらコストパフォーマスがよくて、派手な印象を与える料理を出す店があっても、まずくて、接客の悪いお店には金銭的なことだけでなく、自分の時間を割いてまでそれに関わることになんの価値もないでしょう。
アプリも同様です、「USER FIRST」という理念を前提にアプリのことを考えれば、ネイティブやWebというアプリの種類の選択以前にどういう機能を持たせるべきか、どういう運用をするべきか、といったことも自然と浮かび上がるってくるのではないでしょうか。
アプリを作りたいと思うすべての人に持っていて欲しい理念ですね。