알파 아웃도어의 레드 포인트: .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은 성공적인 앱을 만드는 데 대한 배경 지식과 Visual Studio를 위해 많은 것을 좋아하는 MFractor 확장을 갖춘 노련한 .NET 개발자인 Andrew Andrewins와 협력했습니다. 두 사람은 함께 등산 환경을 혁신하는 임무를 시작했습니다.

산의 토폴로지 및 등산할 선과 같은 기능을 표시하는 Red-Point 모바일 앱의 스크린샷.

디지털 등산 도우미

레드 포인트 이전에는 등산자는 종종 번거롭고 해석하기 어려우며 거친 실외 환경에서 저하되기 쉬운 물리적 가이드북에 의존했습니다. Red-Point는 이 정보를 디지털화하여 GPS 기반 탐색 및 오프라인으로 액세스할 수 있는 자세한 3D 경로 시각화를 제공하여 등산자가 올바르지 않거나 위험한 경로를 이용하는 위험을 줄입니다.

드론을 사용한 혁신적인 데이터 수집

Red-Point에는 500개가 넘는 등산 영역이 있으며 각 영역은 3D 검색으로 시작하여 각 등산 경로의 자세한 토폴로지 데이터를 캡처합니다. 이러한 드론은 암석 얼굴의 고해상도 이미지를 캡처한 다음, 자세한 3D 모델을 생성하기 위해 처리됩니다. 드론을 사용하면 등산 영역을 정확하게 매핑하고 등산자에게 보다 효과적으로 등산을 계획할 수 있는 귀중한 인사이트를 제공할 수 있습니다.

밖에서 드론을 들고 빨간색 포인트 티셔츠를 입은 남자.

Red-Point 데이터 수집 프로세스가 작동합니다.

  • 3D 스캔: LiDAR 카메라 및 iPhone과 함께 드론은 등산 사이트를 스캔하여 포괄적인 시각적 데이터를 캡처합니다.
  • 데이터 처리: 수집된 데이터는 등산 영역의 정확한 3D 모델을 만들기 위해 처리됩니다.
  • App과 통합: 3D 모델은 Unity 및 .NET MAUI 사용하여 Red-Point 앱에 통합됩니다. 등산자는 이러한 모델과 상호 작용하여 등산을 계획하고, 경로의 어려움을 평가하고, 안전을 향상시킬 수 있습니다.

이 접근 방식을 사용하면 등산자가 가장 정확하고 최신 정보에 액세스할 수 있으므로 등산 환경이 크게 향상됩니다.

기술 선택 및 사용

처음에 팀은 개념 증명 앱을 만들기 위해 Unity를 실험했지만, 이 앱이 구상한 사용자 환경에 적합하지 않다는 것을 빠르게 실현했습니다. .NET 및 Xamarin.Forms에 대한 전문 지식을 갖춘 Robbbins는 Unity의 3D 기능을 더 기본적인 느낌을 위해 .NET MAUI 통합할 것을 제안했습니다. 이 하이브리드 접근 방식을 통해 3D 렌더링에 Unity의 장점을 활용하는 동시에 네이티브 UI 구성 요소 및 기타 기능과의 원활한 통합을 위해 .NET MAUI 활용할 수 있습니다.

사용되는 주요 기술 구성 요소:

  • .NET MAUI: 앱’의 핵심 기능 및 네이티브 사용자 인터페이스를 빌드합니다.
  • Unity: 자세한 경로 시각화에 대한 3D 렌더링을 처리합니다.
  • Azure: 인증, 데이터 관리 및 클라우드 서비스용입니다.

Red-Point 앱에서 .NET MAUI 및 Unity의 통합은 고성능의 원활한 사용자 환경을 제공하는 데 매우 중요했습니다. .NET MAUI 강력한 라이브러리 에코시스템과 백 엔드 프로세스를 위한 Azure 서비스를 활용하여 데이터 관리 및 인증과 같은 핵심 기능을 처리합니다. Unity는 암석 등산 경로 및 3D 스캔된 클리핑 데이터를 시각화하는 데 필수적인 세부적인 3D 환경을 렌더링하는 데 탁월합니다. Andrew Plugins는 앱 내에서 클라이언트-서버 관계로 설정을 설명했습니다. Unity는 .NET MAUI 구성 요소와 데이터 채널을 통해 통신합니다. 이 아키텍처는 효율적인 데이터 교환과 응답성이 뛰어난 사용자 인터페이스를 보장하며, 두 프레임워크의 최고를 결합하여 앱 성능과 사용자 환경을 향상시킵니다.

