在這裡,您已經準備好要來進行開發跨平台 ( Android, iOS, UWP ) 的行動應用程式開發,並且在行動應用程式中,將會呼叫企業後端所提供的 Web API 服務,以便讓使用者可以透過行動裝置,進行差旅費用的申請;這是企業內部很典型的一個應用程式,接下來就是需要開始建立專案與進行相關設定。
在這個階段的練習,您將會學會底下的 Xamarin.Forms 的開發技術:
- 使用 Visual Studio 2015 增加 Prism 專案樣版
- 建立 Prism for Xamarin.Forms 的專案
- 升級與安裝必要的套件(NuGet Package)或者插件(Plug-ins)
- 建立專案資料夾
這篇章節的練習專案的原始程式碼將會存放在 GitHubhttps://github.com/vulcanlee/XFAppSample/tree/master/XFDoggy/1.BuildProject 內,在這個目錄下,會有兩個目錄:
Starter這個目錄將會存放當您要進行練習開發這個專案之前,Visual Studio 專案的原始檔案。 Completed這個目錄將會存放當您要進行練習開發這個專案完成之後,Visual Studio 專案的原始檔案。
使用 Visual Studio 2015 增加 Prism 專案樣版
若您的 Visual Studio 開發環境中,尚未安裝
Prism Template Pack 擴充功能,請參考底下步驟,進行安裝這個擴充功能。安裝 Prism Template Pack
- 首先,開啟 Visual Studio 2015
- 點選功能表
工具>擴充功能與更新選項 - 在
擴充功能與更新對話窗內,點選線上>Visual Studio 組件庫 - 在右上方文字輸入盒內,輸入
Prism Template Pack,並且按下Enter按鍵 - 點選搜尋出來的
Prism Template Pack項目,點選下載按鈕,安裝Prism Template Pack組件到您的Visual Studio 2015 內;安裝完成後,您需要點選立即重新啟動按鈕,讓您的 Visual Studio 2915 重新啟動之後,這次的安裝才會生效。

