Red-Point di Alpha Outdoors: arrampicata su roccia per la roccia con .NET MAUI, Unity e Azure
Cliente
Alpha Outdoors: Red-Point
Prodotti e servizi
.NET MAUI
Unity
Azure Storage
Settore
Software e consulenza
Dimensioni dell'organizzazione
Piccole dimensioni (1-100 dipendenti)
Paese/area geografica
Australia
All'inizio del 2023, l'appassionato scalatore Martin Mora ha creato Alpha Outdoorsdopo essere andato vicino a una spaventosa caduta libera dovuta a un'errata valutazione della difficoltà di un percorso di arrampicata. Questo evento imprevisto ha evidenziato la necessità di un'app che rendesse l'arrampicata più sicura e accessibile, che ha dato vita all'idea iniziale dell'applicazione mobile .NET MAUI Red-Point. Martin ha collaborato con Matthew Robbins, uno sviluppatore .NET esperto con un background nella creazione di app di successo e delle estensioni MFractor molto amate per Visual Studio. Insieme si sono impegnati a rivoluzionare l'esperienza di scalata.
Un complemento per l'arrampicata digitale
Prima di Red Point, gli scalatori si affidavano a guide fisiche, spesso complesse, difficili da interpretare e soggette a riduzione delle prestazioni in ambienti esterni difficili. Il punto rosso ha digitalizzato queste informazioni, offrendo la navigazione basata su GPS e visualizzazioni dettagliate del percorso 3D a cui è possibile accedere offline per ridurre il rischio di scalatori che si avventurano su percorsi non corretti o pericolosi.
Raccolta di dati innovative con droni
In Red-Point sono presenti più di 500 areee di arrampicata e ognuna di queste aree inizia come scansione 3D per acquisire dati topografici dettagliati di ogni percorso di arrampicata. Questi droni catturano immagini ad alta risoluzione delle pareti rocciose, che vengono poi elaborate per generare modelli 3D dettagliati. L'uso dei droni consente una mappatura precisa delle aree di arrampicata e offre agli scalatori preziosi spunti per pianificare le arrampicate in modo più efficace.
Il processo di inserimento dati Red-Point funziona
- 3D Scanning: Droni insieme alle fotocamere LiDAR e agli iPhone analizzano i siti di scalata, acquisendo dati visivi completi.
- Elaborazione dati: I dati raccolti vengono elaborati per creare modelli 3D precisi delle aree scalabili.
- Integrazione con App: I modelli 3D sono integrati nell'app Red-Point usando Unity e .NET MAUI. Gli scalatori possono interagire con questi modelli per pianificare le loro scalate, valutare le difficoltà del percorso e migliorare la loro sicurezza.
Questo approccio garantisce che gli scalatori abbiano accesso alle informazioni più accurate e aggiornate, migliorando in modo significativo la loro esperienza di arrampicata.
Scelta e utilizzo della tecnologia
Inizialmente, il team ha tentato di creare un'app di prova con Unity, ma si è subito reso conto che non era l'ideale per l'esperienza utente prevista. Robbins, con la sua esperienza in .NET e Xamarin.Forms, ha proposto l'integrazione delle funzionalità 3D di Unity con .NET MAUI per un aspetto più nativo. Questo approccio ibrido ha consentito di sfruttare i punti di forza di Unity per il rendering 3D, usando .NET MAUI per un'integrazione senza problemi con i componenti nativi dell'interfaccia utente e altre funzionalità.
Componenti chiave della tecnologia usati:
- .NET MAUI: Per creare le funzionalità principali dell'app’e l'interfaccia utente nativa.
- Unity: Per gestire il rendering 3D per visualizzazioni dettagliate della route.
- Azure: per l'autenticazione, la gestione dei dati e i servizi cloud.
L'integrazione di .NET MAUI e Unity nell'app Red-Point è stata fondamentale per offrire un'esperienza utente uniforme e ad alte prestazioni. .NET MAUI si occupa di funzionalità di base come la gestione dei dati e l'autenticazione, sfruttando il solido ecosistema di librerie e i servizi di Azure per i processi back-end. Unity eccelle nel rendering di ambienti 3D dettagliati, essenziali per la visualizzazione di percorsi di arrampicata su roccia e dati relativi alla roccia analizzati in 3D. Matthew Robbins ha descritto la loro configurazione come una relazione client-server all'interno dell'applicazione, con Unity che comunica tramite un canale di dati con i componenti MAUI .NET. Questa architettura garantisce uno scambio di dati efficiente e un'interfaccia utente reattiva, combinando il meglio di entrambi i framework per migliorare le prestazioni dell'app e l'esperienza utente.
Interoperabilità tra .NET MAUI e Unity
L'integrazione di .NET MAUI con Unity è stata fondamentale per lo sviluppo dell'app Red-Point, offrendo una combinazione unica di funzionalità che migliorano sia le prestazioni sia l'esperienza utente. La decisione di combinare .NET MAUI per le funzionalità di base dell'app con Unity per i componenti 3D è stata determinata dai punti di forza di ogni piattaforma. .NET MAUI si occupa della gestione dei dati, la sincronizzazione, l'autenticazione e l'esperienza utente, sfruttando il solido ecosistema di librerie e la perfetta integrazione con i servizi di Azure. Ciò consente lo sviluppo rapido e la gestione semplificata dei processi back-end. Unity, d'altra parte, eccelle nel rendering degli ambienti 3D complessi necessari per i percorsi di arrampicata su roccia dettagliati la visualizzazione dei dati relativi alle rocce analizzate in 3D.
Matthew Robbins ha descritto la configurazione come una relazione client-server all'interno dell'applicazione, in cui l'istanza di Unity comunica attraverso un canale di dati con i componenti .NET MAUI. Questa architettura facilita l'efficiente scambio di dati e l'elaborazione delle istruzioni tra i due framework, garantendo un'esperienza utente fluida e reattiva. L'uso di .NET MAUI consente al team di usare funzionalità avanzate di .NET, ad esempio programmazione asincrona e parallelismo, meno mature nell'ecosistema Unity. Inoltre, le estese librerie .NET disponibili tramite NuGet semplificano significativamente il processo di sviluppo, abilitando funzionalità come la visualizzazione dei dati in tempo reale e operazioni complesse sui dati con un sovraccarico minimo.
Vantaggi di .NET MAUI
.NET MAUI ha consentito ad Alpha Outdoors di ottimizzare le prestazioni di Red-Point in diverse aree chiave.
- Gestione efficiente delle risorse: il team si è concentrato sulla gestione efficiente delle risorse per impedire all'app di consumare memoria o potenza di elaborazione eccessive. Ciò ha comportato l'ottimizzazione del codice, la riduzione dei processi in background non necessari e la garanzia che le funzionalità dell'app fossero leggere e reattive.
- Programmazione asincrona: Utilizzando tecniche di programmazione asincrone, il team è riuscito a migliorare la velocità di risposta dell'app e ridurre le probabilità di colli di bottiglia delle prestazioni. Questo approccio ha consentito all'app di gestire più attività contemporaneamente senza causare ritardi o interruzioni.
- Memorizzazione nella cache e compressione dei dati: per migliorare la velocità di recupero dei dati e ridurre i tempi di caricamento, il team ha implementato meccanismi di memorizzazione nella cache e tecniche di compressione dei dati. Ciò ha assicurato che i dati a cui si accedeva di frequente fossero immediatamente disponibili e si riducesse al minimo la quantità di dati che dovevano essere trasferiti in rete.
- Monitoraggio e test delle prestazioni: il team ha eseguito regolarmente test e monitoraggio delle prestazioni per identificare e risolvere eventuali problemi potenziali. Ciò implica l'uso degli strumenti di profilatura per analizzare le prestazioni dell'app, l'esecuzione di test di stress per simulare carichi utente elevati e la raccolta di feedback da beta tester per identificare le aree da migliorare.
- Interfaccia utente ottimizzata: Il team ha riservato particolare attenzione all'ottimizzazione dell'interfaccia utente per garantire animazioni uniformi, transizioni rapide e ritardi di input minimi. Ciò implicava l'uso dell'accelerazione hardware dove possibile e l'ottimizzazione della pipeline di rendering per offrire un'esperienza utente fluida e reattiva.
Ridimensionamento con .NET e Azure
.NET MAUI ha fornito le basi per la creazione di un'app reattiva ad alte prestazioni in grado di gestire attività complesse come il rendering dei percorsi in tempo reale e la sincronizzazione dei dati. Le funzionalità estese di supporto e integrazione delle librerie con altre servizi Microsoft sono state fondamentali per le sfide tecniche iniziali. Azure ha svolto un ruolo fondamentale nella gestione della distribuzione di contenuti, garantendo che l'app rimanga affidabile ed efficiente, anche se la base di utenti si è espansa rapidamente.
Attività cardine riuscite:
- Crescita rapida: Dopo il lancio, Red-Point ha ottenuto una popolarità crescente, passando da 200 a 10.000 utenti in poche settimane, sull'onda dei social media.
- Adozione degli utenti: l'app ha rapidamente scalato le classifiche nel App Store iOS, evidenziando la domanda di mercato e l'efficacia del suo stack di tecnologie.
Conclusione
Sfruttando la suite completa di tecnologie .NET e servizi di Azure, Alpha Outdoor non solo ha creato un'app sofisticata, ma si è anche assicurata una posizione per la crescita continua e l'innovazione nella community di arrampicata. Il successo di Red-Point sottolinea la potenza dell'integrazione di tecnologie innovative con una visione chiara per risolvere problemi reali. Alpha Outdoor prevede di sfruttare .NET mentre sviluppa ulteriormente Red-Point e aspira a incorporare altri contributi della community nei percorsi di arrampicata.
Pronti per iniziare?
Questa esercitazione dettagliata ti aiuterà a ottenere .NET MAUI in esecuzione nel computer.