Red-Point от Alpha Outdoors: скалолазание для масс с .NET MAUI, Unity и Azure
Клиент
Alpha Outdoors: Red-Point
Продукты и службы
.NET MAUI
Unity
Azure Storage
Промышленность
Программное обеспечение и консультации
Размер организации
Малый (от 1 до 100 сотрудников)
Страна/регион
Австралия
В начале 2023 года увлеченный скалолаз Мартин Мора (Martin Mora) основал Alpha Outdoors после того, как едва не упал из-за неправильной оценки сложности маршрута восхождения. Этот инцидент подчеркнул необходимость создания приложения, которое сделало бы скалолазание более безопасным и доступным, что послужило толчком к возникновению первоначальной идеи создания мобильного приложения .NET MAUI Red-Point. Мартин сотрудничал с Мэтью Роббинсом, опытным разработчиком .NET, имеющим опыт создания успешных приложений и горячо любимых расширений MFractor для Visual Studio. Вместе они взяли на себя миссию по совершению революции в скалолазании.
Цифровой помощник для скалолазания
До Red-Point альпинисты полагались на физические путеводители, которые часто были громоздкими, сложными для понимания и подверженными износу в суровых условиях окружающей среды. Red-Point оцифровывает эту информацию, предложив навигацию на основе GPS и подробную трехмерную визуализацию маршрутов, к которым можно было получить доступ в автономном режиме, чтобы снизить риск выбора альпинистами неправильных или опасных маршрутов.
Инновационный сбор данных с помощью дронов
На Red-Point есть более 500 зон для скалолазания, и каждая из этих зон начинается с 3D-сканирования, позволяющего получить подробные топографические данные каждого маршрута скалолазания. Эти дроны делают снимки скальных поверхностей в высоком разрешении, которые затем обрабатываются для создания подробных трехмерных моделей. Использование дронов позволяет точно картировать районы скалолазания и предоставлять скалолазам ценную информацию для более эффективного планирования восхождений.
Процесс приема данных Red-Point работает
- Трехмерное сканирование: дроны вместе с камерами LiDAR и iPhone сканируют места восхождений, собирая комплексные визуальные данные.
- Обработка данных: Собранные данные обрабатываются для создания точных трехмерных моделей зон скалолазания.
- Интеграция с приложением: Трехмерные модели интегрируются в приложение Red-Point с помощью Unity и .NET MAUI. Альпинисты могут взаимодействовать с этими моделями для планирования своих восхождений, оценки сложности маршрутов и повышения своей безопасности.
Такой подход гарантирует альпинистам доступ к самой точной и актуальной информации, что значительно улучшает их опыт восхождения.
Выбор и использование технологий
Вначале группа экспериментировала с Unity, чтобы создать экспериментальное приложение, но быстро поняла, что оно не идеально подходит для того пользовательского опыта, который они представляли. Роббинс, обладающий опытом работы с .NET и Xamarin.Forms, предложил интегрировать 3D-возможности Unity с .NET MAUI для более естественного восприятия. Этот гибридный подход позволил им использовать сильные стороны Unity для трехмерного рендеринга, одновременно применяя .NET MAUI для бесшовной интеграции с собственными компонентами пользовательского интерфейса и другими функциями.
Ключевые используемые технологические компоненты:
- .NET MAUI: Для создания основных функций приложения и собственного пользовательского интерфейса.
- Unity: для обработки трехмерного рендеринга для детальной визуализации маршрутов.
- Azure: для аутентификации, управления данными и облачных служб.
Интеграция .NET MAUI и Unity в приложении Red-Point имела решающее значение для обеспечения высокопроизводительного и бесперебойного пользовательского опыта. .NET MAUI обрабатывает основные функции, такие как управление данными и аутентификация, используя свою надежную библиотечную экосистему и службы Azure для внутренних процессов. Unity отлично справляется с визуализацией детализированных трехфазных сред, что необходимо для визуализации маршрутов скалолазания и данных трехмерного сканирования скал. Мэтью Роббинс описал их настройку как клиент-серверную связь внутри приложения, где Unity взаимодействует через канал данных с компонентами .NET MAUI. Эта архитектура обеспечивает эффективный обмен данными и отзывчивый пользовательский интерфейс, объединяя лучшее из обеих платформ для повышения производительности приложения и удобства пользователя.
Взаимодействие между .NET MAUI и Unity
Интеграция .NET MAUI с Unity стала краеугольным камнем в разработке приложения Red-Point, предоставив уникальное сочетание возможностей, которые повышают как производительность, так и удобство использования. Решение объединить .NET MAUI для основных функций приложения с Unity для его 3D-компонентов было принято с учетом сильных сторон каждой платформы. .NET MAUI обеспечивает управление данными, синхронизацию, проверку подлинности и пользовательский интерфейс, используя свою надежную библиотечную экосистему и бесшовную интеграцию со службами Azure. Это обеспечивает быструю разработку и простое управление внутренними процессами. Unity, с другой стороны, превосходно справляется с визуализацией сложных трехмерных сред, необходимых для подробных маршрутов скалолазания, и визуализации трехмерного сканированных данных о скалах.
Мэтью Роббинс (Matthew Robbins) описал настройку как клиент-серверную связь внутри приложения, где экземпляр Unity взаимодействует по каналу данных с компонентами .NET MAUI. Такая архитектура обеспечивает эффективный обмен данными и обработку инструкций между двумя фреймворками, гарантируя бесперебойную и отзывчивую работу пользователя. Использование .NET MAUI позволяет группе использовать расширенные функции .NET, такие как асинхронное программирование и параллелизм, которые менее развиты в экосистеме Unity. Кроме того, обширные библиотеки .NET, доступные через NuGet, значительно оптимизируют процесс разработки, обеспечивая такие функции, как визуализация данных в реальном времени и сложные операции с данными с минимальными накладными расходами.
Преимущества .NET MAUI
.NET MAUI позволяет Alpha Outdoors оптимизировать производительность Red-Point в нескольких ключевых областях.
- Эффективное управление ресурсами: группа сосредоточилась на эффективном управлении ресурсами, чтобы не допустить чрезмерного потребления приложением памяти или вычислительной мощности. Это включало оптимизацию кода, сокращение ненужных фоновых процессов и обеспечение легкости и отзывчивости функций приложения.
- Асинхронное программирование: Используя методы асинхронного программирования, группа смогла улучшить отзывчивость приложения и снизить вероятность возникновения узких мест в производительности. Такой подход позволяет приложению обрабатывать несколько задач одновременно, не вызывая задержек и перебоев.
- Кэширование и сжатие данных: чтобы повысить скорость получения данных и сократить время загрузки, команда реализовала механизмы кэширования и методы сжатия данных. Это обеспечивает постоянную доступность часто используемых данных и минимизирует объем данных, которые необходимо было передавать по сети.
- Мониторинг и тестирование производительности: Группа проводила регулярный мониторинг и тестирование производительности для выявления и устранения любых потенциальных проблем. Это включало использование инструментов профилирования для анализа производительности приложения, проведение стресс-тестов для имитации высоких пользовательских нагрузок и сбор отзывов от бета-тестеров для выявления областей, требующих улучшения.
- Оптимизированный пользовательский интерфейс: группа уделила особое внимание оптимизации пользовательского интерфейса, чтобы обеспечить плавную анимацию, быстрые переходы и минимальную задержку ввода. Это включало использование аппаратного ускорения там, где это возможно, и оптимизацию конвейера рендеринга для обеспечения плавного и отзывчивого пользовательского опыта.
Масштабирование с помощью .NET и Azure
.NET MAUI обеспечивает основу для создания адаптивного, высокопроизводительного приложения, способного выполнять сложные задачи, такие как рендеринг маршрутов в реальном времени и синхронизация данных. Обширная поддержка библиотек и возможности интеграции с другими службами Майкрософт сыграли решающую роль в преодолении первоначальных технических проблем. Azure играет решающую роль в управлении доставкой контента, обеспечив надежность и производительность приложения даже в условиях быстрого роста пользовательской базы.
Вехи успешности:
- Быстрый рост: После запуска Red-Point приобретает значительную популярность, увеличивая число пользователей с 200 до 10 000 за считанные недели благодаря вирусному распространению в социальных сетях.
- Принятие пользователями: Приложение быстро поднялось в рейтинге iOS App Store, что подчеркивает его востребованность на рынке и эффективность его технологического стека.
Заключение
Используя комплексный набор технологий .NET и сервисов Azure, компания Alpha Outdoors не только создала сложное приложение, но и заняла позицию постоянного роста и инноваций в сообществе скалолазов. Успех Red-Point подчеркивает силу интеграции инновационных технологий с четким видением решения реальных проблем. Alpha Outdoors планирует использовать .NET для дальнейшего развития Red-Point и стремится привлечь больше сообщества для участия в своих альпинистских маршрутах.
Готовы приступить?
Наше пошаговое руководство поможет вам запустить .NET MAUI на вашем компьютере.