開始移動策略之前的準備工作
本文介紹利用 IBM® Worklight™ 移動應用程序平臺進行跨平臺移動應用程序開發之前需要做的準備工作。這裏記錄了開發公司在移動應用程序開發過程的每一階段需要考慮和執行的關鍵步驟,包括規劃、開發,一直到生產。整個過程在一些重要方面不同於傳統的應用程序開發過程,對這個過程的瞭解有助於企業在跨平臺移動開發的生命週期中適當地組織流程。 本文來自於 IBM WebSphere Developer Technical Journal 中文版。
0 評論:
Gang Chen, 通過認證的高級諮詢 I/T 專家, IBM
Fang Wang, IBM 認證的高級 IT 專家, IBM
Anton Aleksandrov, Worklight R&D 主管, IBM
2013 年 2 月 22 日
簡介
獲得 Worklight
Download IBM Worklight Developer Edition 5.0 現在是免費的,並且沒有使用期限!
移動應用程序已經成爲我們企業生活和個人生活不可或缺的一部分。因此,被幾乎所有地方的很多企業用於聯繫和吸引他們忙碌的客戶、合作伙伴和員工。受到智能手機設備日益增長的市場份額的推波助瀾,很多人期望移動設備的快速採納在百分比上繼續上升,併成爲用戶執行日常任務、訪問信息和完成業務交易的主要渠道。
由於移動應用程序開發在一些方面與傳統企業應用程序開發存在重大區別,所以企業在開始複雜的移動策略之前,需要提前進行規劃,確保所有必要的參與方都理解開發移動應用程序所需的大致流程。爲了提供一些指南,本文將簡要介紹使用 IBM® Worklight™ 移動開發平臺針對移動平臺(比如 iOS 和 Android)開發、部署和發佈應用程序過程中涉及到的八個主要步驟。
1. 發現過程
第一步首先是理解移動業務需求和定義企業移動策略。發現階段在整個移動應用程序開發生命週期中佔有舉足輕重的地位。它通過分析移動的挑戰、目標和約束來設置移動的版本和策略。
例如,需要確定您所需開發的移動應用程序的類型,可以是 Web、原生、混合類型,或者它們的組合。還必須決定支持哪些移動平臺,例如 iOS、Android、Blackberry、Windows® Phone 等。圖 1 突出顯示了定義移動策略時需要考慮的領域。
圖 1. 移動策略考慮因素
發現階段的另一個結果是爲企業確定關鍵移動場景和應用程序支持用例。這些用例或者應用程序理念應該被轉換成原型、線框和移動應用程序腳本。
2. 成爲受支持移動平臺上註冊的開發人員
爲了能夠通過各種移動應用商店(比如 Apple 的 App Store 或 Google Play)部署或發佈應用程序,所有移動平臺都需要開發公司或個人成爲註冊的開發人員。只有註冊的開發人員纔可以向平臺的相關應用商店提交應用程序。因此,您需要在開發生命週期的早期階段註冊到這些平臺計劃。
- iOS:要在實際的 iOS 設備上測試應用程序或者準備在應用商店發佈應用程序,需要作爲單個開發人員或公司在 Apple 的 iOS Developer Program 註冊。註冊需要一定的費用。
- Android:開發人員或公司需要設置一個 Google Play 帳號,才能夠將 Android 應用程序發佈到 Google Play。這是一個三步過程,包括創建開發人員檔案、同意 Developer Distribution Agreement 和使用 Google Checkout 支付註冊費用。
- Blackberry:要將 Blackberry 應用程序發佈到 Blackberry App World,首先需要具有 供應商帳號。沒有供應商帳號的開發人員無法提交應用程序以發佈到 BlackBerry App World。
- Windows Phone:同樣,需要成爲註冊的 Windows Phone 開發人員,才能將應用程序提交到 Windows Phone Marketplace。可以在 Microsoft App Hub 完成註冊。
3. 準備 Worklight 移動應用程序開發環境
正確地設置 Worklight 開發環境是開發和測試移動應用程序過程中的重要環節。總之,您將安裝 Eclipse 和 IBM Worklight Studio 作爲 Worklight 移動應用程序的開發 IDE。還需要安裝受支持的移動平臺 SDK。此外,您可能還希望爲源代碼控制管理設置團隊開發環境。
Worklight Studio 是一個基於 Eclipse 的 IDE;您需要首先在工作站安裝 Eclipse,然後再安裝 Worklight Studio。Worklight Studio 在 Windows、Mac OS 和 Linux® 操作系統上都受支持。如果計劃爲 iOS 環境開發 Worklight 應用程序,您可以在任一這些操作系統上進行開發。但是,由於 Apple 設置的限制,您只能夠在 Mac OS 機器上編譯 iOS 項目。
-
安裝 Eclipse
Worklight Studio 的當前版本需要 Eclipse Indigo (3.7.2)。您可以免費 下載 Eclipse IDE。
-
安裝 IBM Worklight Studio
可以在安裝了 Eclipse 之後安裝 IBM Worklight Studio。有三個版本的 Worklight Studio 可用:Developer(您可以免費下載來開始開發移動應用程序)、Consumer 和 Enterprise。Worklight Studio 可以從 Eclipse Marketplace 安裝,或者使用 IBM Installation Manager 或作爲 Eclipse 插件安裝。有關安裝的詳細信息,請參閱 IBM Worklight 產品庫。
-
安裝移動 SDK
如果計劃利用 Worklight 開發混合或原生移動應用程序,您需要爲相關的受支持移動平臺安裝和配置 SDK(和開發 IDE)。根據平臺的不同,安裝和配置過程也會不同,下面是對於一些流行的移動平臺會遇到的步驟。
- iOS:必須 下載 Xcode,這是一個用於開發 iOS 和 Mac 應用程序的 Apple IDE。您可以使用 Xcode 來管理測試設備,使用 iPhone 或 iPad 仿真器,以及在 iPhone 或 iPad 設備上安裝應用程序。
- Android:必須安裝 Android SDK 和 針對 Eclipse 的 Android Development Tools (ADT) 插件。Android SDK 提供使用 Java™ 編程語言在 Android 平臺上開發應用程序時所需的工具和 API。針對 Eclipse 的 ADT 插件是一個集成環境,您可以在該環境中構建豐富的 Android 應用程序。
- BlackBerry:WebWorks 應用程序開發需要您下載和安裝 Blackberry Ripple Emulator、Blackberry WebWorks SDK 和 Blackberry Simulator。
- Windows Phone:必須下載和安裝 Microsoft Visual Studio 2010/2012 和 Windows Phone SDK。還必須在開發環境中下載和安裝 Zune 軟件,以在 Windows Phone 手機上運行您開發的應用程序。
-
準備團隊開發環境
使用諸如 IBM Rational® Team Concert 的軟件準備團隊開發環境對於管理高度動態的移動應用程序開發是一種很好的做法。但是請記住,在利用源代碼控制系統管理 Worklight 應用程序時,不應該將 Worklight 項目生成的一些文件添加到源代碼控制系統(參見 參考資料)。
4. 設計和開發移動應用程序
現在進入最有趣的部分。設計人員和開發人員合作,使用 Worklight 移動平臺和原生移動開發工具構建移動應用程序。
還跟在 Worklight Studio 中開發 Worklight 支持的應用程序一樣,也是使用熟悉的 Web 技術(比如 HTML、CSS 和 JavaScript™)進行開發,也支持最新的 HTML5 和 CSS3 標準。您可以對跨環境 UI 服務(比如訪問移動設備的標籤欄或菜單)使用 Worklight 客戶端 SDK。開發人員也可以靈活選用自己喜歡的 JavaScript 庫和 UI 工具包。
Worklight 並不僅僅將開發過程侷限爲用 Web 技術編寫代碼。它爲目標移動平臺生成原生應用程序項目,以便編譯原生程序包,通過應用商店進行發佈。特定於設備的原生代碼可以添加到這些生成的原生應用程序項目,並與使用 Web 技術編寫的代碼組合在一起。
5. 開發環境中的單元測試
在開發過程中,要及早地、經常地規劃移動應用程序單元測試。這主要是因爲移動測試比較麻煩,單個應用程序就面對着範圍廣泛的設備和平臺。下面是您可以在開發環境中用於 Worklight 應用程序的一些測試方法和工具。IBM Worklight Studio 帶有一個嵌入式的測試服務器,可以簡化單元測試。
-
移動瀏覽器仿真器和應用程序預覽
IBM Worklight Server 提供一個應用程序預覽服務,讓您能夠在桌面 Web 瀏覽器中模擬移動 Web 工件。應用程序預覽也支持 Worklight 客戶端 API 的模擬。可從 Worklight Studio 測試服務器控制檯使用應用程序預覽。
在 Worklight Studio 開發環境中,可以使用移動瀏覽器仿真器預覽和測試移動應用程序。仿真器包含一個用於模擬目標設備的框架(frame)。您可以切換這個框架,以模擬 Android、iPad、iPhone、Blackberry 及其他移動設備的不同的屏幕分辨率、窗體因子和顯示方向。只有在啓用了 com.ibm.imp.worklight.simulation.ui 插件時,該預覽功能纔可用。Apache Cordova API 模擬用戶交互打包在移動瀏覽器仿真器中。通過 Cordova API,可以模擬很多特定於設備的特性(比如地理定位、指南針、電池,等等)。
利用移動瀏覽器仿真器對應用程序進行單元測試非常方便,無需安裝來自設備供應商的原生 SDK。也具有快速的應用程序刷新性能,這使得重複測試更爲高效。但是 UI 模擬並不總是完全匹配所模擬的物理設備上的實際 UI 外觀,尤其是文本和其他元素的間距。因此,這種類型的單元測試最適合於整個框架和部件位置的早期 UI 測試。它對於測試移動應用程序中的邏輯流也是一個有效的工具。
在桌面 Web 瀏覽器環境中進行測試時,您可以訪問各種流行的調試工具,比如 Chrome 的內置調試工具和 Firefox 的 Firebug。利用這些工具可以在 JavaScript 中設置斷點,查看應用於生成的 HTML 代碼的 CSS 規則,以及查看本地應用程序與服務器之間的網絡流量。也強烈推薦使用基於 webkit 的瀏覽器,比如 Chrome 和 Safari。另一款有用的移動 Web 應用程序調試工具 Weinre 也值得考慮,這是一款開源工具。
-
移動 SDK 仿真器
這種類型的單元測試涉及到一個原生 移動 SDK 仿真器。當 Worklight 爲移動平臺生成的原生項目啓動時(通過 Worklight Studio 或者供應商開發工具),將會彈出一個原生 OS 窗口,該窗口運行具有最新移動應用程序代碼的仿真器。相對於試圖模擬很多設備的特徵的移動瀏覽器仿真器來說,移動 SDK 仿真器提供一個模擬的 UI,這幾乎相當於實際設備的 UI。但是,諸如觸摸響應時間之類的應用程序性能跟實際設備還是會稍有差異。這是因實際設備和開發工作站的計算能力不同造成的。對於最實際的用戶體驗測試,必須在實際移動設備上測試應用程序。
-
實際設備
必須在目標設備上進行移動應用程序的最終測試,以確保應用程序 UI 和性能跨所有目標設備都保持一致。必須確保實際設備與開發工作站處於同一無線網絡,以便設備可以在 Worklight Studio 中訪問嵌入的 Worklight 測試服務器。
-
當 Android 設備通過 USB 數據線 連接到計算機時,Eclipse
ADT 插件會自動識別它,並試圖向它部署應用程序。
對於未列出驅動程序的 Android 設備(比如 Kindle Fire),內置在 Worklight 生成的原生 Android 項目中的 .apk 文件將通過 USB 連接下載到設備。您可以使用設備安裝工具在設備上安裝 apk 文件。
- 要將一個 iOS 應用程序部署到真正的 iOS 設備上,必須具有配置文件(provisioning profile),您在參與 Apple iOS Developer Program 時會收到該文件。您通常從一個開發配置文件開始,它讓 Xcode 能夠識別通過 USB 數據線連接的 iOS 設備並在設備上安裝應用程序。在後續階段(比如集成測試階段或生產階段),您將過渡到一個發佈配置文件,它允許您構建、歸檔和打包應用程序,使之成爲一個具有正確簽名的 .ipa 文件,然後可以通過 iTunes 或應用程序中心部署到設備上。
-
當 Android 設備通過 USB 數據線 連接到計算機時,Eclipse
ADT 插件會自動識別它,並試圖向它部署應用程序。
有關 Worklight 包含的應用程序中心的詳細信息,請參見 參考資料。
6. 遠程 Worklight 服務器環境中的集成測試
要利用完全後端企業系統集成測試您的移動應用程序,應用程序需要安裝在一個集成或 QA 環境中,該環境已經對任何經授權的測試者可用。
IBM Worklight Server 只在 Worklight 的消費者和企業版本中可用。
-
準備集成環境
集成和 QA 測試通常在遠程 Worklight 服務器環境中執行。IBM Worklight Server 使用一個數據庫來存儲推通知信息、用於報告和分析的統計信息以及服務器在運行時所需的元數據。因此,環境的準備既需要 Worklight 服務器設置,也需要數據庫設置。
IBM Worklight Server 的安裝通過 IBM Installation Manager 完成(如果在安裝期間連接到了 Internet,那麼 IBM Installation Manager 可以爲您下載任何最新的修訂包)。服務器安裝嚮導自動配置應用程序服務器和數據庫,形成一個全功能的 IBM Worklight Server。您必須選擇使用哪種數據庫和應用程序服務器。可選的數據庫包括:
- IBM DB2 V9.7 或更高版本
- MySQL v5.1 或更高版本
- Oracle v11g 或更高版本
- Apache Derby(包括在安裝映像中,僅用於測試)
可選的應用程序服務器包括:
- WebSphere Application Server Liberty Profile V8.5 或更高版本(包括在安裝映像中)
- WebSphere Application Server V7.0 或更高版本
- Apache Tomcat v7 或更高版本
有關詳細的安裝指南,請參見 Worklight Administration Guide。
-
準備 Worklight 項目用於部署
本地開發環境和集成環境之間通常存在一些配置差異。在爲集成環境構建項目之前,需要調整這些配置,以反映遠程環境設置。需要調整的典型設置包括:
- worklightServerRootURL,它應該反映遠程 Worklight Server 上的協議、主機、端口和上下文設置。
- 數據庫類型、JDBC URL、用戶名和密碼。
- 任何其他可能不同的屬性,比如安全特性。
對 Worklight 項目的配置做了全部所需的修改之後,就可以構建應用程序和適配器了。該任務創建一個 WAR 文件,該文件可以用於將項目配置部署到遠程服務器。Worklight 應用程序和基於 JavaScript 的適配器代碼被分別打包成 .wlapp 和 .adapter 文件。
-
將 Worklight 應用程序和適配器部署到集成環境
在選擇的應用程序服務器上,通過以下標準的企業應用程序安裝過程,生成的 WAR 文件可以部署到遠程集成服務器。部署了 WAR 文件之後,您可以通過導航到 http://your-remote-server:server-port/<context-root-name>/console,在瀏覽器中打開 Worklight 控制檯。在控制檯中,您可以直接從 Worklight 項目路徑上載和部署生成的 .wlapp 和 .adapter 文件。現在,可以在集成環境中測試您的移動應用程序了。
-
集成/QA 環境中的測試
您可以使用 第 5 步 中描述的三種類型的測試方法和工具,來測試部署到集成環境的移動應用程序。但是,由於移動瀏覽器仿真器在遠程 Worklight Server 上不可用,所以在 Worklight 控制檯上預覽移動應用程序的不同環境時,將沒有特定於設備的顯示,所有環境都預覽爲移動 Web 應用程序。因此,集成測試中不太使用這種類型的測試。
無論使用移動 SDK 仿真器還是實際的移動設備,經授權的測試者都將需要原生打包文件(.apk 或 .ipa 文件)來初始安裝移動應用程序。這些原生打包文件可以手動或者通過 Worklight 產品包含的應用程序中心發佈。
在測試的後續迭代過程中,如果移動應用程序不具有原生代碼更新,則不需要在設備上安裝新的 .apk 或 .ipa 文件。通過 Worklight Server 的直接更新特性,當應用程序在設備上再次啓動時,應用程序的新版本將被自動下載到設備。
如果需要指向不同的遠程服務器,那麼可以在設備或仿真器上直接更新服務器根 URL:
- Android:可以在運行應用程序時按菜單鍵訪問該設置。
- iOS:可以在 iOS 一般設置中的應用程序條目下訪問該設置。
7. 部署到生產
對於 Worklight 服務器端組件,部署到生產環境跟部署到集成環境非常類似。手動構建過程可由一個 Ant 腳本取代,從而使構建過程更爲簡單。(參見 Worklight Administration Guide。)
圖 2 展示了生產環境中一個 Worklight 實例的典型拓撲。
圖 2. 生產環境中的 Worklight 實例
注意,集羣環境中設置有幾個 Worklight Server,它們共享相同的數據庫。.wlapp 或 .adapter 文件部署到集羣中的一個服務器上時,就會自動同步到其他服務器。從集羣中的服務器刪除應用程序或適配器時也如此。但是,.war 文件是應用程序服務器的定製部分,因此,它必須手動部署到集羣中的每個服務器。
在 Worklight 移動應用程序被部署到生產環境的同時,應該裝配和發佈原生應用程序包,以便發佈到公共環境。對於 iOS 設備,發佈過程通常需要較長時間,因爲 Apple 要對發佈到其 App Store 的應用程序進行審查和批准。因此,一定要提前足夠的時間開始進行原生包提交。
對於 Android 設備,不存在審查和批准過程,所以發佈過程相當地快。
參見 參考資料,獲取平臺發佈指南。
下面的鏈接提供了關於 Apple 發佈過程的指南:https://developer.apple.com/appstore/guidelines.html 下面的鏈接提供了關於發佈過程的指南:http://developer.android.com/distribute/googleplay/publish/preparing.html。
8. 管理 Worklight 移動應用程序
Worklight 移動應用程序管理包括兩部分:
- 通過平臺應用商店管理的原生包。
- 通過 Worklight 控制檯打包和部署的應用程序 Web 資源。
對於原生包更新管理,每個應用商店都有其自己的指導方針(參見 參考資料)。對於 Worklight 應用程序 Web 資源管理,有好幾個不錯的 Worklight 特性,讓您能夠與用戶一起控制應用程序版本。
-
直接更新:將應用程序更新發布到移動設備
使用直接更新,組織可以在應用程序啓動時從 Worklight Server 直接更新他們部署的 HTML5 和混合應用程序的 Web 內容。應用程序在連接到 Worklight Server 時,會自動檢測新的更新,並在接收到用戶確認後開始下載新部署的資源。該選項對 iPhone、iPad 和 Android 應用程序可用。
-
鎖定應用程序:防止爲應用程序重新部署 Web 資源
如果想要防止開發人員或管理人員錯誤地更新應用程序,您可以在 Worklight 控制檯鎖定它。該選項對 iPhone、iPad 和 Android 應用程序可用。
-
拒絕對較老應用程序版本的訪問
由於逐步淘汰策略或者較老版本中出現的安全問題,有時候有必要拒絕用戶對特定應用程序版本的訪問。在控制檯,您可以拒絕對特定移動操作系統上某個應用程序特定版本的訪問,並向用戶提供一條定製消息。在消息中,您還可以指定應用程序新版本的 URL(通常在適當的應用商店)。用戶接收到消息,將強制關閉應用程序,或者升級到最新版本。
-
在應用程序啓動時顯示通知消息
類似地,您可以設置一條通知消息,在應用程序啓動時顯示給用戶,但是不導致應用程序退出。當您想要嚮應用程序用戶通知臨時消息時(比如說計劃系統停機時間),這種類型的消息很有用。
-
控制應用程序的真實性測試
應用程序首次連接到 Worklight Server 時,服務器將測試應用程序的真實性。這種測試有助於保護應用程序免遭一些惡意軟件和重新打包攻擊。該選項對 iPhone、iPad 和 Android 應用程序可用。您需要配置應用程序,以支持 真實性測試。
結束語
本文介紹了使用 IBM 移動應用程序開發平臺開發跨平臺移動應用程序時涉及到的基本步驟。還介紹了移動應用程序開發人員通常會面臨的很多特定困難,以及 IBM Worklight 產品各種專門用於解決這些困難的特性。關於移動應用程序開發過程的這篇短文不僅有望幫助您正確規劃您的移動策略,而且可以加速您的開發過程。