今回はネィティブアプリ・Webアプリあたりのお話です!
最近はスマホが主流なので、スマートフォンのアプリに対応してますか?・・みたいな話はとても多くなったのではないでしょうか?
そんな中、ネイティブに対応にしてますか?とか、商談でしれっと聞かれるけど、どう答えたらいいの?
・・みたいな悩み相談をSaaSベンダーの営業さんから、いろいろな会社で受けた事があります。
今回のお話は、そんな事を聞かれたとき、相手が何を知りたいのか?
これらをイメージするために何を知っておけば良いか?がテーマとなるので、今回は非エンジニア向けかもしれません。
でも、エンジニアの方も、今回の話は逆に伝わりずらいポイントである事を、理解しておくのも大事だと思うので、よろしければ!
ネイティブアプリって何?
実は、これ全然難しい話ではありません。スマホやタブレットにインストールして利用するアプリケーションをネイティブアプリって呼びます。
iOSならApp Store経由でインストール、Android OSならGoogle Play経由でインストールするやつです。
皆様もよくアプリを落としてインストールすると思うので、こう考えると、何となくイメージできますよね。
で、ネイティブアプリの特徴は「スマホやタブレットの端末上で動かす」というのが特徴。
いまどきのアプリって、インストールせず、ブラウザで動かすタイプが多いかもしれません。でもネイティブの場合は、インターネットに繋がってなくても動きます。
要は、たったこれだけの単純な話なのです。
混乱しやすいポイントと解説
でも、よく営業さんが聞かれて混乱しやすい質問があって、クラウドサービスを提供するベンダーだと、これが多いです。
御社のクラウドサービスはネイティブに対応していますか?
知人の営業さんが言うには、これは結構、初見殺しだとかw
では、一体どのような意図で、こんな質問をしているかを解説します。
まず顧客側でユーザーに展開しているスマホアプリがあったとします。
このスマホアプリに、あなたの会社が提供する、クラウドサービスを組み込めるか?
・・という意図で聞かれているケースが殆だと思います。
ここが混乱しやすいポイントで、ネットを使わず端末上で動かしているアプリに、クラウドサービスを組み込むってどういう事?
と・・こんな風に考えてしまうんです。では、どういう事か掘り下げてお話しますと。
実は、ベンダーが用意したプログラムを組み込めば、ネイティブアプリ上でも、そのままクラウドサービスが使えるようになる。
・・なんてものをベンダーが用意している場合があるのです。
※用意しているかどうかは、ベンダーのサービスレベルにより異なります。
※多分こんな感じのものを、期待されているのだと思います。
このようにベンダーが用意した、アプリに組み込むためのプログラムを・・
SDK(Software Development Kit)と言います
要は、スマホアプリに組み込めるSDK(プログラム)ありますか?っていう事を聞きたいんです。
※SDKはネィティブアプリ専用のものではありませんので、ご注意下さい。
SDKは、何らかの開発をするときに利用できる「部品」みたいなイメージで、ネィティブアプリに利用できるSDKもこれに含まれる感じです。
Webアプリケーション
次はWebアプリケーションについて、説明をさせていただきます。
これも単純で、スマホには、デバイスにインストールしなくても使えるアプリケーションがあります。
これがWebアプリケーション!
Webアプリケーションは、インストールせずにブラウザ経由で利用できるアプリケーションです。
ネイティブアプリの場合は、アプリを公開する場合、App StoreやGoogle Playへアプリの申請をする必要がありますが、ブラウザ経由でのアプリは申請がいりません。
しかもプログラムで1から書くネイティブアプリと違って、HTMLでデザインが出来ますので、ネイティブに比べるとだいぶハードルが低くなるのです。
しかし、ブラウザを通しての機能しか利用できませんので、Webアプリケーションでやる場合は、通知・カメラ・GPSを連携できません。
ちなみに、スマホアプリの強みは、通知やGPSやカメラとの機能連携なので、結局ネィティブアプリが優勢だったりします。
ハイブリットアプリ
ネイティブアプリ優勢ではあるのですが、ハイブリットアプリなんてのも、最近では増えています。
ハイブリッドとは、ハードウェアとの連携にすぐれたネィティブの機能と、Webアプリの柔軟性を組み合わせたやり方です。
ハイブリッドによく使われるWebView
例えば、このやり方はクックパッドがよく例であげられていて、クックパッドは、基本ネイティブアプリとして動いています。
でも、メニューの「料理の安心」を開くとインターネット上のWebをそのまんま表示させているんです。
この仕組みは「ネイティブアプリ内でWebを表示する機能」があってこちらを利用してます。
この「ネイティブアプリ内でWebを表示する機能」を・・
WebViewというんです!
ざっくり言うと、WebViewはネイティブアプリ用のブラウザみたいな機能です!
外枠のネイティブで動かすものはネィティブ、ブラウザベースで動かした方が良いものは、WebViewを使う。
このように、ネイティブとWebの良いところを組み合わせ、見せ方をうまく工夫して使うのが・・
ハイブリッドアプリです!
このやり方は一見便利そうに思えますが、アプリが重くなったり、逆に出来ない事もハイブリッド化します。
なので、開発の難易度が上がる・・なんてデメリットもあったりします。
最後に
今回のお話を最後にまとめると・・
おさえておくべき、大事なポイントは以下5つ!
これらの話は、クラウドサービスの提案をする際には、どこかで聞かれるかもしれません。
こんな事を突然聞かれても混乱しないように、自社のサービスがどこまでアプリに対応しているか、把握しておく事をお勧めします!
どうでしょう?ネィティブアプリやWebアプリについてイメージできましたでしょうか!