Microsoft Build 2022 ?會上正式發布了 .NET MAUI , 對于 .NET 開發者可以? C# 完成跨平臺的前端應?開發。對?起 MAUI 的前身 Xamarin , MAUI 除了可以?傳統的原?開發模式外,還?持了 Blazor 的混合式開發。這也讓更多?向的開發?員能進?到跨平臺的應?開發中來。有?會提出云原?時代,前端開發還重要嗎 ?實際上,多端應?兼容是云原?不可缺少的門面。互聯?時代,有很多出?的應?,并發布了針對第三?應?的 SDK,開發者可以結合這些 SDK 做相關的解決?案。通過 MAUI 能調?這些 SDK 嗎?我會通過系列?章去和?家介紹。作為該系列的開篇,我先來介紹?下需要掌握的技能, 讓?家有所準備。
為何要綁定原生SDK
我們知道?個應?可以融?不同的場景,例如?個打?應?就需要地圖,例如?個拍照應?就需要社交,例如?個如果你是傳統的物聯?應?你需要?個藍?的通信協議。拿來主義就是?個節省的?式,可以結合第三?提供的 SDK 來完成應?的開發。對于 .NET 開發?員會是?個難點,因為習慣性地去調? DLL ,但在iOS / Android 原?開發上,實際上是有不同的庫調?機制。在 Xamarin 時代,就有不少開發者去? C# 綁定第三?的庫,例如在中國市場就有?付寶,微信,?德地圖等。到了 MAUI 有什么不?樣呢?在?致上是和Xamarin 綁定?式?樣。但由于 MAUI 融?到了 .NET 6,實際上就是?個項??件格式的改變。現階段你可以通過命令?的?式快速構建 iOS / Android 的綁定項?。
01
MAUI iOS 庫的綁定
dotnet new iosbinding -o iOS.AMapSDK.Binding
要做 iOS / macOS的綁定你除了創建綁定項?外,你還需要安裝 Shapie ?具 (https://aka.ms/objectivesharpie)做對應轉換, 可以通過命令?去針對 iOS 的動態庫和靜態庫做對應轉換。這?補充?點你的 Xcode環境是必須要安裝的。下?是?個簡單的轉換語句,更多具體?家可以關注我的該系列的 iOS 庫?件綁定?章。
sharpie?bind?-framework?/your?path/AMapFoundationKit.framework?-sdk iphoneos15.5
02
MAUI Android 庫的綁定
dotnet new android-bindinglib -o Droid.AMapSDK.Binding
Android 的綁定和 iOS 不?樣,直接把第三?庫 Android SDK 的 jar 或者 aar 包放進去編譯即可。
如果你希望了解更多可以關注本系列 Android 庫綁定的系列?章。
控件定制
在 Xamarin.Forms 中,通過渲染器機制對跨平臺各?控件的引?,并且依賴于 INotifyPropertyChanged 。.NET MAUI 沒取消了渲染器機制,?是引?了?種稱為 Handler 的模式。有了 Handlers 更靈活 ,?且在需要時更容易擴展或覆蓋。這是 MAUI 全新的 Handler 模式。
我們通過 Handler 機制可以構建好?德地圖的 MAUI 控件
你可以通過 https://github.com/kinfey/AMapMAUIControls 使?體驗 MAUI 的?德 Android / iOS 控件。
??
后記
本次系列的發布是希望有更多的?商和開發者能夠針對 MAUI 開發相關的控件和基于 MAUI 的 SDK 。我知道現在跨平臺開發都有 Flutter , ReactNative 等。但 MAUI 是?個?常值得投?的解決?案,從性能和開發效率都是有競爭性的。我知道傳統?業有?常多的 .NET 開發者, MAUI 會為傳統?業的數字化轉型提供?常好的體驗。
*相關資料
1.通過 Microsoft Docs 了解 MAUI
https://aka.ms/Docs.MAUI
2.通過 Microsoft Learn 學習 MAUI
https://aka.ms/Learn.MAUI
往期推薦:
CA周記 - 2022年的第一課Rust
CA周記 - 用 Visual Studio Code 做基于 .NET MAUI 跨平臺移動應用開發
CA周記 - 通過 Azure ML + GitHub + GitHub Action 打通 ML 開發的任督二脈
CA周記 - 宇宙最強的IDE - Visual Studio 25歲生日快樂
CA周記 - “探店”低代碼
CA周記 - 云上“煉”碼兵器 GitHub Codespaces
CA周記 - C# 學習經驗分享
CA周記 - 帶你進入 OpenAI 的世界
CA周記 - 跟我做一個可以聊天的 Visual Studio Code 插件
CA周記 - .NET 6 Minimal API 的經驗分享
CA周記 - Microsoft Build 2022 到來,開發者們做好準備了嗎?
CA周記 - Build 2022 上開發者最應關注的七??向主要技術更新
更多原創文章與資源共享
請關注Kinfey Techtalk