使用SAP雲平臺Mobile Service開發移動應用

這是Jerry 2020年的第33篇文章,也是汪子熙公衆號總共第216篇原創文章。

Jerry之前的文章 SAP移動應用解決方案之一:HTML5應用 + Cordova = 平臺相關的混合應用,曾經介紹了Cordova這個開源框架是如何應用到SAP Cloud for Customer的移動應用開發上的。

Jerry的另一篇文章 如何使用JavaScript開發AR(增強現實)移動應用,則介紹了目前移動應用開發的另一種主流技術:React-Native. 無論是Cordova還是React-Native,使用的編程語言都是JavaScript,都能實現“一次編寫,跨平臺運行”的效果。

今天Jerry要介紹的是SAP推出的另一種移動應用開發方式,採用SAP Cloud Platform Mobile Service實現。任何對此方案感興趣的朋友,都可以通過免費申請的SAP Cloud Platform測試帳號,來體驗其用法。

SAP雲平臺Mobile Service底層基於NativeScript,另一個使用JavaScript構建原生移動應用的開源框架:

https://www.nativescript.org/

前文Jerry首先提到的Cordova技術,構建而成的移動應用又被稱爲Hybrid(混合)應用,該應用的本質是一個運行在移動平臺Webview控件裏的網頁應用;而React-Native顧名思義,構建出的是一個真正的原生移動應用,其使用的基礎UI組件與用Object C或Java編寫的原生應用比較並無區別,只不過這些組件現在是由Web開發人員通過JavaScript語言和React操作,最後被編譯器轉換成原生應用罷了。

而NativeScript框架的工作原理,和React-Native又有所不同。React-Native通過Bridge概念實現了JavaScript和移動平臺原生API的雙向交互,而NativeScript編寫的JavaScript代碼,運行在NativeScript運行時(Runtime),通過該運行時環境同移動平臺原生API交互。NativeScript運行時實際是一個JavaScript虛擬機,在Android平臺上基於Google V8引擎,在iOS上基於WebKit JavaScriptCore這個實現。

幸運的是,SAP Cloud Platform通過引入Mobile Development Kit(下文簡稱MDK)的概念,已經把這些細節給我們封裝好了。對工作在SAP雲平臺上的移動應用開發人員來說,MDK就是Android或者iOS平臺上的一個客戶端,後續Jerry會介紹如何安裝。

有了SAP MDK的幫助,現在我們不需要Android Studio或者XCode,直接用SAP WebIDE就可以進行移動應用開發了。下面Jerry利用SAP雲平臺Mobile Service創建一個新的移動應用,以此讓大家大致瞭解開發的流程。

登錄SAP Cloud Platform,點Support進入Mobile Service的控制檯:

新建一個應用:

維護應用的ID和名稱:

創建之後,可以給這個名稱爲Jerry MDK Demo的應用分配Feature(特性):

這些特性可以理解成SAP對移動應用需要實現的功能抽象出的一些最佳實踐,分配了列表裏這些特性後,我們用WebIDE生成的移動應用工程項目,將自動包含對應的模板實現:

舉個例子,回憶一下我們開發SAP UI5應用的流程:通常情況下,我們不會一上來就直接連後臺的OData服務,而是通過UI5提供的Mock Server,先消費本地的Sample數據,待前端頁面開發結束之後,再連接後臺OData服務進行測試。

SAP Cloud Platform Mobile Service也提供了一個類似SAP UI5 Mock服務器的特性,即Mobile Sample OData ESPM. ESPM即Enterprise Sales Procurement Model的縮寫, 包含SalesOrder,Customers,Products等一系列業務數據的集合。


在Mobile Service控制檯裏給應用分配好需要的特性之後,我們來到SAP WebIDE,啓用Mobile Service Development Tools這個擴展:

擴展被啓用之後,在SAP WebIDE左側會多出一個MDK Development的標籤:

在此處創建一個新的MDK項目:


在紅色高亮字段的下拉菜單裏,選擇剛纔在Mobile Service控制檯裏創建並分配了特性的應用ID:com.sap.jerry.demo:

如果要連接第三方OData服務,將其地址維護到SAP雲平臺的Destination裏。

成功解析出OData服務的元數據:

SAP WebIDE Mobile Service Development Tools擴展自動生成的項目如下圖所示,其中Application.app,這個文件,Jerry把它類比成Android項目的manifest.xml配置文件:

如何將這個WebIDE裏的工程以移動應用的方式部署到移動設備上呢?右鍵菜單裏選擇MDK Deploy and Activate:


在WebIDE控制檯裏看到部署成功的消息:

部署成功後會生成一個二維碼,此時如果移動設備上已經安裝了SAP Mobile Services Client,掃描該二維碼,會自動在設備上打開WebIDE裏剛剛部署好的應用。

從Google Play裏對SAP Mobile Services Client的介紹,我們能看出其工作原理:在SAP WebIDE裏創建的MDK項目,生成的實際是json格式的元數據;使用移動設備上安裝的SAP Mobile Services Client連接SAP雲平臺Mobile Service之後,前者會從後者接收這些應用元數據,繪製出應用的UI和完成初始化動作。

Jerry用的三星手機,安裝SAP Mobile Services Client後,掃描二維碼,彈出提示窗口,輸入SAP雲平臺的用戶名和密碼登錄:

之後點擊Get Started:

SAP Mobile Services Client會連接SAP雲平臺Mobile Service,下載WebIDE裏創建好的應用元數據:

並完成初始化操作。

因爲Jerry在WebIDE裏沒有在頁面上繪製任何控件,只定義了Caption,所以這個應用打開後界面上什麼也沒有,僅僅顯示出我定義的頁面標題:

如果點擊Try the demo,能看到之前提到的ESPM sample數據展示在設備上的效果如下:



希望本文能夠讓大家對如何使用SAP雲平臺Mobile Service開發移動應用的流程有一個最基礎的瞭解,感謝閱讀。

更多閱讀

要獲取更多Jerry的原創文章,請關注公衆號"汪子熙":

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章