Mobile e dispositivi connessi, da chi ha scritto le librerie
Le librerie Shiny (Bluetooth, job in background, notifiche push, posizione e sincronizzazione per .NET) hanno superato i 40 milioni di download e si trovano nel file di progetto di app che conoscete. Le abbiamo scritte noi, le manteniamo noi e collaboriamo con il team .NET MAUI di Microsoft. Quando la vostra app deve funzionare su dispositivi reali sul campo, è questa la profondità che state ingaggiando.
La vostra app Xamarin non è più supportata e il porting a .NET MAUI continua ad arenarsi sulle dipendenze.
Il lavoro in background, il Bluetooth o le notifiche push funzionano in demo e falliscono sul campo.
Avete un hardware e vi serve un’app che ci dialoghi in modo affidabile su entrambe le piattaforme.
La vostra app MAUI è lenta ad avviarsi o va in crash in modi che non riuscite a riprodurre.
Cosa costruiamo
Il lato dispositivi dell’azienda, costruito su fondamenta già in produzione.
Mobile e multipiattaforma
App .NET MAUI, iOS e Android in produzione e conversioni da Xamarin a MAUI, compreso il lavoro su background, offline e ciclo di vita che la maggior parte dei team sbaglia. Collaboriamo con il team .NET MAUI di Microsoft fin dalla nascita di MAUI.
IoT e Bluetooth
BLE central e peripheral, flotte di dispositivi e integrazione hardware. Le librerie che il settore usa per questo le abbiamo scritte noi.
Flotte e operazioni sul campo
Tracciamento della posizione, geofencing e telematica per veicoli e squadre che lavorano dove la connettività non è garantita.
Wearable e auto
App per Apple Watch, Wear OS, CarPlay e Android Auto che portano la vostra app mobile al polso e sul cruscotto, pensate per uno sguardo o un comando vocale, non per lo schermo di un telefono in miniatura. Il collegamento tra telefono e orologio si basa su una libreria che abbiamo scritto noi.
Il ritorno, in aritmetica semplice
Un budget compra mesi di ingegneria. La domanda è come vengono spesi quei mesi. In un prodotto connesso, qualunque cosa abbia un dispositivo, un processo in background o un funzionamento offline, una larga parte del primo anno finisce in infrastruttura che il cliente non vede e che migliaia di team hanno già scritto.
Fondamenta e infrastrutturaIl vostro prodotto
Sviluppo tipico
Con noi
Proporzioni indicative: la ripartizione esatta dipende dal progetto. Quello che non cambia è da quale parte della linea state pagando un team di ingegneri per ricostruire.
Prima
Ricavi e feedback arrivano prima, perché il calendario non si apre con un trimestre di lavori preparatori.
Più sicuro
I sottosistemi più rischiosi (lavoro in background, sincronizzazione, connettività dei dispositivi) sono collaudati in produzione prima che il vostro progetto inizi.
Meno costoso da mantenere
Meno codice di vostra esclusiva proprietà significa meno da correggere, portare e presidiare ogni anno dopo la consegna.
Il vertice che la maggior parte dei progetti sacrifica è uno che abbiamo già pagato, alla luce del sole, in 25 anni, ed è incluso nell’incarico. Quello che vi dà è semplice: una parte maggiore dell’anno va nel prodotto che volevate costruire, e una minore nell’arrivare alla linea di partenza.
Migrazione da Xamarin a .NET MAUI
Tutto ciò da cui dipendeva la vostra app Xamarin, lo abbiamo già noi
Le conversioni da Xamarin a .NET MAUI sono una nostra specialità, e lo è anche .NET MAUI stesso. Collaboriamo con il team .NET MAUI di Microsoft fin dalla nascita di MAUI, e le nostre librerie hanno contribuito a plasmare l’ecosistema su cui oggi si costruiscono le app MAUI.
Il supporto a Xamarin è terminato a maggio 2024. Quello che blocca questi porting non è quasi mai la conversione della UI: è l’elenco delle dipendenze. Ogni plugin abbandonato dietro Bluetooth, attività in background, posizione, notifiche push, archiviazione e sincronizzazione va sostituito con qualcosa che nessuno nel team ha mai usato in produzione. È in quella valutazione che se ne vanno i mesi, ed è lì che sta il rischio.
Come va di solito il porting
Settimane a esaminare plugin morti e a scegliere sostituti alla cieca.
Compila, funziona in demo, e poi il comportamento in background, offline e Bluetooth regredisce in silenzio sui dispositivi reali sul campo.
Tutto ciò che nessun sostituto copre diventa codice di piattaforma su misura che il vostro team dovrà mantenere per sempre.
Lo sviluppo di nuove funzionalità si ferma per tutta la durata, perché tutti sono sulla migrazione.
Come va con noi
L’analisi delle dipendenze è per lo più una consultazione. Sappiamo cosa sostituisce cosa perché il sostituto lo pubblichiamo e lo manteniamo noi.
I sottosistemi pericolosi arrivano già risolti: sono in produzione oggi, su iOS e Android, nelle app di altre aziende.
Abbiamo fatto questo porting abbastanza volte da sapere dove fa davvero male, quindi la stima si basa sul lavoro, non sull’ottimismo.
Approdate su librerie open source con oltre 40 milioni di download, non su uno strato privato che capisce solo il fornitore.
Coperto internamente, già in produzione
Non c’è una sezione di un’app mobile per cui vi restituiamo un elenco di opzioni da andare a studiare. Prendete qualsiasi parte della vecchia app: la risposta esiste già.
Bluetooth e hardwareBLE central e peripheral, GATT, L2CAP e il comportamento di pairing e riconnessione che emerge solo sui dispositivi reali.
Attività in backgroundLavoro che continua a girare sotto gli scheduler del sistema operativo su iOS e Android invece di morire con l’app.
Posizione e geofencingTracciamento GPS, geofence e rilevamento dell’attività di movimento, compresa la trafila dei permessi in background imposta da entrambi gli store.
Notifiche pushAPNs e FCM nativi sul dispositivo, Azure Notification Hubs se lo usate, e il lato server che le invia.
Notifiche localiPianificazione, ripetizioni, canali, badge e azioni interattive su entrambe le piattaforme.
Archiviazione offlineImpostazioni e archivi chiave/valore, più un database documentale su SQLite e i motori server che lo affiancano.
Sincronizzazione e trasferimentiSincronizzazione bidirezionale e upload/download in background che resistono a zone senza copertura, sospensioni e risparmio energetico.
Voce e audioSpeech-to-text, text-to-speech, parola di attivazione e flussi a mani libere per chi non può tenere in mano un telefono.
Dati del dispositivoContatti, dati sanitari, libreria musicale e permessi gestiti come ogni piattaforma si aspetta.
Codici a barre e scansioneScansione con fotocamera e generazione di codici per le simbologie su cui si basano le app di magazzino e da campo.
Controlli UITable view, tree view, overlay, chat, editing di immagini, picker e badge: la suite di controlli su cui si reggevano le vecchie app.
Architettura dell’appDependency injection, hosting, navigazione, localizzazione e pattern mediator, perché la struttura dell’app sopravviva al passaggio.
AI nell’appAssistenti, chat e voce integrati mentre siete già nel codice, se la ricostruzione è il momento giusto per farlo.
Come iniziamo una migrazione
Un’analisi delle dipendenze e dei rischi sulla soluzione esistente: cosa si trasferisce direttamente, cosa non ha equivalenti e cosa non dovrebbe sopravvivere affatto al passaggio. Il risultato è un piano a fasi di cui potete stimare i costi, e il porting procede piattaforma per piattaforma accanto alla vostra roadmap, senza congelarla.
Siete già su .NET MAUI?
Non tutti gli incarichi MAUI sono migrazioni. Aiutiamo anche i team che il passaggio lo hanno già fatto: prestazioni e tempi di avvio, lavoro in background che ha smesso di partire dopo un aggiornamento del sistema operativo, handler e codice di piattaforma, crash che si riproducono solo su dispositivi reali, e stare al passo con ogni nuova release di .NET. Coinvolgeteci per una revisione, per un problema ostinato o come ingegneri MAUI senior accanto ai vostri.
Offerte di ingresso a perimetro definito
Un primo passo che un manager può approvare
Ogni incarico può partire da una di queste. Ognuna ha un nome e un perimetro messo per iscritto prima di iniziare, così la prima decisione è piccola e vedete come lavoriamo prima di impegnarvi in qualcosa di più grande.
10–20 ore, concluse entro 2 settimane
Check-up .NET MAUI
Per le app già su .NET MAUI: tempi di avvio, crash che si riproducono solo su dispositivi reali e lavoro in background che ha smesso di partire dopo un aggiornamento del sistema operativo.
Cosa è incluso
Avvio, memoria e rendering profilati su dispositivi reali
Report di crash e ANR analizzati fino alla causa
Comportamento di background, push e ciclo di vita verificato
Percorso di aggiornamento alla prossima release di .NET
Cosa vi resta in mano
Un elenco ordinato di correzioni, con le più gravi diagnosticate fino alla riga di codice.
Ogni plugin e dipendenza di piattaforma della vostra app Xamarin mappato su ciò che lo sostituisce in .NET MAUI: il passaggio su cui si arena la maggior parte dei porting.
Cosa è incluso
Inventario di ogni pacchetto NuGet e binding di piattaforma
Un sostituto per ciascuno, già in produzione altrove
Cosa non ha equivalenti e cosa non dovrebbe sopravvivere al passaggio
Piano di migrazione a fasi e con i costi
Cosa vi resta in mano
Un piano di migrazione costruito su una consultazione anziché su una fase di ricerca, e una stima vera.
Il vostro hardware che dialoga con un’app reale su iOS e Android (scansione, connessione, riconnessione e sincronizzazione in background) su dispositivi veri, non in un simulatore.
Cosa è incluso
Connessione BLE, GATT e comportamento di riconnessione sul vostro dispositivo
Funzionamento in background nel rispetto delle regole di ciascun sistema operativo
Dati sincronizzati con un endpoint cloud
Osservazioni su firmware e protocollo, se richiedono modifiche
Cosa vi resta in mano
La prova che la parte difficile funziona su telefoni veri, e un percorso con i costi verso l’app di produzione.
Ogni offerta viene quotata a prezzo fisso dopo aver visto il perimetro, e un prezzo fisso resta fisso: se ci mettiamo di più, è un problema nostro, non vostro.
Le domande che ci fanno i clienti
Quanto dura una migrazione da Xamarin a .NET MAUI?
Raramente è la conversione della UI a deciderlo: è l’elenco delle dipendenze. L’audit delle dipendenze di due settimane mappa ogni plugin sul suo sostituto e lo trasforma in una stima a fasi.
Dobbiamo usare le librerie Shiny?
No. Di solito conviene, perché sono open source, già in produzione e mantenute dalle stesse persone che fanno il lavoro. Non restate mai vincolati a uno strato privato che capisce solo il fornitore.
Potete lavorare con il nostro team hardware o con il fornitore del firmware?
Sì. La maggior parte dei problemi Bluetooth si trova al confine tra l’app e il firmware, e siamo abituati a lavorare a cavallo di quel confine, anche dicendo a un fornitore cosa deve cambiare dalla sua parte.
Sviluppate app native in Swift e Kotlin?
La nostra profondità è in .NET MAUI e .NET per iOS e Android, compreso il codice nativo di piattaforma sottostante. Se un’app nativa è la scelta giusta per il vostro prodotto, ve lo diremo.
State costruendo qualcosa che deve funzionare sul campo?
Raccontateci l’app, i dispositivi e dove vengono usati. Vi diremo dove di solito le cose vanno storte, e come lo eviteremmo.
Usiamo Google Analytics per capire su quali pagine vale la pena scrivere di più. Resta disattivato finché non ci direte il contrario, e nulla su questo sito dipende da esso. Consultate la nostra informativa sulla privacy.