這是Jerry 2020年的第33篇文章,也是汪子熙公眾號總共第216篇原創(chuàng)文章。
Jerry之前的文章 SAP移動應用解決方案之一:HTML5應用 + Cordova = 平臺相關的混合應用,曾經(jīng)介紹了Cordova這個開源框架是如何應用到SAP Cloud for Customer的移動應用開發(fā)上的。
Jerry的另一篇文章 如何使用JavaScript開發(fā)AR(增強現(xiàn)實)移動應用,則介紹了目前移動應用開發(fā)的另一種主流技術:React-Native. 無論是Cordova還是React-Native,使用的編程語言都是JavaScript,都能實現(xiàn)“一次編寫,跨平臺運行”的效果。
今天Jerry要介紹的是SAP推出的另一種移動應用開發(fā)方式,采用SAP Cloud Platform Mobile Service實現(xiàn)。任何對此方案感興趣的朋友,都可以通過免費申請的SAP Cloud Platform測試賬號,來體驗其用法。
SAP云平臺Mobile Service底層基于NativeScript,另一個使用JavaScript構建原生移動應用的開源框架:
https://www.nativescript.org/
前文Jerry首先提到的Cordova技術,構建而成的移動應用又被稱為Hybrid(混合)應用,該應用的本質是一個運行在移動平臺Webview控件里的網(wǎng)頁應用;而React-Native顧名思義,構建出的是一個真正的原生移動應用,其使用的基礎UI組件與用Object C或Java編寫的原生應用比較并無區(qū)別,只不過這些組件現(xiàn)在是由Web開發(fā)人員通過JavaScript語言和React操作,最后被編譯器轉換成原生應用罷了。
而NativeScript框架的工作原理,和React-Native又有所不同。React-Native通過Bridge概念實現(xiàn)了JavaScript和移動平臺原生API的雙向交互,而NativeScript編寫的JavaScript代碼,運行在NativeScript運行時(Runtime),通過該運行時環(huán)境同移動平臺原生API交互。NativeScript運行時實際是一個JavaScript虛擬機,在Android平臺上基于Google V8引擎,在iOS上基于WebKit JavaScriptCore這個實現(xiàn)。
幸運的是,SAP Cloud Platform通過引入Mobile Development Kit(下文簡稱MDK)的概念,已經(jīng)把這些細節(jié)給我們封裝好了。對工作在SAP云平臺上的移動應用開發(fā)人員來說,MDK就是Android或者iOS平臺上的一個客戶端,后續(xù)Jerry會介紹如何安裝。
有了SAP MDK的幫助,現(xiàn)在我們不需要Android Studio或者XCode,直接用SAP WebIDE就可以進行移動應用開發(fā)了。下面Jerry利用SAP云平臺Mobile Service創(chuàng)建一個新的移動應用,以此讓大家大致了解開發(fā)的流程。
登錄SAP Cloud Platform,點Support進入Mobile Service的控制臺:
新建一個應用:
維護應用的ID和名稱:
創(chuàng)建之后,可以給這個名稱為Jerry MDK Demo的應用分配Feature(特性):
這些特性可以理解成SAP對移動應用需要實現(xiàn)的功能抽象出的一些最佳實踐,分配了列表里這些特性后,我們用WebIDE生成的移動應用工程項目,將自動包含對應的模板實現(xiàn):
舉個例子,回憶一下我們開發(fā)SAP UI5應用的流程:通常情況下,我們不會一上來就直接連后臺的OData服務,而是通過UI5提供的Mock Server,先消費本地的Sample數(shù)據(jù),待前端頁面開發(fā)結束之后,再連接后臺OData服務進行測試。
SAP Cloud Platform Mobile Service也提供了一個類似SAP UI5 Mock服務器的特性,即Mobile Sample OData ESPM. ESPM即Enterprise Sales Procurement Model的縮寫, 包含SalesOrder,Customers,Products等一系列業(yè)務數(shù)據(jù)的集合。
在Mobile Service控制臺里給應用分配好需要的特性之后,我們來到SAP WebIDE,啟用Mobile Service Development Tools這個擴展:
擴展被啟用之后,在SAP WebIDE左側會多出一個MDK Development的標簽:
在此處創(chuàng)建一個新的MDK項目:
在紅色高亮字段的下拉菜單里,選擇剛才在Mobile Service控制臺里創(chuàng)建并分配了特性的應用ID:com.sap.jerry.demo:
如果要連接第三方OData服務,將其地址維護到SAP云平臺的Destination里。
成功解析出OData服務的元數(shù)據(jù):
SAP WebIDE Mobile Service Development Tools擴展自動生成的項目如下圖所示,其中Application.app,這個文件,Jerry把它類比成Android項目的manifest.xml配置文件:
如何將這個WebIDE里的工程以移動應用的方式部署到移動設備上呢?右鍵菜單里選擇MDK Deploy and Activate:
在WebIDE控制臺里看到部署成功的消息:
部署成功后會生成一個二維碼,此時如果移動設備上已經(jīng)安裝了SAP Mobile Services Client,掃描該二維碼,會自動在設備上打開WebIDE里剛剛部署好的應用。
從Google Play里對SAP Mobile Services Client的介紹,我們能看出其工作原理:在SAP WebIDE里創(chuàng)建的MDK項目,生成的實際是json格式的元數(shù)據(jù);使用移動設備上安裝的SAP Mobile Services Client連接SAP云平臺Mobile Service之后,前者會從后者接收這些應用元數(shù)據(jù),繪制出應用的UI和完成初始化動作。
Jerry用的三星手機,安裝SAP Mobile Services Client后,掃描二維碼,彈出提示窗口,輸入SAP云平臺的用戶名和密碼登錄:
之后點擊Get Started:
SAP Mobile Services Client會連接SAP云平臺Mobile Service,下載WebIDE里創(chuàng)建好的應用元數(shù)據(jù):
并完成初始化操作。
因為Jerry在WebIDE里沒有在頁面上繪制任何控件,只定義了Caption,所以這個應用打開后界面上什么也沒有,僅僅顯示出我定義的頁面標題:
如果點擊Try the demo,能看到之前提到的ESPM sample數(shù)據(jù)展示在設備上的效果如下:
希望本文能夠讓大家對如何使用SAP云平臺Mobile Service開發(fā)移動應用的流程有一個最基礎的了解,感謝閱讀。
更多閱讀