Como alguien más señaló … el término de desarrollo híbrido no es realmente adecuado.
Hay diferencias fundamentales en cómo funcionan Cordova vs Xamarin.
Cordova es básicamente un contenedor de API nativo alrededor de la pila HTML / CSS / JS. Lo que significa que puede crear un sitio web normal con html, css, js … y simplemente empaquetarlo con cordova como aplicación nativa e implementarlo en tiendas de aplicaciones.
- ¿Cuáles son las propiedades de un iOS?
- ¿Debo ingresar para el desarrollo de aplicaciones iOS o Windows?
- Cómo enviar una notificación desde Parse Dashboard
- ¿Es posible suspender un UiWebView, similar a un safari móvil?
- ¿Cómo es tu nueva experiencia con la aplicación iPad Quora?
Cordova es ese contenedor y le permite acceder a ciertas API de hardware desde SDK nativos como el mínimo común denominador (leer ubicación geográfica, vibración, cámara, etc.) a través de bibliotecas Javascript … así que la forma en que funciona es que simplemente cree su HTML / CSS / JS sitio web / webapp y luego use Javascript para conectarse a algunas API de hardware nativas que en su mayor parte no se pueden hacer desde el navegador.
Las aplicaciones empaquetadas con Cordova no son realmente aplicaciones nativas verdaderas. Son simplemente una vista web envuelta que tiene enlaces en las API de hardware del dispositivo. Entonces, todos los problemas con el rendimiento, los problemas de representación del navegador en todas las plataformas aún persisten.
Cuando se trata de Xamarin, es probablemente el mejor marco y entorno de desarrollo de aplicaciones nativas multiplataforma (se basa en el popular marco Mono). La forma en que trabaja Xamarin es muy diferente a la de Córdoba. Xamarin compila el código en código binario nativo real, lo que significa que es una verdadera aplicación nativa. Xamarin también trabaja directamente con los últimos SDK de la plataforma para la que está desarrollando y utiliza algunas de las API específicas que son exclusivas de iOS o Android, etc., además de las API que son comunes para todas las plataformas. Esto es importante porque con Cordova / PhoneGap tienes que esperar a que se agreguen algunas nuevas API sexy (si es que lo hacen) mientras Xamarin trabaja con los últimos SDK y API que te permiten estar siempre a la vanguardia. Xamarin también usa el lenguaje de programación C #, que en realidad es un lenguaje de programación realmente sólido y muy similar a Java, pero con algunas de las mejores cosas tomadas de otros lenguajes también.
Cuando compila una aplicación Xamarin, debe compilarla en una plataforma nativa porque Xamarin produce una aplicación nativa verdadera (SDK nativos y todo). Xamarin también trabaja con controles de interfaz de usuario nativos (algo muy grande) a diferencia de Cordova, donde básicamente está creando / imitando controles de interfaz de usuario nativos (nunca es una buena idea).
En general, si desea aprender buenos marcos de desarrollo multiplataforma, Xamarin es probablemente uno de los mejores. Se han creado muchas aplicaciones grandes y funcionan bien (especialmente Rdio y otras), por lo que está comprobado en el campo. Xamarin ofrece rendimiento e integración de UI nativa junto con API / SDK nativas que le permiten usar siempre lo último y lo mejor en esas plataformas específicas, mientras que las partes generales de su código todavía tienen una lógica que se aplica en todas las plataformas.
Mi consejo, si está preguntando si debe examinar Cordova o Xamarin o no, es que no debe perder el tiempo con Cordova … simplemente vaya directamente a Xamarin / C #.