Xamarin.Forms 快速入門
Xamarin.Forms 快速入門
Xamarin.Forms Quick Start
關於本書
這本書能提供什麼
在這本書裡面,將會提供 16 章的內容,分別是
- 開發前的安裝、設定準備工作 (共3章)
對於Xamarin.Forms 開發新手,第一個學習卡關將會是如何安裝與設定一個可以進行Xamarin.Forms 的開發環境;在這個部分將會詳細說明如何安裝與設定Visual Studio 2019 ,使其可以順利的進行Xamarin.Forms 的開發工作。
- 使用C# 程式語言來直接開發Xamarin.Forms App
說明如何僅使用C# 程式語言,就可以開發出Xamarin.Forms 的應用程式的開發過程。
- 使用XAML 標記宣告語言來開發Xamarin.Forms App
說明使用XAML 宣告標記語言來進行頁面畫面的內容宣告,相關的商業邏輯則是使用程式碼後置Code Behind 的方式來開發。
- 資料綁定Data Binding
資料綁定Data Binding是在Xamarin.Forms 開發上,最為重要的技術,對於資料綁定的類型共有三種,這裡將會針對一般資料物件類型的綁定設計方式來說明如何使用。
- 更多資料綁定的用法
這裡將會繼續介紹更多關於資料綁定的不同使用方式。
- 數值轉換器Value Converter
對於資料綁定的設計方法下,數值轉換器的應用扮演者相當重要的角色,透過設計不同的數值轉換器類別可以設計出許多可重複使用的商業邏輯,並且輕鬆地將不同型別的綁定目標與綁定來源屬性串接在一起。
- 命令綁定Command Binding
命令綁定是資料綁定的第二種類型,透過命令綁定可以不再需要使用以往需要透過事件訂閱的設計方式,與在程式碼後置區塊來進行相關商業邏輯的程式碼設計工作,全部都轉移到綁定來源的類別物件上。
- 事件轉命令行為Event to Command Behavior
Xamarin.Forms 並不是所有的檢視項目都有提供可綁定的命令屬性,但是一定會有提供事件觸發的設計方式,在這裡將會使用Xamarin.Forms 的一個核心技術行為Behaviors,將需要訂閱的事件與命令綁定在一起,這使得當事件被觸發的時候,可以執行所綁定的命令內的委派方法。
- 手勢操作Gesture Recognizer
在Xamarin.Forms 內提供可以與使用者互動的項目不多,按鈕是其中一個,不過, Xamarin.Forms 提供了手勢辨識器功能,可以在讓何檢視項目上,宣告不同的手勢操作行為,當發生了這個手勢操作行為,將會觸發所指定的命令,例如,得知使用者點選了一個圖片UI 控制項。
- MVVM Model-View-ViewModel 設計模式
Xamarin.Forms 可以搭配MVVM 的設計模式,讓UI 視覺設計與呈現邏輯程式碼與商業邏輯程式碼分隔開來,這樣可以有助於程式開發流程、進行單元測試,因為,這解除了視覺控制項與程式碼之間的緊密耦合關係。
- 內建導航服務
開發行動應用程式最為重要的設計工作,那就是能夠在不同的頁面之間進行切換,在這裡會先進行Xamarin.Forms 預設提供的導航服務功能進行介紹,並且了解到更多設計上的問題,可能需要進一步的解決。
- 導航服務之封裝設計
為了要解決Xamarin.Forms 預設的導航服務的不足,已經可以在檢視模型中進行各種頁面導航操作,在這裡將會設計一個延伸導航服務類別,解決相關問題,讓開發過程更加的順暢。
- 相依服務Dependency Service
Xamarin.Forms 是個UI 開發工具,它把UI 設計抽象化了,並且可以讓使用Xamarin.Forms 設計的UI 畫面可以在不同平台下來顯示出來,可是,當需要某些功能一定需要透過原生SDK API 才能夠運作的需求,並且取得原生SDK API 的執行結果,這個時候就可以透過Xamarin.Forms 提供的相依服務來滿足這樣的工作。
- 訊息中心MessagingCenter
訊息中心是一種發行-訂閱
模式,其中對於發行者這個角色可以在不知道任何訂閱者的情況下傳送訊息。同樣地,訂閱者也可以在不知道任何發行者的情況下訂閱特定訊息。透過這樣的特行,可以讓Xamarin.Forms的程式順利地執行原生平台下的SDK API。
誰適合閱讀這本書
本書適合想要學會如何使用Xamarin.Forms 工具來開發出跨平台的行動應用程式的開發者,這裡將會介紹各種Xamarin.Forms 核心與應用開發技術與技巧,並且帶領大家了解到進階的開發技能,如:檢視模型定位器,延伸導航服務等。透過學習這些開發技術,將會有助於進行各種Xamarin.Forms 應用程式開發能力的提升。
不過,讀者本身應該要具備.NET / C# 的開發經驗與程式寫作技能,並且要有使用過Visual Studio 2019 開發經驗。
這本書的範例專案將會是在Windows 10 作業系統下,使用Visual Studio 2019 開發工具開發出來的,由於使用Xamarin.Forms 開發出來的專案可以在Android / iOS / UWP 平台下執行,若想要體驗開發出來的專案且在iOS 模擬器環境下執行效果,讀者需要額外準備一台Mac 電腦,並且在這台電腦上需要安裝Xcode 與Visual Studio for Mac 開發工具。
更多內容,可以參考作者 Vulcan Lee 部落格文章
目錄
-
- 前言
-
關於本書
- 這本書能提供什麼
- 誰適合閱讀這本書
- 如何使用本書
- 意見回饋
-
I 開發前的安裝、設定準備工作
-
1. 安裝前的準備工作
- 1.1 確認作業系統版本
-
1.2 確認硬體 BIOS 有啟用虛擬化功能
- 1.2.1 停用 Hyper-V
- 1.3 啟用 UWP 開發人員模式
- 1.4 準備一台 macOS 的電腦主機
-
2. Windows 電腦與 Mac 電腦上的 Visual Studio 2019 安裝與相關相關設定
- 2.1 在 Windows 作業系統電腦上安裝 Visual Studio 2019
-
2.2 在 Mac 作業系統電腦開發工具之安裝與設定
- 2.2.1 安裝 Xcode 開發人員工具
- 2.2.2 安裝 Visual Studio for Mac
- 2.2.3 在 Mac 上啟用遠端登入
-
3. Visual Studio 2019 安裝後的相關設定與確認開發環境可以使用
- 3.1 更新 Android SDK
- 3.2 安裝與啟動 Google Android 原生模擬器
-
3.3 測試與確認開發環境可以進行 Xamarin.Forms 專案開發
- 3.3.1 測試可以建立 Xamarin.Forms 專案
- 3.3.2 建置與執行 Android 專案
- 3.3.3 建置與執行 iOS 專案
- 3.3.4 建置與執行 UWP 專案
- 3.4 結論
-
1. 安裝前的準備工作
-
II Xamarin.Forms 開發方式與基本概念
-
4. 使用 C# 程式語言來直接開發 Xamarin.Forms App
- 4.1 建立一個 Xamarin.Forms 方案
-
4.2 了解 Xamarin.Forms 方案的結構
- 4.2.1 了解 Xamarin.Android 專案的結構與運作方式
- 4.2.2 Xamarin.Android 的專案進入點
- 4.2.3 了解 Xamarin.iOS 專案的結構與運作方式
- 4.2.4 Xamarin.iOS 的專案進入點
- 4.2.5 了解 Xamarin.UWP 專案的結構與運作方式
- 4.2.6 UWP 的專案進入點
- 4.2.7 了解 Xamarin.Forms 專案的結構與運作方式
-
4.3 開始僅使用 C# 程式碼來設計兩數相加的遊戲
- 4.3.1 建立一個新遊戲頁面類別
- 4.3.2 讓新增類別繼承 ContentPage
- 4.3.3 設計該遊戲頁面
- 4.3.4 變更 Xamarin.Forms 應用程式的起始頁面
-
5. 使用 XAML 標記宣告語言來開發 Xamarin.Forms App
- 5.1 建立一個 Xamarin.Forms 方案
- 5.2 了解 XAML 檔案的運作方式
- 5.3 了解如何在 Code Behind 程式碼來存取 XAML 文件中的項目
-
5.4 使用 XAML 設計兩數相加的遊戲畫面
- 5.4.1 建立一個新遊戲 XAML 頁面
- 5.4.2 設計該遊戲頁面的 XAML 文件內容
- 5.4.3 變更 Xamarin.Forms 應用程式的起始頁面
- 5.5 App.xaml 的應用
-
6. 資料綁定 Data Binding
- 6.1 了解資料綁定運作流程
- 6.2 了解何謂 BindingContext 綁定內容
-
6.3 資料綁定的練習 綁定目標 XAML - 綁定來源 XAML
- 6.3.1 建立一個 Xamarin.Forms 方案
- 6.3.2 建立一個具有靜態屬性的類別
- 6.3.3 修改 MainPage.xaml 的 XAML 宣告語言內容
-
6.4 資料綁定的練習 綁定目標 XAML - 綁定來源 C# 的物件
- 6.4.1 建立一個 Xamarin.Forms 方案
- 6.4.2 建立一個用於資料綁定的 C# 類別
- 6.4.3 修改頁面的 XAML 宣告內容
- 6.4.4 在頁面的程式碼後置區域設計商業邏輯
- 6.4.5 執行與測試
-
6.5 使用繼承方式提供 INotifyPropertyChanged 實作
- 6.5.1 建立一個 Xamarin.Forms 方案
- 6.5.2 建立一個用於資料綁定的 C# 基底類別
- 6.5.3 建立一個用於資料綁定的 C# 類別
- 6.5.4 執行與測試
-
6.6 透過 PropertyChanged.Fody 套件來簡化設計
- 6.6.1 建立一個 Xamarin.Forms 方案
- 6.6.2 安裝 PropertyChanged.Fody 套件
- 6.6.3 建立一個用於資料綁定的 C# 類別
- 6.6.4 執行與測試
-
7. 更多資料綁定的用法
- 7.1 資料綁定的練習 綁定目標 XAML - 綁定來源 XAML
- 7.2 建立一個 Xamarin.Forms 方案
- 7.3 安裝 PropertyChanged.Fody 套件
- 7.4 建立一個用於資料綁定的 C# 類別
-
7.5 設計該頁面 XAML 內容
- 7.5.1 用法1: 資料綁定的模式 單向或者雙向差異
- 7.5.2 用法2: 深層資料繫節
- 7.5.3 用法3: 不同指定綁定屬性用法
- 7.5.4 用法4: 資料集合的資料綁定
- 7.5.5 用法5: 綁資料字典內的某筆資料
- 7.5.6 用法6: 輔助支援用法
-
8. 數值轉換器 Value Converter
- 8.1 數值轉換器的練習
- 8.2 建立一個 Xamarin.Forms 方案
- 8.3 安裝 PropertyChanged.Fody 套件
- 8.4 建立一個用於資料綁定的 C# 類別
- 8.5 設計三個專案會用到的數值轉換器
- 8.6 修改頁面的 XAML 宣告內容
- 8.7 執行與測試
-
9. 命令綁定 Command Binding
- 9.1 建立一個 Xamarin.Forms 方案
- 9.2 安裝 PropertyChanged.Fody 套件
- 9.3 設計該頁面 XAML 內容
- 9.4 建立一個用於資料綁定的 C# 類別
- 9.5 執行與測試
-
10. 事件轉命令行為 Event to Command Behavior
- 10.1 建立一個 Xamarin.Forms 方案
- 10.2 安裝 PropertyChanged.Fody 套件
- 10.3 建立一個事件轉命定的行為類別
- 10.4 設計該頁面 XAML 內容
- 10.5 建立一個用於資料綁定的 C# 類別
- 10.6 執行與測試
-
11. 手勢操作 Gesture Recognizer
- 11.1 建立一個 Xamarin.Forms 方案
- 11.2 安裝 PropertyChanged.Fody 套件
- 11.3 設計該頁面 XAML 內容
- 11.4 建立一個用於資料綁定的 C# 類別
- 11.5 執行與測試
-
12. MVVM Model-View-ViewModel 設計模式
- 12.1 建立一個 Xamarin.Forms 方案
- 12.2 安裝 PropertyChanged.Fody 套件
- 12.3 安裝 Newtonsoft.Json 套件
- 12.4 建立 需要用到的方案資料夾
- 12.5 建立 ViewModelLocator 附加屬性
- 12.6 建立 事件轉命令的行為 C# 類別
- 12.7 建立一個可將 bool 值反轉的數值轉換器
- 12.8 建立模型類別
- 12.9 建立取得網路 JSON 文件服務類別
- 12.10 設計該頁面 XAML 內容
- 12.11 建立該頁面的檢視模型類別 C# 類別
- 12.12 執行與測試
-
13. 內建導航服務
- 13.1 建立一個 Xamarin.Forms 方案
- 13.2 安裝 PropertyChanged.Fody 套件
- 13.3 建立 需要用到的方案資料夾
- 13.4 建立 ViewModelLocator 附加屬性
- 13.5 設計 首頁 頁面 XAML 內容
- 13.6 修正 首頁 頁面的程式碼後置 C# 程式碼
- 13.7 建立 首頁 頁面的檢視模型類別 C# 類別
- 13.8 設計 下頁 頁面 XAML 內容
- 13.9 修正 首頁 頁面的程式碼後置 C# 程式碼
- 13.10 建立 下頁 頁面的檢視模型類別 C# 類別
- 13.11 修正 核心專案 進入點的預設頁面
- 13.12 執行與測試
-
14. 導航服務之封裝設計
- 14.1 建立一個 Xamarin.Forms 方案
- 14.2 安裝 PropertyChanged.Fody 套件
- 14.3 建立 需要用到的方案資料夾
- 14.4 建立 ViewModelLocator 附加屬性
- 14.5 建立 INavigationService 附加屬性
- 14.6 建立 NavigationService 附加屬性
- 14.7 建立 導航頁面
- 14.8 設計 登入頁面 頁面 XAML 內容
- 14.9 設計 首頁 頁面 XAML 內容
- 14.10 設計 使用者設定資訊 頁面 XAML 內容
- 14.11 設計 關於 頁面 XAML 內容
- 14.12 建立 所有檢視模型 都會用到的基底類別 C# 類別
- 14.13 建立 登入頁面 頁面的檢視模型類別 C# 類別
- 14.14 建立 首頁 頁面的檢視模型類別 C# 類別
- 14.15 建立 使用者設定資訊 頁面的檢視模型類別 C# 類別
- 14.16 建立 關於 頁面的檢視模型類別 C# 類別
- 14.17 修正 核心專案 進入點的預設頁面
- 14.18 執行與測試
-
15. 相依服務 Dependency Service
- 15.1 建立一個 Xamarin.Forms 方案
- 15.2 安裝 PropertyChanged.Fody 套件
- 15.3 建立 需要用到的方案資料夾
- 15.4 建立模型類別
- 15.5 建立相依服務使用到的介面
- 15.6 設計該頁面 XAML 內容
- 15.7 建立檢視模型 C# 類別
- 15.8 在 Android 專案內實作這相依服務介面
- 15.9 在 iOS 專案內實作這相依服務介面
- 15.10 執行與測試
-
16. 訊息中心 MessagingCenter
- 16.1 建立一個 Xamarin.Forms 方案
- 16.2 安裝 PropertyChanged.Fody 套件
- 16.3 建立訂閱事件類別
- 16.4 設計該頁面 XAML 內容
- 16.5 建立檢視模型 C# 類別
- 16.6 在 Android 專案內訂閱這個事件
- 16.7 在 iOS 專案內訂閱這個事件
- 16.8 修正 iOS 專案內的 info.plist
- 16.9 執行與測試
- 版權頁
-
4. 使用 C# 程式語言來直接開發 Xamarin.Forms App
Leanpub 100% 無風險的滿意保證
在付款後的 60 天內,只要點擊兩下,你就可以退書並獲得全額退款。退書是手工操作的,所以可能需要幾天時間來完成整個過程。
查看完整條款.
在$10的購買中賺$8,在$20的購買中賺$16
我們在$7.99或以上的購買中支付80%的版稅,並在$0.99至$7.98的購買中支付80%的版稅減去50美分的固定費用。在$10的銷售中賺$8,在$20的銷售中賺$16。因此,如果我們以$20銷售5000本未退款的書,您將賺取$80,000。
(是的,一些作者已經在Leanpub上賺了很多錢。)
實際上,作者在Leanpub上賺取了超過1300萬美元通過寫作、出版和銷售。
了解更多關於Leanpub寫作的信息
免費更新。無 DRM 限制。
如果你購買了 Leanpub 的書,只要作者更新書籍,你就可以獲得免費更新!許多作者使用 Leanpub 來發布他們正在編寫的書籍。所有讀者都可以獲得免費更新,無論他們何時購買書籍或支付了多少費用(包括免費)。
大多數 Leanpub 書籍均提供 PDF(適用於電腦)、EPUB(適用於手機和平板電腦)和 MOBI(適用於 Kindle)格式。書籍包含的格式將顯示在此頁面的右上角。
最後,Leanpub 書籍沒有任何 DRM 複製保護的胡說,因此你可以輕鬆地在任何支持的設備上閱讀它們。