建立 Prism for Xamarin.Forms 的專案
- 當 Visual Studio 重新啟動之後,點選功能表
檔案>新增>專案 - 在
新增專案對話窗內,點選範本>Visual C#>Prism>Prism Unity App (Forms),並且在底下名稱欄位中,輸入XFDoggy最後,點選確定按鈕。 - 接著,會出現
Prism for Xamarin.Forms - Project Wizard這個對話窗,請在這個對話窗中,勾選Android/iOS/UWP這三個檢查盒,最後點選Create按鈕,以便產生這三個類型的專案。 - 當專案建立到一半,若您的開發環境還沒有建置與設定完成 Mac 電腦與 Xamarin Studio for Mac 系統,此時會看到
Xamarin Mac Agent Instructions對話窗出現,這個對話窗是要提醒您進行與 Mac 電腦連線設定,這是因為,您無法在 Windows 作業系統進行 iOS 相關應用程式的建立與設計工作,而是需要透過 Mac 電腦安裝的 XCode 來協助您完成這些 iOS 應用程式的建立工作。不過,這不影響您繼續開發 Xamarin.Forms 的應用程式,只不過此時,您無法編譯與執行 iOS 的應用程式。 - 接著會看到
新的通用Windows專案對話視窗,此時,您只需要按下確定按鈕即可,此時,專案精靈會繼續完成相關平台的專案建立工作。 - 最後,整個新的 Xamarin.Forms 專案就建立完成了。
升級與安裝必要的套件(NuGet Package)或者插件(Plug-ins)
在這個專案內,將會使用到許多不同的 NuGet 套件 (Package),因此,您需要先在這裡把這些套件安裝到所有的專案內,方便日後開發作業可以更加順利。
- 滑鼠右擊方案
XFDoggy,選擇管理方案的 NuGet 套件,在NuGet - 解決方案頁面中,切換到瀏覽標籤頁次內,請在文字輸入盒中輸入,Behaviors.Forms並且開始搜尋這個套件,並且安裝到所有的專案內。使用這個套件,可以讓您在宣告 XAML 定義的時候,使用 XAML 提供的行為特性功能,例如,可以綁定當某個事件發生的時候,將會執行某個指定的 ICommand。這項功能對於有在開發 WPF 或者 Windows UWP 的開發者而言,必定不陌生,因為,在這些環境之下,可以使用 Blend SDK 所提供的各種不同行為(Behaviors)功能,來擴增或者豐富您的 XAML 宣告。
- 滑鼠右擊方案
XFDoggy,選擇管理方案的 NuGet 套件,在NuGet - 解決方案頁面中,切換到瀏覽標籤頁次內,請在文字輸入盒中輸入,Newtonsoft.Json並且開始搜尋這個套件,並且安裝到所有的專案內。'Newtonsoft.Json' 這個套件,可以讓您進行 JSON 物件的 序列化 (Serialization) 或者 反序列化 (Deserialization)) 的操作;這項功能將會提供當從網路取得開發資料的 JSON 定義資料之後,接著,便可以將這些 JSON 定義文字轉換成為 .NET 的物件。
- 滑鼠右擊核心PCL專案
XFDoggy,選擇管理 NuGet 套件,在NuGet - 解決方案頁面中,切換到瀏覽標籤頁次內,請在文字輸入盒中輸入,Microsoft.Net.Http並且開始搜尋這個套件,並且安裝到核心PCL專案內;在安裝過程中,若看到接受授權對話窗,請點選我接受按鈕
由於在撰寫這份文件的時候 (2016.09.19),本機電腦 Visual Studio 的 Xamarin Toolkit 已經升級到 Xamarin 4.2 版,而透過這個Xamarin版本再產生 核心PCL專案 的時候,其 PCL TargetFrameworkProfile 已經採用了Profile259(前一個 Xamarin 版本,使用的Profile111);而在Profile259的 PCL專案內,是沒有這個System.Net.Http命名空間。因此,需要額外安裝這個Microsoft.Net.HttpNuGet 套件,以便可以使用HttpClient這樣的類別。想要查看您的 PCL專案的TargetFrameworkProfile是哪個版本,可以先使用滑鼠右擊 核心PCL XFDoggy 專案,接著選取卸載專案,再度使用滑鼠右擊 核心PCL XFDoggy 專案,選取編輯 XFDoggy.csproj這個選項。在下面截圖中,將會看到紅色框線處標示的,就是這個 PCL 的 Profile 版本
有關更多不同 PCL Profile 資訊,可以參考這個網址http://portablelibraryprofiles.apps.stephencleary.com/
建立專案資料夾
核心 PCL 專案
請在 核心 PCL 專案內依序建立底下的資料夾
- 滑鼠右擊
XFDoggy核心PCL 專案節點,選擇加入>新增資料夾,在新產生的資料夾內,填入資料夾名稱Helps - 滑鼠右擊
XFDoggy核心PCL 專案節點,選擇加入>新增資料夾,在新產生的資料夾內,填入資料夾名稱Infrastructure - 滑鼠右擊
XFDoggy核心PCL 專案節點,選擇加入>新增資料夾,在新產生的資料夾內,填入資料夾名稱Models - 滑鼠右擊
XFDoggy核心PCL 專案節點,選擇加入>新增資料夾,在新產生的資料夾內,填入資料夾名稱Services
平台專案
請在每個平台的專案下,依序建立底下資料夾
- 滑鼠右擊
XFDoggy.Droid專案節點,選擇加入>新增資料夾,在新產生的資料夾內,填入資料夾名稱Infrastructure - 滑鼠右擊
XFDoggy.iOS專案節點,選擇加入>新增資料夾,在新產生的資料夾內,填入資料夾名稱Infrastructure - 滑鼠右擊
XFDoggy.UWP專案節點,選擇加入>新增資料夾,在新產生的資料夾內,填入資料夾名稱Infrastructure - 滑鼠右擊
XFDoggy.UWP專案節點內的Assets資料夾,選擇加入>新增資料夾,在新產生的資料夾內,填入資料夾名稱Images
複製圖片檔案
- 請下載底下連結中的圖片檔案到本機檔案總管內的某個資料夾內
- 請拖拉這些圖片檔案到
XFDoggy.Droid專案 >Resources>drawable目錄下 - 請拖拉這些圖片檔案到
XFDoggy.iOS專案 >Resources目錄下 - 請拖拉這些圖片檔案到
XFDoggy.UWP專案 >Assets>Images目錄下
第一次啟動專案測試
- 滑鼠右擊
XFDoggy.Droid專案節點,選擇設定為起始專案 - 按下
F5按鍵,該使執行這個 Android 專案,看看是否可以正常執行。 - 若可以正常編譯,但是執行的時候出現了錯誤訊息:
java.lang.OutOfMemoryError- 此時請滑鼠雙擊
XFDoggy.Droid專案Properties節點 - 在
XFDoggy.Droid頁面,點選Android Options>Advanced - 在
Java Max Heap Size欄位內輸入1G - 重新執行一次

沒有留言:
張貼留言