Alpha Outdoors 的 Red-Point: 使用 .NET MAUI、Unity 和 Azure 为大众提供攀岩体验
2023 年初,热衷于攀岩的 Martin Mora 因错误判断攀岩路线的难度而险些坠落,在经历了一场惊心动魄的事故后,他创立了 Alpha Outdoors。这场事故凸显了开发一款应用使攀岩更安全、更易于实现的必要性,激发了他们开发 .NET MAUI 移动应用程序 Red-Point 的最初想法。Martin 与经验丰富的 .NET 开发人员 Matthew Robbins 展开合作,Matthew 拥有创建成功应用和备受喜爱的 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 创建概念证明应用,但很快意识到它并不适合设想的用户体验。凭借在 .NET 和 Xamarin.Forms 方面的专业知识,Robbins 建议将 Unity 的 3D 功能与 .NET MAUI 集成,以获得更原生的感觉。这种混合方法使他们能够利用 Unity 的 3D 渲染优势,同时利用 .NET MAUI 与本机 UI 组件和其他功能无缝集成。
使用的关键技术组件:
- .NET MAUI: 用于构建应用的核心功能和本机用户界面。
- Unity: 为了处理详细路由可视化效果的 3D 渲染。
- Azure: 用于身份验证、数据管理和云服务。
在 Red-Point 应用中集成 .NET MAUI 和 Unity 对于提供高性能无缝用户体验至关重要。.NET MAUI 处理数据管理和身份验证等核心功能,利用其强大的库生态系统和后端流程的 Azure 服务。Unity 擅长渲染详细的 3D 环境,对于可视化攀岩路线和 3D 扫描的悬崖数据至关重要。Matthew Robbins 将他们的安装程序描述为应用内的客户-服务器关系,Unity 通过数据通道与 .NET MAUI 组件进行通信。此体系结构可确保高效的数据交换和响应迅速的用户界面,将两个框架的优点组合在一起,以增强应用性能和用户体验。
.NET MAUI 与 Unity 之间的互操作性
.NET MAUI 与 Unity 的集成是开发 Red-Point 应用的基石,提供独特的功能混合,可增强性能和用户体验。之所以决定将 .NET MAUI 用于应用的核心功能,Unity 用于 3D 组件,是因为两个平台各有优势。.NET MAUI 处理数据管理、同步、身份验证和 UX,利用其强大的库生态系统并与 Azure 服务无缝集成。这允许快速开发和轻松管理后端流程。另一方面,Unity 擅长渲染详细攀岩路线和 3D 扫描悬崖数据可视化所需的复杂 3D 环境。
Matthew Robbins 将安装程序描述为应用中的客户端-服务器关系,其中 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 的排名迅速攀升,凸显了其市场需求和技术堆栈的有效性。
结论
Alpha Outdoors 利用 .NET 技术和 Azure 服务的综合套件,不仅构建了复杂的应用,而且还为自己在攀岩界的持续发展和创新奠定了基础。Red-Point 的成功凸显了将创新型技术与清晰视觉集成以解决实际问题的力量。Alpha Outdoors 计划利用 .NET 进一步构建 Red-Point 点,并期望将更多社区贡献纳入攀岩路线。
准备好开始使用了吗?
分步教程将帮助你在计算机上运行 .NET MAUI。