Tengo un fondo de C # y ahora necesito crear una aplicación para Android y iPhone. ¿Aprenderías desarrollo nativo para cada uno o usarías Xamarin para ambos?

Ok, déjame ayudarte en una parte de la pregunta. Los productos de Xamarin producen aplicaciones nativas, por lo que la pregunta en sí es engañosa. Inicialmente aprendí el producto iOS de Xamarin al leer un libro objetivo y convertir ejemplos de código a Xamarin.ios. Inicialmente aprendí Xamarin.android leyendo un libro de Java en Android y convirtiendo código.

Si ya conoce C #, le recomiendo que aprenda los productos iOS y Android de xamarin. Aún necesitará aprender los plataformas, pero eso es positivo, no negativo. Necesitas aprender los detalles de la plataforma si quieres tener éxito.

Con respecto al producto de formularios de xamarin, no estoy tan entusiasmado con eso. Creo que encaja en algunos nichos, pero no estoy convencido de que sea una cura para todo el tipo de producto que algunos desarrolladores piensan que es. Creo que funcionará bien en un caso de empresa muy específico para aplicaciones internas, no para aplicaciones que van a ser utilizadas por muchos usuarios públicos. No está mal, pero hay compensaciones que tiene solo porque está tratando de montar plataformas. Otro problema es que para hacer algunas cosas básicas, debe usar bibliotecas de terceros. Esto es para cosas básicas como ubicaciones, acceso a la cámara, etc. Realmente desearía que estas funciones se integraran en XF, pero no fueron la última vez que lo vi. Encuentro que agregar un montón de bibliotecas a un proyecto tiende a ser algo malo.

¿Por qué aprenderías nativo para cada uno? Si aún no conoce Objective-C / Swift o Java, eso será un obstáculo en el tiempo para lanzarlo al mercado. Java y Swift son bastante fáciles de entender como idiomas, pero ese no es el único elemento a considerar. Los IDE son diferentes y no son necesariamente similares a Visual Studio .NET, por lo que también tendrá que acostumbrarse a ellos (más tiempo). Es posible codificar para UWP + Android e iOS utilizando un único IDE y una base de código que se puede compartir en prácticamente las tres plataformas si utiliza Visual Studio y C #. Si elige escribir en los dos o tres idiomas separados, aumentará el tiempo para completar su proyecto por el mismo factor o más. Esto supondría que tendría que aprender XCode y Android Studio y sus respectivos idiomas. Esta noción también violaría el principio DRY desde el punto de vista de la ingeniería de software. Supongamos que tiene un método para enviar una solicitud web desde el dispositivo móvil a su servidor; tendría que escribir eso tres veces: una en C # para WP, una en Objective-C / Swift para iOS y una vez más para Android en Java / Kotlin. No es genial y definitivamente no está SECO.

Los formularios Xamarin están diseñados para ser una solución de interfaz de usuario multiplataforma entre las plataformas, pero no tiene que usarla. Lo que esto significa es que aún puede aprender los paradigmas específicos de la plataforma para cada uno, pero aún así usar un lenguaje que ya conoce. Por lo tanto, es como desarrollar una plataforma específica, pero tiene el lujo de no tener que aprender Objective-C / Swift para iOS o Java / Kotlin para Android.

Dicho esto, si solo estás jugando y te gustaría aprender los idiomas promocionados específicos de la plataforma, entonces adelante. Noquearse =)

Debo decir que deberías aprender Xamarin. Déjame contarte mi historia del desarrollo nativo de Xamarin. Yo “era” desarrollador nativo de Android hace 3-4 meses. Tenía experiencia en Java y estoy aprendiendo Xamarin desde hace 4 meses. Encontré Xamarin fácil de entender y fácil de codificar en comparación con el nativo. Aunque para algunas funciones de Native son difíciles de obtener en Xamarin, será muy fácil para usted si tiene antecedentes de C #. Personalmente, siento que no te arrepentirás después de aprender Xamarin.
Espero que hayas recibido tu respuesta.

Gracias

More Interesting

Cómo obtener una política de privacidad para mi nueva aplicación de citas

Quiero escribir una aplicación de mensajes que se ejecute tanto en dispositivos móviles como en navegadores con conectividad sin interrupciones. ¿Qué tecnologías debería considerar la mejor?

Mi compañía está actualizando nuestra aplicación basada en geolocalización, y estamos buscando pasar de datos propietarios a una API abierta. ¿Cuál es el más sólido: Yelp, FourSquare, FaceBook Places o Google Local?

Estoy desarrollando una aplicación que extrae datos de varios sitios web de reservas. ¿Cómo puedo extraer este tipo de datos en una aplicación de iOS? ¿Qué herramienta debo usar? ¿Hay algún sitio web útil que pueda ayudar?

¿Necesito una aplicación donde muestre toda la información que tengo de la persona que llama?

Si elimino la conversación de alguien (mensajes antiguos + mensaje nuevo no leído) en WhatsApp sin leerlo y sin abrir su ventana de chat, ¿recibirán marcas azules?

Cómo disminuir el uso de Facebook o WhatsApp

Si le envío una solicitud a alguien en Snapchat y no me aceptan, ¿pueden leer mi mensaje?

¿Tengo que desactivar temporalmente mi cuenta de WhatsApp sin eliminar mi cuenta?

Cómo ocultar mi número mientras hago llamadas en Android

Estoy buscando un programa de video chat multiplataforma (IOS y Android). ¿Alguna sugerencia?

No tengo experiencia en programación, pero deseo desarrollar aplicaciones móviles. ¿Qué pasos debo seguir para enseñarme en casa cómo desarrollar aplicaciones móviles?

No puedo encontrar una aplicación en la App Store, así que decidí comenzar a programar en iOS y hacerlo yo mismo. ¿Cuánto tiempo me llevará escribir mi primera aplicación del mundo real en Swift para iPhone?

Quiero construir una aplicación de billetera móvil. ¿Cuál es el desembolso de inversión? Cuanto tiempo llevara? ¿Qué tamaño y tipo de equipo de desarrollo necesito?

¿Puedo usar nombres de series de películas en una aplicación con anuncios?