Alpha Outdoors 的 Red-Point: 運用 .NET MAUI、Unity 和 Azure 的大眾攀岩
在 2023 年初,熱情的攀岩者 Martin Mora 因為接近秋季誤判攀爬路線困難度的悲慘事件而成立了 Alpha Outdoors。此事件突顯需要有可讓攀岩更加安全且更易於使用的應用程式,因此引發其 .NET MAUI 行動應用程式 Red-Point 的初始想法。Martin 與 Matthew Robbins 合作,他是經驗豐富的 .NET 開發人員,擁有為 Visual Studio 建立成功的應用程式和受喜愛的 MFractor 延伸模組的背景。他們一起努力於改革攀爬體驗的任務。
數位攀爬小幫手
在 Red-Point 之前,攀岩者仰賴實體指南,這些指南通常很笨重、難以解讀,而且容易在戶外環境受損。Red-Point 將此資訊數位化,提供以 GPS 為基礎的瀏覽和可離線存取的詳細 3D 路線視覺效果,以降低攀岩者在不正確或危險的路線上面臨的風險。
使用無人機進行創新資料收集
Red-Point 上有 500 多個攀爬區域,每個區域都是從 3D 掃描開始,以擷取每個攀爬路線的詳細地形資料。這些無人機會擷取岩石表面的高解析度影像,然後處理以產生詳細的 3D 模型。使用無人機來精確繪製攀岩區域地圖,並提供攀岩者寶貴的深入解析,以更有效地規劃其攀爬。
Red-Point 資料擷取程序可正常運作
- 3D 掃描: 無人機與 LiDAR 相機和 iPhone 會掃描攀爬地點,並擷取完整的視覺資料。
- 資料處理: 收集的資料會經過處理,以建立攀爬區域的精確 3D 模型。
- 與應用程式整合: 3D 模型會使用 Unity 和 .NET MAUI 整合至 Red-Point 應用程式。攀岩者可以與這些模型互動,以規劃其攀爬、評估路線難度,並增強其安全性。
此方法可確保攀岩者能夠存取最準確且最新的資訊,大幅改善他們的攀爬體驗。
技術選擇與使用量
一開始,小組嘗試使用 Unity 來建立概念證明應用程式,但很快地發現它對所設想的使用者體驗並不太理想。Robbins 擁有 .NET 和 Xamarin.Forms 的專業知識,其提議整合 Unity 的 3D 功能與 .NET MAUI,以便有更原生的感覺。此混合式方法可讓他們利用 Unity 的 3D 呈現強項,同時利用 .NET MAUI 進行與原生 UI 元件和其他功能的順暢整合。
使用的重要技術元件:
- .NET MAUI: 用於建置應用程式的核心功能和原生使用者介面。
- Unity: 處理詳細路線視覺效果的 3D 呈現。
- Azure: 用於驗證、資料管理和雲端服務。
將 .NET MAUI 和 Unity 整合在 Red-Point 應用程式中,對於提供高效能、順暢的使用者體驗非常重要。.NET MAUI 會處理核心功能 (例如資料管理和驗證),運用其強大的程式庫生態系統和 Azure 服務進行後端程序。Unity 在呈現詳細的 3D 環境方面無與輪比,對於將攀岩路徑和 3D 掃描的懸崖資料視覺化來說非常重要。Matthew Matthewins 將其設定描述為應用程式內的用戶端-伺服器關係,其中的 Unity 會透過資料通道與 .NET MAUI 元件通訊。此架構可確保有效率的資料交換和快速回應的使用者介面,結合這兩個架構的最佳功能,以增強應用程式效能和使用者體驗。
.NET MAUI 與 Unity 之間的互通性
.NET MAUI 與 Unity 的整合是 Red-Point 應用程式開發中的基礎,提供獨特的功能混合,可增強效能和使用者體驗。結合 .NET MAUI 作為應用程式核心功能與 Unity 作為其 3D 元件的決策是由每個平台的強項所驅動。利用強大的程式庫生態系統,並順暢地與 Azure 服務整合,.NET MAUI 可處理資料管理、同步處理、驗證和 UX。這可讓您快速開發及輕鬆管理後端程序。另一方面,Unity 在呈現詳細的攀岩路徑和 3D 掃描的懸崖資料視覺效果所需的複雜 3D 環境方面無與倫比。
Matthew Matthewins 將設定描述為應用程式內的用戶端-伺服器關係,其中的 Unity 執行個體會跨資料通道與 .NET MAUI 元件通訊。此架構可促進兩個架構之間的有效資料交換和指令處理,確保順暢且回應快速的使用者體驗。使用 .NET MAUI 可讓小組運用進階的 .NET 功能,例如非同步程式設計與平行處理,其在 Unity 生態系統中較不成熟。此外,透過 NuGet 提供的大量 .NET 程式庫可大幅簡化開發程序,以最少的額外負荷即可實現即時資料視覺效果和複雜資料作業等功能。
.NET MAUI 的優勢
.NET MAUI 使得 Alpha Outdoors 在數個重點領域最佳化 Red-Point 的效能。
- 有效率的資源管理: 小組著重在有效率的資源管理,以防止應用程式耗用過多的記憶體或處理能力。這包括最佳化程式碼、減少不必要的背景程序,以及確保應用程式的功能輕量且快速回應。
- 非同步程式設計: 利用非同步程式設計技術,小組可以改善應用程式的回應性,並減少發生效能瓶頸的可能性。此方法會允許應用程式同時處理多個工作,而不會造成延遲或中斷。
- 快取和資料壓縮: 為增強資料擷取速度並縮短載入時間,小組已實作快取機制和資料壓縮技術。這可確保經常存取的資料已可供使用,並減少需要透過網路傳輸的資料量。
- 執行監視和測試: 小組定期進行效能監視和測試,以識別並解決任何潛在問題。這包括使用分析工具來分析應用程式的效能、進行壓力測試以模擬高度使用者負載,以及收集 Beta 測試人員的意見反應,以找出需要改進的區域。
- 最佳化使用者介面: 小組特別注意最佳化使用者介面,以確保流暢的動畫、快速轉換,並將輸入延遲降至最低。這涉及盡可能使用硬體加速,並最佳化呈現管線,以提供流暢且快速回應的使用者體驗。
使用 .NET 和 Azure 調整
.NET MAUI 提供建立快速回應、高效能應用程式的基礎,能夠處理複雜的工作,例如即時路線呈現和資料同步處理。其廣泛的程式庫支援以及與其他 Microsoft 服務的整合功能,有利於克服初始技術挑戰。Azure 在管理內容傳遞方面扮演重要的角色,確保應用程式即使在使用者基礎快速擴充時仍保持可靠且高效能。
成功里程碑:
- 快速成長: 上市後,Red-Point 獲得顯著的優勢,由社交媒體病毒式傳播而驅動,在幾週內從 200 個使用者成長至 10,000 個。
- 使用者採用: 應用程式在 iOS App Store 上的排名迅速提升,突顯其市場需求及其技術堆疊的有效性。
結論
運用 .NET 技術和 Azure 服務的完整套件,Alpha Outdoors 不僅建置了複雜的應用程式,還將自己定位為在攀岩社群中持續成長與創新。Red-Point 的成功突顯了整合創新技術與解決真實世界問題的清楚願景的能力。Alpha Outdoors 計劃在建置 Red-Point 時進一步運用 .NET,並渴望將更多社群貢獻納入其攀岩路線中。
準備開始了嗎?
我們的逐步教學課程可協助您讓 .NET MAUI 在電腦上執行。