.NET MAUI Unity 간의 상호 운용성

Unity와 .NET MAUI 통합은 Red-Point 앱 개발의 초석이 되었으며, 성능과 사용자 환경을 모두 향상시키는 고유한 기능 혼합을 제공합니다. 앱의 핵심 기능에 대한 .NET MAUI 3D 구성 요소에 대한 Unity와 결합하기로 한 결정은 각 플랫폼의 장점에 따라 결정되었습니다. .NET MAUI 강력한 라이브러리 에코시스템과 Azure 서비스와의 원활한 통합을 활용하여 데이터 관리, 동기화, 인증 및 UX를 처리합니다. 이를 통해 백 엔드 프로세스를 빠르게 개발 및 쉽게 관리할 수 있습니다. 반면 Unity는 세부 암석 등산 경로 및 3D 스캔된 클리핑 데이터 시각화에 필요한 복잡한 3D 환경을 렌더링하는 데 탁월합니다.

이 설정을 앱 내에서 클라이언트-서버 관계로 설명했습니다. 여기서 Unity 인스턴스는 데이터 채널을 통해 .NET MAUI 구성 요소와 통신합니다. 이 아키텍처는 두 프레임워크 간의 효율적인 데이터 교환 및 명령 처리를 용이하게 하여 원활하고 응답성이 뛰어난 사용자 환경을 보장합니다. .NET MAUI 사용하면 팀이 Unity 에코시스템에서 완성도가 낮은 비동기 프로그래밍 및 병렬 처리와 같은 고급 .NET 기능을 활용할 수 있습니다. 또한 NuGet을 통해 사용할 수 있는 광범위한 .NET 라이브러리는 개발 프로세스를 크게 간소화하여 최소한의 오버헤드로 실시간 데이터 시각화 및 복잡한 데이터 작업과 같은 기능을 지원합니다.

.NET MAUI 앱이 네이티브 바인딩을 사용하여 Unity 호스트와 통신하는 방법에 대한 다이어그램입니다.

.NET MAUI의 이점

.NET MAUI 알파 아웃도어는 여러 주요 영역에서 Red-Point의 성능을 최적화할 수 있습니다.

  • 효율적인 리소스 관리: 팀은 앱이 과도한 메모리를 소비하거나 전원을 처리하는 것을 방지하기 위해 효율적인 리소스 관리에 집중했습니다. 여기에는 코드를 최적화하고, 불필요한 백그라운드 프로세스를 줄이고, 앱의 기능이 쉽고 응답성이 뛰어난지 확인하는 것이 포함되었습니다.
  • 비동기 프로그래밍: 비동기 프로그래밍 기술을 활용하여 팀은 앱의 응답성을 개선하고 성능 병목 현상의 가능성을 줄일 수 있었습니다. 이 접근 방식을 통해 앱은 지연 또는 중단을 일으키지 않고 여러 작업을 동시에 처리할 수 있습니다.
  • 캐싱 및 데이터 압축: 데이터 검색 속도를 향상시키고 로드 시간을 줄이기 위해 팀은 캐싱 메커니즘 및 데이터 압축 기술을 구현했습니다. 이렇게 하면 자주 액세스하는 데이터를 쉽게 사용할 수 있고 네트워크를 통해 전송해야 하는 데이터의 양을 최소화할 수 있었습니다.
  • 성능 모니터링 및 테스트: 팀은 잠재적인 문제를 식별하고 해결하기 위해 정기적인 성능 모니터링 및 테스트를 수행했습니다. 여기에는 프로파일링 도구를 사용하여 앱의 성능을 분석하고, 스트레스 테스트를 수행하여 높은 사용자 부하를 시뮬레이션하고, 베타 테스터로부터 피드백을 수집하여 개선 영역을 식별하는 과정이 포함되었습니다.
  • 최적화된 사용자 인터페이스: 팀은 원활한 애니메이션, 빠른 전환 및 최소한의 입력 지연을 보장하기 위해 사용자 인터페이스를 최적화하는 데 특별히 주의를 기울입니다. 여기에는 가능한 경우 하드웨어 가속을 사용하고 렌더링 파이프라인을 최적화하여 유연하고 응답성이 뛰어난 사용자 환경을 제공하는 것이 포함됩니다.

권한 상승 변경으로 윤곽선이 표시된 경로가 있는 지도 보기를 보여 주는 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을 활용할 계획입니다.

시작할 준비가 되셨나요?

단계별 자습서는 컴퓨터에서 .NET MAUI을(를) 실행하는 데 도움이 될 것입니다.

시작하기