vulcanlee
Xamarin.Forms 跨平台行動 App 範例應用解析

Updated 2 months ago

關於 Xamarin 在台灣的學習技術資源

歡迎加入 Xamarin 實驗室 粉絲團,在這裡,將會經常性的貼出各種關於 Xamarin / Visual Studio / .NET 的相關消息、文章、技術開發等文件,讓您可以隨時掌握第一手的 Xamarin 方面消息。

歡迎加入 Xamarin.Forms @ Taiwan,這是台灣的 Xamarin User Group,若您有任何關於 Xamarin / Visual Studio / .NET 上的問題,都可以在這裡來與各方高手來進行討論、交流。

Xamarin 實驗室 部落格 是作者本身的部落格,這個部落格將會專注於 Xamarin 之跨平台 (Android / iOS / UWP) 方面的各類開技術探討、研究與分享的文章,最重要的是,它是全繁體中文的。當您遇到關於 Xamarin.Forms 開發上的問題,可以到這個部落格上,使用關鍵字搜尋出相關文章。

最新 Xamarin.Forms 課程資訊

這裡是作者所開辦的 Xamarin.Forms 教學課程

《台北》Xamarin.Forms 跨平台行動應用程式開發實戰 2017-11-18 ~ 2017-12-02 ( 每周星期六、日 ) http://www.accupass.com/go/DCT_106034

《台北》Xamarin.Forms 跨平台行動應用程式開發實戰 2017-07-04 ~ 2017-08-01 ( 每周二 ) http://www.accupass.com/go/DCT_106032

《台中》Xamarin.Forms 跨平台行動應用程式開發實戰 2017-07-01 ~ 2017-07-15 ( 每周星期六、日 ) http://www.accupass.com/go/DCT_106019

《台北》微軟開發平台體驗營 – 企業級行動 App 開發實戰_第五梯次 2017-06-14(Wed) 09:00 ~ 2017-06-14(Wed) 17:00 (GMT+8) http://www.accupass.com/go/DCT_106015

《台北》微軟開發平台體驗營 – 企業級行動 App 開發實戰_第四梯次 2017-05-04(Thu) 09:00 ~ 2017-05-04(Thu) 17:00 (GMT+8) http://www.accupass.com/go/DCT_106014

《台北》微軟開發平台體驗營 – 企業級行動 App 開發實戰_第三梯次 2017-04-12(Wed) 09:00 ~ 2017-04-12(Wed) 17:00 (GMT+8) http://www.accupass.com/go/DCT_106013

《台北》微軟開發平台體驗營 – 企業級行動 App 開發實戰_第二梯次 2017-03-15(Wed) 09:00 ~ 2017-03-15(Wed) 17:00 (GMT+8) http://www.accupass.com/go/DCT_106012

《台北》Xamarin.Forms 跨平台行動應用程式開發實戰(五天) 2017-03-11 ~ 2017-03-25 ( 每周星期六、日 ) http://www.accupass.com/go/DCT_106011

《台北》微軟開發平台體驗營 – 企業級行動 App 開發實戰 2017-02-22(Wed) 09:00 ~ 2017-02-22(Wed)

《高雄》Xamarin.Forms 跨平台行動應用程式開發實戰 2016-12-10 09:00 ~ 2017-01-07 17:00 http://www.accupass.com/go/DCT_105036

《台北》Xamarin.Forms 跨平台行動應用程式開發實戰 2016-10-21 09:00 ~ 2016-10-31 17:00 http://www.accupass.com/go/DCT_105027

《台北》Xamarin.Forms 跨平台行動應用程式開發實戰 2016-10-15 09:00 ~ 2016-10-29 17:00 http://www.accupass.com/go/DCT_105034

簡介

這本書將會使用 Xamarin 在 GitHub 上的範例程式 作為說明來源,挑選具有特色的專案,並且根據這些範例專案,從頭到尾,告訴您要如何實作出這樣的類型專案,並且告訴您有哪些需要注意的事項以及實作上的經驗。

