前言
關於本書
- 這本書能提供什麼
- 誰適合閱讀這本書
- 如何使用本書
- 意見回饋
- 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結論
- IIXamarin.Forms 開發方式與基本概念
- 何謂 Xamarin.Forms
- 關於 MVVM 設計模式
- 關於開發練習專案
4.使用 C# 程式語言來直接開發 Xamarin.Forms App
- 4.1建立一個 Xamarin.Forms 方案
- 4.2了解 Xamarin.Forms 方案的結構
- Xamarin.Forms 的套件
- 共用商業邏輯程式碼與螢幕 UI 控制項
- 4.2.1了解 Xamarin.Android 專案的結構與運作方式
- 圖片檔案資源
- 4.2.2Xamarin.Android 的專案進入點
- 4.2.3了解 Xamarin.iOS 專案的結構與運作方式
- 4.2.4Xamarin.iOS 的專案進入點
- 4.2.5了解 Xamarin.UWP 專案的結構與運作方式
- 4.2.6UWP 的專案進入點
- 4.2.7了解 Xamarin.Forms 專案的結構與運作方式
- 4.3開始僅使用 C# 程式碼來設計兩數相加的遊戲
- 4.3.1建立一個新遊戲頁面類別
- 4.3.2讓新增類別繼承 ContentPage
- 何謂 內容頁面 ContentPage
- 4.3.3設計該遊戲頁面
- 4.3.4變更 Xamarin.Forms 應用程式的起始頁面
5.使用 XAML 標記宣告語言來開發 Xamarin.Forms App
- XAML 的好處
- 5.1建立一個 Xamarin.Forms 方案
- 5.2了解 XAML 檔案的運作方式
- 內容屬性 Content Property
- 請勿移除或者註解 InitializeComponent() 這個方法呼叫
- XAML 與編譯器
- 5.3了解如何在 Code Behind 程式碼來存取 XAML 文件中的項目
- C# 的建構函式
- 5.4使用 XAML 設計兩數相加的遊戲畫面
- 5.4.1建立一個新遊戲 XAML 頁面
- 5.4.2設計該遊戲頁面的 XAML 文件內容
- 5.4.3變更 Xamarin.Forms 應用程式的起始頁面
- 5.5App.xaml 的應用
6.資料綁定 Data Binding
- 資料綁定 Data Binding
- 標記之延伸語法
- 6.1了解資料綁定運作流程
- 6.2了解何謂 BindingContext 綁定內容
- BindingContext 的繼承
- 6.3資料綁定的練習 綁定目標 XAML - 綁定來源 XAML
- 6.3.1建立一個 Xamarin.Forms 方案
- 6.3.2建立一個具有靜態屬性的類別
- 6.3.3修改 MainPage.xaml 的 XAML 宣告語言內容
- 資源字典 Resource Dictionary
- 6.4資料綁定的練習 綁定目標 XAML - 綁定來源 C# 的物件
- 6.4.1建立一個 Xamarin.Forms 方案
- 6.4.2建立一個用於資料綁定的 C# 類別
- C# 前置處理器指示詞 : Region
- 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執行與測試