È meglio Xamarin o Apache Cordova?
La risposta corretta a questo dipende fortemente dai tuoi requisiti specifici dell'applicazione. Xamarin è davvero una piattaforma più potente e completa, con strumenti ed esperienze di debug significativamente migliori. Tuttavia non fatevi ingannare - c'è una curva di apprendimento abbastanza ripida in particolare per gli sviluppatori che sono nuovi al mobile in generale. Non c'è bisogno di imparare solo la toolchain di Xamarin e C# - è necessario anche conoscere le piattaforme iOS e Android e i modelli di app (e anche WinPhone per molte persone). Potresti non aver bisogno di imparare Java e Objective-C, ma hai ancora bisogno di imparare quelle API.
Per le app più semplici, dove il tuo team ha una conoscenza minima degli ambienti mobili, è già a suo agio con javascript/html, e dove il successo dipende meno dalle prestazioni/rispondenza e dalla "pulizia" visiva dell'interfaccia utente, allora Cordova potrebbe essere sufficiente. Molte aziende provano prima questa strada perché è certamente più economica (in termini di costo dell'investimento iniziale - NON di costo complessivo del ciclo di vita) e particolarmente attraente per i team di sviluppatori che si considerano "web shop". Anche se finiscono per abbandonare Cordova e passare al nativo o al nativo/Xamarin, saranno comunque entrati rapidamente nel mercato mobile e avranno imparato alcune lezioni sul mondo mobile.
Tuttavia è uno scenario abbastanza comune trovare aziende che hanno provato prima Cordova e lo stanno sostituendo con una soluzione Xamarin. Il 75% dei progetti per cui sono stato coinvolto sono stati così. O hanno colpito un muro di mattoni con Cordova (o qualche altra piattaforma ibrida) in termini di funzionalità o prestazioni, o l'hanno trovato troppo fastidioso da mantenere. In molti casi, gli utenti finali si sono lamentati (a gran voce) dell'UI - di solito perché le app ibride non corrispondono mai al look and feel UX di una vera app nativa... specialmente subito dopo il lancio di un nuovo sistema operativo. Ho visto alcune app ibride in esecuzione su iOS8 che potrebbero essere state tollerate ai tempi di iOS5, ma sono assolutamente orribili per gli standard UX di oggi. Le app native adottano automaticamente l'UX aggiornata (a patto che usino i controlli integrati invece di controlli UI completamente personalizzati), e di solito non soffrono di questo problema.