Skip to Content

SAP Advent Calendar 2018の12月13日(木)のブログとして、SAP CloudPlatformを用いたIoTデモシステムでの温度センシングとSDK for iOSを利用したネイティブアプリでのセンシングデータ表示について投稿します。

今回は弊社で開発した既存IoTデモシステムに対してiOSネイティブアプリを追加開発した事例として紹介させていただきます。

 

【内容】

1.IoTデモシステム概要

2.SDK for iOS

– SDK for iOS 概要

– SAP CloudPlatform Mobile Service

– SDK for iOS Assistant

– SAP Fiori for iOS Mentor

 

※SDK for iOSを利用したアプリ作成について、一連の手順については下記に記載しています。

SAP CP Trial環境のHANA DB設定
SAP HANA CalculationViewの作成
SAP CloudPlatform SDK for iOSを使用したiOSアプリ作成


1.IoTデモシステム概要

IoTデモのハードウェア全体像です。

釣り竿部分が発電機になっており、リールのハンドルを回す事で発電します。

 

発電された電気がニクロム線を通る事で発熱し、その温度を温度センサーでセンシングしています。

センシングした値をラズベリーパイが処理し、

ソラコムの通信モジュールを使ってSAP Cloud Platformへ送信しています。

送信されたデータはSAP Cloud Platform上にあるHANA DBに格納され、

SAP UI5のグラフモジュールで見える化されています。

 

システムのアーキテクチャは以下のようになっています。

温度をセンシングしたデータはPython、fluentdを経由して

SORACOM Beam へと送信しています。

SAP CloudPlatform上のNode.jsアプリケーションからHANA DBへの書き込みを行い、

ODataサービス化したものをWebアプリケーションが取得しています。

 

温度データのセンシング〜Webアプリでのグラフ表示までを既存システムとして、

今回、システムにSDK for iOSを利用したネイティブアプリを追加しました。

以下が追加開発後のアーキテクチャです。

右側の赤枠で囲んでいる部分が追加開発部分です。

SAP CloudPlatform上のMobile Serviceから、Webアプリと同じODataサービスへの接続設定を行い、SDK for iOS Assistantを利用してSwiftアプリケーションを作成いたしました。

作成したアプリにはiOS用のFioriコンポーネントが用意されており、SAP Fiori for iOS Mentorで動作やソースコードを確認し、機能を実装しています。

 

ネイティブアプリのデータソースには既存システムのWebアプリが利用しているODataサービスを流用しています。

そのため、バックエンド・既存部分に影響を与えることなくネイティブアプリ開発が行えました。

 


2.SDK for iOS

SDK for iOSの概要と、開発に用いた下記のツール・サービスについて紹介します。

  • SAP CloudPlatform Mobile Service
  • SDK for iOS Assistant
  • SAP Fiori for iOS Mentor

SDK for iOS 概要

SDK for iOSはiOSアプリケーション開発用のSwiftフレームワークを提供しています。

SDKフレームワークは以下の構成となっています。

SAP Fiori Framework FioriデザインのUIコンポーネント
SAP FioriFlows Framework ユーザーのオンボーディングプロセス
SAP OData Framework ODataアクセス

SAP Foundation Framework

SAP Common Framework

SAP Cloud Platform環境とのインテグレーション

 

SDK for iOSはSAP CloudPlatform Mobile Serviceと連携しています。

オンプレS/4HANAとのセキュアな通信や、SAPが提供するその他のCloudアプリケーションとのインテグレーションなどCloudPlatformに備わる機能をMobile Serviceを経由して利用することが出来ます。

 

・SAP CloudPlatform Mobile Service

Mobile ServiceはCloudPlatformにあるサービスの一つとして提供されています。

Trial環境でも利用できるため、CloudPlatform環境をお持ちでなくてもすぐに利用することが可能です。

 

Mobile Serviceではネイティブアプリの設定をWebベースで行うことが出来ます。

上記の図はアプリケーションのセキュリティ設定画面です。

赤枠で囲っているセキュリティ設定を変更することで、アプリ側の認証設定の変更を行うことができます。

デフォルトのSAMLではCloudPlatformのログイン情報を参照しますが、

OAuthや認証なしなど、アプリのプログラムソースを変更することなく認証機能を変更することが可能です。

・SDK for iOS Assistant

SDK for iOS AssistantはmacOS用のアプリケーションです。

Mobile Serviceの設定を反映したプロジェクトの作成にはSDK for iOS Assistantを使用します。

デフォルトの設定ではバックエンドのODataサービスの参照・更新等が行える

Master-Detailアプリケーションが作成出来ます。

AssistantからジェネレートされたSwiftプロジェクトには、バックエンドのODataサービス設定を反映したPloxyクラスが含まれます。

Ploxyクラスの自動生成により、作成した時点でODataサービスからデータを取得する準備ができています。

仮に開発中、ODataサービス側が変更された場合にはPloxyクラスの更新が必要ですが、AssistantからPloxyクラスのみの再生成が可能なので、コーディングの必要はなく、また、開発途中のアプリへの影響も少なくなっています。

Assistantを利用することでコーディングが必要なのはアプリのロジック・画面デザインのみとなるため、開発にかかる工数の削減につながっています。

・SAP Fiori for iOS Mentor

画面デザインの作成に関してもiOS Mentorアプリでサポートされています。

Mentorアプリから実機動作サンプル・サンプルのソースコードを確認する事ができます。

今回作成したアプリで使用しているグラフもMentorアプリのサンプルソースを元に作成いたしました。

 


 

SDK for iOSを用いたアプリの開発において、SAP CloudPlatformとの連携に関してはMobile Service・SDK for iOS Assistantによってサポートされており、開発者が意識して作り込む必要がなくなっています。

実際に開発者が触れるのは主にアプリのロジックと画面デザイン部分です。

その点においてもSAP Fiori Frameworkを利用したFioriデザインのUIコンポーネント実装はMentorアプリによるサポートがあります。

そうしたサポートのおかげで、学習コストが低く、アプリ開発のなかで作り込みが必要となるのはロジックのコーディングのみとなっています。

 

まず、既存のシステムに対してのネイティブアプリ追加開発においてODataサービスが既に存在する場合はアプリ開発のハードルが低いと感じました。

既存のデータソースを利用することでバックエンドへの影響がないため、ネイティブアプリ開発にのみ注力することが出来ます。

また、Mobile Service・SDK for iOS AssistantとiOS Mentorアプリといったサポートが充実しているため、作り込みが必要な部分が少なく、素早いアプリ開発が可能となっています。

 

前述の通り、SAP CloudPlatformのtrial環境(無償)でもMobile Serviceは利用可能です。

SDK for iOSでのネイティブアプリ開発をすぐに始めることができるので、みなさんもぜひ利用してみてください。

 

 

 

 

To report this post you need to login first.

1 Comment

You must be Logged on to comment or reply to a post.

Leave a Reply