概要
モバイル開発は実に単純ですが、バックエンドの開発に取り掛かるとなると、開発の作業がかなり難しくなることがあります。また、バックエンドを作成する場合、開発サイクルの所要時間が長くなります。さらに、スケーラビリティーと回復力を確保するという別の難しい課題もあります。こうした問題をある程度軽減できるよう、このコード・パターンではモバイル・アプリにサーバーレス・バックエンドを使用する方法を見ていきます。
サーバーレスの手法を適用すれば、イベントに応じてコードや関数を実行することができます。しかも、開発者がサーバーをプロビジョニングしたり管理したりする必要はありません。したがって、その分の時間をモバイル・アプリの開発に費やせます。さらに、バックエンドを、サーバーレス・プラットフォームにコードをプッシュするだけの単純なものにできます。
このコード・パターンでは、サーバーレス・バックエンドでプッシュ通知を使用する方法を説明します。特定の時刻に実行するようにスケジュールできる関数を作成するのは簡単です。この手法は、特にプッシュ通知を自動的にユーザーに送信する必要がある場合に役立ちます。通知を自動化して特定の時刻に送信されるようにすれば、まさにユーザーにエンゲージして、絶好のタイミングでメッセージを送信できるようになります。
このパターンでは例として、ユーザーに翌日の天気予報を通知できる、気象アラート・アプリケーションを取り上げます。このアプリケーションでは、バックエンドとして IBM Cloud Functions を利用します。また、Push Notifications サービスと、Weather Company Data サービスから提供される気象データも利用します。ユーザーはこのアプリケーションで、自分がいる都市、通知を受けたい気象のタイプと通知のタイミングを選択できます。
このコード・パターンに従って、サーバーレスの手法を適用したモバイル・プッシュ通知を試して、この手法を独自のモバイル・アプリにどのように適用できるか探ってください。
説明
このアプリケーションでは、(Apache OpenWhisk ベースの) IBM Cloud Functions をサーバーレス・モバイル・バックエンドとして使用し、これを手段にアプリケーションのユーザーにプッシュ通知を送信する方法を説明します。アクションがモバイル・アプリに作用する仕組みを説明するために、使用ケースの例で、cron ジョブの構成に従って特定の時刻に通知を送信するアクションを実行します。
モバイル・アプリケーションのバックエンドとしては、サーバーレス関数を使用します。このモバイル・アプリケーションは、翌日の天気予報をプッシュ通知で送信する単純な気象アラート・アプリです。サーバーレス関数で気象データを処理し、どのデータをどのサブスクライバーに送信するかを決定します。この決定を基に、モバイル・アプリから呼び出されたアクションによってプッシュ通知タグと cron トリガーの両方が作成されます。cron トリガーは、アクションとそのアクションを実行する時刻をスケジューリングするために使用されます。
このコード・パターンを完了すると、以下のスキルを身に付けることができます。
- Cloud Functions インスタンスを作成してデプロイする
- アラーム・トリガー内で cron を使用して Cloud Functions をトリガーする
- Cloud Functions でモバイル・プッシュ通知を使用する
このコード・パターンでは、以下のコンポーネントとサービスを利用します。
- OpenWhisk
- Android
- Cloud Functions (Apache OpenWhisk ベース)
- Push Notifications
- Weather Company Data
フロー
- ユーザーが特定の都市にサブスクライブし、サブスクライブ対象の気象タイプと通知を受信する時刻を選択します。
- モバイル・アプリが REST API を介して Cloud Functions のアクション・シーケンスを呼び出します。最初のアクションで、プッシュ通知タグが作成されます。
- シーケンスの次のアクションが呼び出されます。このアクションは Cloud Functions フレームワークとやり取りして、必要なデータ (場所、気象タイプなど) を設定した cron トリガーを作成します。
- ユーザーが設定した特定の時刻にトリガーが起動され、構成済みのルールに従ってシーケンスが呼び出されます。呼び出されたアクションにより、Weather Company Data サービスからデータが取得されます。
- シーケンスの次のアクションがデータを受け取り、ユーザーがリクエストした特定の気象タイプに応じてメッセージを作成します。
- シーケンスの次のアクションが Push Notifications サービスと連動し、これによって Push Notifications サービスからユーザーにプッシュ通知が送信されます。
手順
このコード・パターンの詳細な手順については、GitHub リポジトリー内に置かれている README.md ファイルを参照してください。手順の概要は以下のとおりです。
- リポジトリーを複製します。
- IBM Cloud で必要なサービス・インスタンスを作成します。
- Cloud Functions をデプロイします。
- 資格情報を構成します。
- モバイル・アプリケーションを起動します。