Alpha Outdoors 的 Red-Point: 使用 .NET MAUI、Unity 和 Azure 为大众提供攀岩体验

客户
Alpha Outdoors: Red-Point

产品和服务
.NET MAUI
Unity
Azure Storage

行业
软件和咨询

组织规模
小型(1-100 名员工)

国家/地区
澳大利亚

2023 年初,热衷于攀岩的 Martin Mora 因错误判断攀岩路线的难度而险些坠落,在经历了一场惊心动魄的事故后,他创立了 Alpha Outdoors。这场事故凸显了开发一款应用使攀岩更安全、更易于实现的必要性,激发了他们开发 .NET MAUI 移动应用程序 Red-Point 的最初想法。Martin 与经验丰富的 .NET 开发人员 Matthew Robbins 展开合作,Matthew 拥有创建成功应用和备受喜爱的 Visual Studio MFractor 扩展的背景。他们一起开始了一项彻底改变攀岩体验的使命。

Red-Point 移动应用的屏幕截图,其中显示了山的拓扑和要攀爬的路线等功能。

数字攀岩助手

在 Red-Point 之前,攀岩者依赖于物理指南,这些指南通常繁琐、难以解释,并且在恶劣的户外环境中容易退化。Red-Point 将此信息数字化,提供基于 GPS 的导航和详细的 3D 路由可视化效果,这些可视化效果可脱机访问,以降低攀岩者踏上错误或危险路线的风险。

使用无人机进行创新数据收集

Red-Point 上有 500 多个攀岩区域,其中每个区域都以 3D 扫描开始,用于捕获每条攀岩路线的详细拓扑数据。这些无人机捕获岩石表面的高分辨率图像,然后对其进行处理以生成详细的 3D 模型。使用无人机,可以精确地映射攀岩区域,并为攀岩者提供有价值的见解,以更有效地规划攀岩。

一位穿着 Red-point T 恤的男士在外面拿着一架无人机。

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 应用如何使用本机绑定与 Unity 主机通信的关系图。

.NET MAUI 的优势

.NET MAUI 允许 Alpha Outdoors 在多个关键领域优化 Red-Point 的性能。

  • 高效的资源管理: 团队专注于高效的资源管理,以阻止应用消耗过多的内存或处理能力。这涉及优化代码、减少不必要的后台流程,并确保应用的功能轻便且响应迅速。
  • 异步编程: 通过利用异步编程技术,团队能够提高应用的响应能力并降低性能瓶颈的可能性。此方法允许应用同时处理多个任务,而不会导致延迟或中断。
  • 缓存和数据压缩: 为了提高数据检索速度并缩短加载时间,团队实施了缓存机制和数据压缩技术。这确保了经常访问的数据随时可用,并最大程度地减少了需要通过网络传输的数据量。
  • 性能监视和测试: 团队定期进行性能监视和测试,以确定并解决任何潜在问题。这涉及使用分析工具分析应用的性能、执行压力测试以模拟高用户负载,以及收集 beta 测试人员的反馈以确定要改进的领域。
  • 优化用户界面: 团队特别注意优化用户界面,以确保动画流畅、快速切换和最小输入延迟。这涉及尽可能地使用硬件加速,以及优化渲染管道以提供流畅且响应迅速的用户体验。

Red-Point 应用的屏幕截图,其中显示了地图视图,并用海拔高度变化勾勒出路线。

使用 .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。

开始