SAP モバイル開発についてまとめてみた

# はじめに

この記事は [SAP Advent Calendar 2021](https://adventar.org/calendars/6252) の12月23日分の記事として執筆しています。

このブログでは SAP モバイル開発について書きたいと思います。
with コロナの新しいライフスタイルが定着しつつある今、モバイルアプリを使っていつでも、どこでも、リモートであらゆることができるようになりました。SAP では、今年に入ってからの企業間インタラクションのうち、最大 70％ がモバイルで発生していると推定されているようです[^1]。今、モバイルがアツい:metal:
というわけで、モバイル開発をやってみたい、SAP にはどんな選択肢があるのか知りたい、という方の参考になれば幸いです。

# SAP Mobile Services

SAP Mobile Services は、モバイルアプリの開発や設定、管理をすることができるサービスです。一昔前までは、ただ一つのバックエンドと接続すればいい、非常に単純なアプリだったかもしれません。しかし最近のアプリは、様々なデータソースやサービスを必要とするものが多く、その管理は複雑になります :innocent:

![Screen Shot 2021-12-23 at 13.02.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/14ecfb78-f9f0-ca00-1749-b7d5b6c7e0c7.png)

そこで SAP Mobile Services です。下図の右側、オレンジ色のブロックが SAP Mobile Services が持つ機能で、エンタープライズレベルのモバイルソリューションに必要な管理・サポートが実現できます。一方、左側が開発者向けに提供されている SDK やツール群です。今回は、こちらにフォーカスしていきます。

![Screen Shot 2021-12-23 at 13.01.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/5cb908f3-6d3a-e89e-d118-27fcaa46c91b.png)

## SAP BTP SDK for iOS / Android
![Screen Shot 2021-12-23 at 12.36.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/6b6defd1-cf8b-67d9-af38-4d16f46ca931.png)

SAP BTP SDK for iOS は、Swift ベースのフレームワーク群と開発ツールです。認証や OData 呼び出しなどのコア機能をフレームワークがカバーしてくれるので、ビジネスロジックや View 開発に集中することができます。開発ツールには、プロジェクトの雛形を作ってくれる SAP BTP SDK Assistant for iOS、UI コンポーネントのサンプル集である SAP Fiori Mentor (iPad App) があります。もちろん、Android 版もあります。

![Screen Shot 2021-12-23 at 12.34.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/8fdfa506-9b1a-bb37-a07f-137ced14f893.png)

https://apps.apple.com/us/app/sap-fiori-mentor/id1215284965

開発ツールが充実しているとはいえ、ゴリゴリネイティブアプリを開発したい人向けです。ネイティブアプリの開発経験がないと本格的なアプリを作るのは難しいです。とはいえ、最高の UX を実現することができるのが他にない強みです。

![Screen Shot 2021-12-23 at 13.32.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/a60ba0fc-b63c-fee2-62bb-b5d81fa4388c.png)

### What's New?

#### SAP Fiori for iOS

![Screen Shot 2021-12-23 at 12.58.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/1767d5d8-f374-bd04-c1da-552a5330d9c4.png)
AR Kit は Developer Keynote でも取り上げられていました:relaxed:

![Screen Shot 2021-12-23 at 12.57.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/be33923a-e756-1f89-af3f-541a49b3f44b.png)
![Screen Shot 2021-12-23 at 12.57.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/22fa6214-702a-95fa-ee32-92c7a7bc39b0.png)

#### SAP Fiori for Android

![Screen Shot 2021-12-23 at 12.57.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/e75e9a85-3e5a-9979-51a1-c2895a04ab3e.png)
![Screen Shot 2021-12-23 at 12.57.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/bfe7bf59-05b3-e2a0-b7ae-9136d02a0b0a.png)


#### SAP Mobile Start

今年の SAPPHIRE NOW で紹介されていた SAP Mobile Start が TechEd セッションでも取り上げられていました。SAP Mobile Start は、SAP ビジネスアプリケーションとコンテンツへのモバイルエントリポイントとして機能するネイティブアプリです。確かにアプリを探すのは大変だし、いろんなところから通知が来るのも煩わしいものです。必要なものを全て指先に集めてくれる、そんなアプリみたいです。このアプリは、インストールすればデモを試すことができます。

![Screen Shot 2021-12-23 at 12.56.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/c9c4fea5-ba5c-e703-f1e6-19bed4f7dc63.png)

https://apps.apple.com/us/app/sap-mobile-start/id1540195902

SAPPHIRE NOW をまだ見ていない方はこちらから:point_down:
<iframe height="415" src="https://www.youtube.com/embed/PABptWl4F3E?start=690" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

**Session / Tutorial**
[Experience SAP Fiori for iOS and Android [IIS110]](https://reg.sapevents.sap.com/flow/sap/sapteched2021/portal/page/sessions/session/16303673726730013cK5)

https://developers.sap.com/group.ios-sdk-setup.html

:::note warn
M1 Mac の方は、Xcode を Rosetta モードで起動しましょう
SDK for iOS (Xcode 13.1) は何故かダウンロードできません。13.0 を落としましょう :joy:（2021/12/23 現在）
:::

## Mobile development kit (MDK)

![Screen Shot 2021-12-23 at 13.03.46.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/0440cfb8-30cf-3387-d046-49dea7cfea11.jpeg)

MDK は、メタデータベースのアプリケーション開発プラットフォームで、ワンソースでマルチデバイス対応のアプリを作ることができます。ランタイムにネイティブコードに変換されるメタデータと JavaScript を生成して、アプリを構築します。これを SAP Mobile Services にデプロイすると、エンドユーザーがデバイス上で iOS / Android のネイティブアプリを利用できます。また、同じメタデータをWebにデプロイして、同じアプリケーションをブラウザからでも使えるという仕組みです。開発は、SAP Web IDE である SAP Business Application Studio を使います。MDK の登場により、これまでのハイブリッドアプリのアプローチが徐々に廃止されるようです。

ただし、よくあるネイティブアプリとは少し異なります。App Store からダウンロードするのは、開発したアプリではなく `SAP Mobile Services Client` というアプリです。このアプリで QR コードを読み込み、開発したアプリにアクセスする必要があります。もちろん、生体認証に対応しており、新しいバージョンが利用可能になるとポップアップでお知らせしてくれます。私の iPhone は古いので Touch ID になっていますが :sweat_smile:

https://apps.apple.com/jp/app/sap-mobile-services-client/id1413653544

![mobileserviceclient.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/cc24f0c0-ea28-d0e5-dc16-0bf32988dbb0.jpeg)
![mobileserviceclient.002.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/30bb94ec-8051-dcce-fca6-0e5298d5ad7a.jpeg)
![mobileserviceclient.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/3cb0d640-c88f-33ec-ce89-cc1940baae99.jpeg)

MDK Page or Action Editor が用意されているので、基本的には GUI ベースで開発していきます。
![Screen Shot 2021-12-22 at 20.14.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/04ab541d-2bb2-a060-d29c-3512912bc6ce.png)
ソースコードビューで見ると、こんな感じです:point_down: 
![Screen Shot 2021-12-22 at 20.14.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/dbf13cba-8115-f993-6cce-92dd71cdb4fb.png)
ゴリゴリのネイティブ開発が必要な SAP BTP SDK と比べると、Xcode も面倒なアプリ配布も不要なので、かなりお気軽に開発できます。サクッとデモアプリを作りたい時にも活用できそうです。

### What's New?
[What’s new in Mobile development kit client 6.1](https://blogs.sap.com/2021/12/01/whats-new-in-mobile-development-kit-client-6.1/)

**Session / Tutorial**
[Develop Enterprise-Grade Mobile Apps and Mobile Experiences [DEV162]](https://reg.sapevents.sap.com/flow/sap/sapteched2021/portal/page/sessions/session/16303673691750013urN)

https://github.com/SAP-samples/teched2021-DEV162

## Mobile card kit

![img_1_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/339ef135-c1d8-1fe1-a1d1-ccc01f4c8389.png)

Mobile card kit を使うと、SAP Mobile Cards というウォレットスタイルのモバイルアプリを作ることができます。こちらも MDK と同じで、SAP Business Application Studio を使って開発し、`SAP Mobile Cards` というアプリを通して開発したカードを使うことになります。

https://apps.apple.com/jp/app/sap-mobile-cards/id1168110623

![card.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/91030cdb-7b3b-ac5f-d92a-1a7b3feb248d.jpeg)
![card.002.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/b8e61308-def6-db68-b417-56641503c11d.jpeg)

カードテンプレートが用意されています。承認ワークフローやコンタクトカードなど、用途に応じて選択します。
![Screen Shot 2021-12-23 at 12.11.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/7096fd64-751c-a122-b30d-9531037b5b61.png)
テンプレートは HTML ベースでできているので、Web アプリケーションと同じように開発できます。
![Screen Shot 2021-12-22 at 23.54.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319797/a3c2321d-300f-3b26-a967-b0597c0bcce7.png)

**Tutorial**

https://developers.sap.com/mission.mobile-cards-develop.html

# さいごに

SAP モバイル開発についてまとめてみました。ネイティブアプリから Web ベースで開発できるものまで、幅広くサポートされているのが SAP モバイル開発の魅力です。ほとんどのケースで、デモを試すことができるので、興味のある方はぜひ実際に触ってみてください。

[^1]: [Hello, SAP Mobile Start](https://news.sap.com/2021/08/sap-mobile-start-launch/)