做一个高德地图的 iOS / Android .NET MAUI 控件系列 - 前言
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 的綁定項目。
MAUI iOS 庫的綁定?
dotnet new iosbinding -o iOS.AMapSDK.Binding要做 iOS / macOS的綁定你除了創建綁定項目外,你還需要安裝 Shapie 工具 (https://aka.ms/objective-sharpie) 做對應轉換, 可以通過命令行去針對 iOS 的動態庫和靜態庫做對應轉換。這里補充一點你的 Xcode 環境是必須要安裝的。下面是一個簡單的轉換語句,更多具體大家可以關注我的該系列的 iOS 庫文件綁定文章。
sharpie bind -framework /your path/AMapFoundationKit.framework -sdk iphoneos15.5MAUI Android 庫的綁定
dotnet new android-bindinglib -o Droid.AMapSDK.BindingAndroid 的綁定和 iOS 不一樣,直接把第三方庫 Android SDK 的 jar 或者 aar 包放進去編譯即可。
如果你希望了解更多可以關注本系列 Android 庫綁定的系列文章。
控件定制
在 Xamarin.Forms 中,通過渲染器機制對跨平臺各自控件的引用,并且依賴于 INotifyPropertyChanged 。 .NET MAUI 沒取消了渲染器機制,而是引入了一種稱為 Handler 的模式。有了 Handlers 更靈活 ,而且在需要時更容易擴展或覆蓋。
這是 MAUI 全新的 Handler 模式
我們通過 Handler 機制可以構建好高德地圖的 MAUI 控件?
?你可以通過?GitHub - kinfey/AMapMAUIControls?使用體驗 MAUI 的高德 Android / iOS 控件
后記
本次系列的發布是希望有更多的廠商和開發者能夠針對 MAUI 開發相關的控件和基于 MAUI 的 SDK 。我知道現在跨平臺開發都有 Flutter , ReactNative 等。但 MAUI 是一個非常值得投入的解決方案,從性能和開發效率都是有競爭性的。我知道傳統行業有非常多的 .NET 開發者, MAUI 會為傳統行業的數字化轉型提供非常好的體驗。
相關資料
通過 Microsoft Docs 了解 MAUI?.NET MAUI 應用支持的平臺 - .NET MAUI | Microsoft Docs
通過 Microsoft Learn 學習 MAUI?使用 .NET MAUI 生成移動應用和桌面應用 - Learn | Microsoft Docs
總結
以上是生活随笔為你收集整理的做一个高德地图的 iOS / Android .NET MAUI 控件系列 - 前言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flask爱家租房--房屋管理(搜索房屋
- 下一篇: iphone11右上角信号显示_苹果iO