這本書主要是向透過透不同情境的案例,這些情境都是在開發實際應用程式時候,會遇到的情況;透過這樣的 Step By Step 的方式呈現,讓想要學習 Xamarin.Forms 的開發者並且想要解決類似問題的人,可以擁有最快速、最有效的方式來進入到 Xamarin.Forms 跨裝置平台開發環境,進而能夠成為這方面的專家。

開發環境說明

本書中的練習專案,是在底下作業環境系統與工具下開發完成

  • Windows 環境

    • Windows 10 專業中文版 (Build 1511)

    • Visual Studio 2015 中文企業版(Update 2)

    • Xamarin 4.1.1.3

    • Xamarin.Android 6.1.1.1

    • Xamarin.iOS 9.8.1.4

    • Visual Studio Emulator for Android ( 5" Kitkat(4.4) XXHDPI Phone API Level 19)

  • Mac 環境

    • OS X EI Capitan 10.11.3

    • Xamarin Studio Community 6.0.1

    • Xamarin.Android 6.1.1.1

    • Xamarin.iOS 9.8.1.4

    • Xcode 7.3.1

本書內容架構

  1. 開發環境安裝

    說明要開發 Xamarin.Forms 跨平台行動應用程式,要如何進行開發環境的安裝與設定工作。

  2. Xamarin.Forms 您好

    這是本書第一個 Xamarin.Forms 應用程式範例,透過這個應用範例,進行了解 Xamarin.Forms 專案架構與開發方式,並且如何輕鬆寫一個可以在 iOS & Android 上執行並且共用 UI 與 商業邏輯應用程式。

    Xamarin.iOS 您好

    這是使用 Xamarin.iOS 來開發出原生應用程式專案範例。

    Xamarin.Android 您好

    這是使用 Xamarin.Android 來開發出原生應用程式專案範例。

  3. 使用者登入

    在行動應用專案程式開發,很多時候需要讓使用在開啟應用程式當時,需要能夠進行身分驗證功能,一旦,身分驗證無誤,就會進入到應用程式的首頁;不過,使用者無法透過行動裝置的返回實體按鈕,再度回到登入頁面。另外,這個範例最後,也展示如何在 Xamarin.Forms 專案內,可以在 XAML 內使用 Font Awesome 的圖示字體做法。

  4. 導航抽屜

    導航抽屜是現今行動應用程式不可或缺的一項功能,而且這項功能特別適用於開發一套程式並且同時使用於手機與平板;透過導航抽屜,可以讓使用者輕鬆的切換到不同的頁面進行操作。Xamarin.Forms 內建導航抽屜功能,在這個範例程式,透過導航抽屜功能清單,您可以快速瀏覽到,透過 XAML 宣告標記語言的定義,就可以同時在不同的行動作業系統下,以原生控制項顯示在使用者螢幕上,當然,在不同的行動作業統與裝置下,看到的樣貌可能會有所不同。

  5. 標籤式頁面

    在不同的作業系統下,標籤頁次頁面長的會很不一樣,不過,在使用 Xamarin.Forms 開發的時候,卻只需要學習使用一個方式,就可以讓應用程式同時在 iOS & Android下運行。這個章節內容共有兩小段,一個是透過了 TabbedPage.ItemTemplate 來自訂每個子標籤頁面要出現的內容,另外一種標籤頁面的專案實作說明,將會著重在每個子標籤頁面的明細部分,所以,每個子標籤頁面就會長的不一樣,甚至可以做更多豐富的控制與顯示效果。

  6. 地圖功能

    要能夠讓行動應用程式將相關資料,透過與地圖功能整合並且一起呈現在使用者螢幕上,是個相當重要的特色,在這個範例應用程式中,您僅需要在 核心PCL 專案內定義與使用 Xamarin.Forms 提供的地圖套件來進行開發,當應用程式在 iOS / Android 平台中執行的時候,就會與實際行動裝置作業系統內所提供的地圖應用程式整合再一起。

  7. 相依性服務注入

    有些時候需要在核心PCL中呼叫某項功能,不過,該功能必須分別在各行動裝置平台下來分別定義或者需要呼叫原生的不同方法,因此,Xamarin.Forms 允許開發者可以自行定義出每個平台專屬一些行為,進而可以在核心PCL專案內還呼叫使用。

  8. 手勢操作

    在行動裝置中,手勢操作功能相當的重要,例如,使用手指點擊螢幕、兩指縮放、拖拉等等,Xamarin.Forms 可以讓開發者在核心PCL專案內進行這類手勢操作的應用開發,透過 GestureRecognizer ,而不需要分別在不同行動裝置作業系統下來處理這些事情,就可以輕鬆使用一到程式碼就可以完成這樣需求。

  9. 平台特色

    在進行 Xamarin.Forms 跨平台應用程式開發的時候,開發者會將大部分的商業邏輯與視覺介面都在核心PCL內進行開發,此時,若想要知道:得知使用者當時的裝置是 手機或平板或桌機 、使用者當時裝置的作業系統、在撰寫 XAML 內容時候,需要能夠針對不同的平台,提供不同的視覺效果等等需求時候,就可以使用本章節所談到的相關技術與技巧來解決這些問題。

  10. 與裝置硬體互動

    在這個章節內,將會說明如何使用 Xamarin.Forms 的許多插件(Plug-ins),幫助開發者方便進行跨平台的應用程式開發,特別是需要讀取當時應用程式正在執行的系統中的各個硬體資訊。

  11. 檔案存取與拍照

    在這個範例專案中,將會練習兩個在行動裝置開發過程中,相當重要的功能,那就是 檔案存取 與 行動裝置的專屬功能呼叫,在這裡將會展示如何在核心PCL專案內,呼叫個專屬平台的拍照功能,並且將拍照完成的照片回傳並顯示到行動裝置螢幕上。

  12. Web 服務存取

    在這個範例專案中,將會帶領大家如何實作 RESTful Web API 與 WCF 這兩種 Web 服務的呼叫方式。至於,要如何使用 Azure Mobile App 的後端服務,在後面的章節會有介紹。

  13. 訊息中心

    Xamarin.Forms 提供一個非同步訊息通訊機制,稱作 訊息中心 (MessagingCenter),透過訊息中心這個機制,可以減少 Xamarin.Forms 程式開發的耦合性,也就是說,讓各個類別間不要有關聯關係,就可以讓不同的物件進行通訊,是個相當實用與重要的開發技巧,一定要學會。

  14. 萬年曆與QR-Code

    在這個範例專案中,將會實作出 萬年曆與QR-Code 的功能,這兩項功能也是透過插件來完成,不過,來看看要怎麼時做出這樣的功能。

  15. Azure Mobile後端資料庫存取

    當進行跨平台裝置專案開發過程中,大多會需要使用到後端資料庫存取服務,在這個範例中,將會為您說明使用 Microsoft Azure 所提供的 Azure Mobile App 服務,在這裡僅先介紹如何存取 Azure Mobile App所提供的後端資料功能,至於,存取企業內部的資料或資料庫、進行AD或者社群身分驗證、線上與離線資料存取、行動裝置的訊息推播等等,將會在另外一本書中才會提到。

  16. Facebook 社群身分驗證

    這一章節,將會說明如何透過 Xamarin 提供的元件 Xamarin.Auth,進行社群身分驗證。

  17. SQLite資料庫使用

    在這個範例專案中,將會說明如何在核心PCL專案內,使用 SQLite 資料庫來操作資料表的 CRUD功能。

實作範例

這本書所有練習實作專案,都要發布到 GitHub https://github.com/vulcanlee/Xamarin.Forms.StepByStep 有興趣的人,可以下載。

建議與指教

對於本書有任何的建議或者批評,歡迎在 GitBook 內 Discussions 留言

  • 開啟網址 https://www.gitbook.com/book/vulcanlee/xamarin-forms/details ,點選 Discussions

  • Discussions 頁面出現後,點選 + New Discussion 按鈕

  • 若您尚未登入 GitBook,可以使用 Facebook, Google+, Twitter, GitHub 社群帳號進行登入

  • 當登入到 GitBook 之後,就可以填寫意見主旨、意見內容,最後按下 Post Discussion 按鈕

作者資訊

多奇數位創意有限公司

Vulcan 李進興 2016/07/12