¿Las aplicaciones iOS y macOS escritas en C # son tan buenas como las aplicaciones escritas en Swift u Objective-C?

No absolutamente no.

En un proyecto lo suficientemente grande donde hace la diferencia, el desarrollador que usó C # definitivamente tendría que cortar esquinas porque C # no está disponible para construir aplicaciones de forma nativa. Esto significa no poder utilizar bibliotecas nativas altamente optimizadas, características que no están disponibles directamente para un desarrollador de C #.

El binario sería más grande, la aplicación sería más lenta debido a problemas que van desde capas agregadas que convierten el código C # a código nativo, recolector de basura, etc. Algunas características podrían faltar o la interfaz de usuario sería muy monótona. En un prototipo o una “aplicación de tipo calculadora” no importará mucho. Sin embargo, si me das una aplicación de nivel empresarial desarrollada en C # y la misma aplicación desarrollada usando Swift, elegiría fácilmente una de la otra.

La respuesta dependerá de lo que entiendas por bueno.

Las aplicaciones son tan buenas como los desarrolladores que las codifican siempre que tengan suficiente tiempo. Para la mayoría de las aplicaciones, no habrá una diferencia de rendimiento visible entre una aplicación Swift / Objective-C / Xamarin.

Dicho esto, y si tiene un equipo capacitado en la tecnología que eligió, los siguientes puntos son de suma importancia para mí:

  • Mantenimiento => qué tan fácil son las aplicaciones para mantener. ¿Cuán con errores son? Μ
    Xamarin es mejor en este tema porque codifica una vez la mayoría de las partes que no son UI.
    Además, .NET / C # son más simples, mejor arquitectónicos y menos propensos a errores.
  • Evolutividad => ¿Qué tan fácil es actualizar sus aplicaciones?
    Xamarin es mejor porque hay menos trabajo que hacer en cada aplicación para actualizarlas (en lugar del doble del trabajo).
  • Datos => ¿tiene los datos que necesita para centrarse en el usuario y el producto?
    No hay impacto real en sus elecciones aquí.

En rendimiento en iOS, de acuerdo con estas pruebas, Xamarin C # funciona más rápido que Objective-C.

Rendimiento de la aplicación móvil Redux

Swift todavía lo tenía mejor, al igual que C ++.

En cuanto a MacOS, no he encontrado ninguna comparación, ni las he hecho.

Los marcos nativos de iOS y Mac se basan en Objective-C.

Las aplicaciones nativas se escriben en Objective-C o Swift y se compilan en código nativo. La gestión de la memoria se realiza utilizando ARC, que es muy eficiente cuando la memoria está limitada.

Para usar C #, debe haber una capa intermedia entre el lenguaje y los marcos. El código en sí se compila en un código p interpretado. Y la gestión de la memoria se basará en la recolección de basura con los problemas que trae.

Para las aplicaciones más simples, sospecho que esto tiene muy poco impacto. Pero para aplicaciones más difíciles, estas diferencias se vuelven significativas.

Una preocupación más apremiante es operar a través de capas de soporte. Un desarrollador nativo tiene que preocuparse por llamar a las API de Apple.

Un desarrollador de Xamarin tiene que preocuparse por llamar al contenedor de Xamarin, que a su vez llama a las API de Apple. En algunos casos eso significará un nivel adicional de complejidad.

Sí.

De nuevo, la aplicación C # podría ser mucho mejor si un desarrollador mejor la escribiera. Lo contrario también es cierto.

Verifique los documentos de Xamarin y muchas publicaciones en Quora (escribí varios) y verá que Xamarin es tecnología “nativa” con un envoltorio muy delgado sobre * .jars en Android y * .frameworks o lib * .a en iOS, lo que le da al desarrollador Beneficios de xplat y compatibilidad con el lenguaje C # / F # con un montón de gemas específicas del idioma.

Depende del programador que los escribió. El lenguaje no tiene mucho efecto sobre la calidad del software. Es como preguntar si una casa es de mayor calidad dependiendo de si fue construida con un destornillador Philips o de cabeza plana.

Mira quién los está usando.

He escrito varias aplicaciones para iOS usando c #. Ellos corren bien. El aspecto es como cualquier otra aplicación de iPhone que puedes descargar. Usan un conjunto de herramientas llamado xamarin. No he tenido ningún problema con él y lo he estado usando durante los últimos 7 años.

Buena suerte