ハイブリッドモバイルアプリケーションは、ネイティブモバイルアプリケーションのように動作するWebアプリケーションです。サーバーレスバックエンドを使用して構築して、スケーラビリティ (拡張可能性)を高め、コストを削減し、任意のホスティング場所からコードを実行することができます。
この記事を読み終えると、以下のことができるようになります。
記事のリンクをコピーする
サーバーレスアーキテクチャは、Webアプリケーションに加え、モバイルアプリケーションの構築にも使用できます。サーバーレスバックエンドを備えたハイブリッドモバイルアプリにより、開発者はサーバーレスコンピューティングのメリットを組み込むと同時に、ほぼすべてのスマートフォンやタブレットでネイティブアプリのように機能するアプリをリリースできます。サーバーレスモバイルアプリは、ユーザーベースの拡大に合わせて迅速かつ容易に拡張できます。
ハイブリッドモバイルアプリとネイティブモバイルアプリは、同じ外観を持ち、同じ内装で、ほぼ同じように走行するものの、ボンネットの下にあるエンジンが大きく異なる2台の自動車のようなものです。ネイティブアプリは、特定の種類のデバイスとオペレーティングシステム用に特化して構築されており、そのロジックはデバイス自体で実行されます。
ハイブリッドアプリは、HTML、CSS、JavaScriptを使用して構築された Webアプリケーションで、「Native Wrapper(ネイティブラッパー)」と呼ばれるものの中で実行されるため、さまざまなデバイスでネイティブモバイルアプリのように機能します。通常のWebアプリケーションとは異なり、ハイブリッドアプリはプラットフォーム固有の機能(デバイスハードウェアや特定の種類のデバイスに固有のプッシュ通知機能など)にアクセスできます。これらのハイブリッドアプリは、App StoreやGoogle Playからダウンロードできて、ネイティブアプリと同じようにインストールされます。しかし、ロジックのほとんど、またはすべてがクラウドでホストされるため、ダウンロードしてインストールする作業は少なくなります。
技術面での改善により、パフォーマンスに関する懸念が対処されたため、近年、ハイブリッドアプリがますます普及しています。たとえば、Uber、Instagram、Twitter はすべてハイブリッドアプリです。開発者は、ネイティブのモバイルアプリケーションを構築するのではなく、ハイブリッドアーキテクチャを使用する方を好むことがあります。その理由は、異なるデバイス用に複数のプラットフォーム固有の言語でアプリケーションを再構築する必要がないためです。当然のことながら、複数のデバイスで動作する1つのアプリを構築すると、開発および継続的製品サポートの両方の時間を節約できます。
ハイブリッドモバイルアプリでは、コンピューティングはデバイスではなくクラウドで行われます。アプリのクラウドホスト型コンピューティングプロセスはすべて、サーバーレスWebアプリケーションと同じように、サーバーレスにすることができます。サーバーレスWebアプリとサーバーレスハイブリッドモバイルアプリの唯一の大きな違いは、フロントエンドのネイティブラッパー * です。
サーバーレスWebアプリケーションと同様に、アプリのコードは、すべてのバックエンド管理を処理するサーバーレスベンダーによってホストされます。アプリケーションはファンクションと呼ばれる小さな部分に分割され、特定のサーバーには存在しません。各ファンクションは、トリガーするイベントに応答して実行され、ベンダーのインフラストラクチャは、必要に応じてファンクションの新しいインスタンスを起動します。たとえば、ユーザーがサーバーレスバックエンドを持つアプリ内で「購入」ボタンをタップすると、1つまたは複数のバックエンドのファンクションを起動し、トランザクションを記録し、ユーザーが購入したものの配信を開始できます。
サーバーレスモバイルアプリは、サーバーレスバックエンドで一般的なWebアプリケーションを構築するのと同じ利点を提供します。
JavaScriptを使用して構築されたサーバーレスアプリケーションの詳細については、「サーバーレスJavaScriptの仕組みは?」を参照してください。
ハイブリッドアプリは、デバイスのWebViewを活用することで、ネイティブアプリのように機能します。WebViewは、通常のブラウザよりもアプリケーションの外観をカスタマイズするための優れた柔軟性を提供しながら、ブラウザのようにアプリケーションを表示するデバイス内部に存在するブラウザです。さらに、ほとんどのWebViewは、アプリケーションがAPI経由でデバイス上のハードウェア機能にアクセスできるようにします。
たとえば、ユーザーがInstagramを開くと、アプリはデバイスで実行されているネイティブアプリのように感じられます。しかし、実際には、デバイスのWebViewはInstagramによって生成されたWebページをレンダリングしています。ユーザーが最初にアプリを開いた時に表示される画像のフィードはWebページであり、それ以降にアクセスするすべてのページもWebページですが、ネイティブアプリケーションの一部であるように感じられます。Instagramはネイティブアプリではありませんが、デバイスのカメラやデバイスに保存された写真にアクセスすることもでき、プッシュ通知を送信することもできます。