¿Se puede codificar una aplicación iOS y Android de forma nativa en C ++?

Sí. Existen soluciones de desarrollo de C ++ para Android e iOS.

En Android hay un kit de desarrollo nativo. Muchos juegos se escriben así para evitar Java.

En iOS, C ++ es un lenguaje compatible para el desarrollo nativo, y puede incluir código C ++ en proyectos Xcode estándar.

(O más exactamente, Objective-C ++ es compatible. Esto le permite escribir en C ++ mientras tiene acceso a las API que están configuradas para Objective-C).

Una aplicación de iOS en C ++ generalmente tendrá un envoltorio delgado de Objective-C y un relleno puro de C ++. Los encabezados de C ++ son archivos .h. Las fuentes de C ++ están etiquetadas como archivos .mm.

Esto significa que para ciertos tipos de aplicaciones, C ++ se puede usar como un lenguaje independiente de la plataforma.

Este enfoque es una solución viable para aplicaciones como juegos donde el desarrollador está haciendo la mayor parte de la interfaz y la interacción dentro de su propio código.

Para las aplicaciones normales, que hacen un uso intensivo de las funciones del sistema preexistentes, su aplicación invocará vistas de tabla estándar, etc. En esos casos, no es beneficioso usar C ++, porque el código de Android y el código de iOS no serán los mismos.

Seguro. Objective-C es solo una extensión de GCC, el compilador de Linux C ++, y cuando codifica en Objective-C es muy consciente de que está trabajando en C / C ++. Swift y Java se usan para muchas aplicaciones de iPhone y Android, pero en ambas plataformas también se pueden escribir aplicaciones nativas, en C / C ++.

¿Por qué? En general el rendimiento. Por ejemplo, escribí un escáner / decodificador de código de barras móvil que era computacionalmente intenso, por lo que tenía que escribirse en C / C ++. También hay momentos en que una aplicación necesita acceso a interfaces de bajo nivel que no están disponibles para Swift o Java.

Yo diría que sí, C ++ se puede usar para cualquiera de los dos, y probablemente sea la opción predeterminada si estás haciendo un juego en 3D o algo así. Sin embargo, Apple hace que algunas API estén disponibles solo en Objective-C o Swift, y acceder a ellas en C ++, aunque sea posible, puede ser incómodo.

Pero, claro, sí, podrías hacer una aplicación en C ++ para Android e iOS. También podría usar C #, Java o Lua.

Me imagino que el rendimiento del código C ++ será tan bueno como Swift, Java u Objective C, y probablemente un poco mejor en algunas áreas.

No estoy seguro acerca de iOS, pero estoy seguro de que es posible ya que Objective-C y C / C ++ son probablemente primos el uno del otro.

Sé que definitivamente es posible con el desarrollo de Android (a través del NDK [1]), pero no se recomienda a menos que sea absolutamente necesario (y probablemente sabrás cuándo es necesario). “Antes de descargar el NDK, debe comprender que el NDK no beneficiará a la mayoría de las aplicaciones “. (Documentación de NDK) El código de Android está muy optimizado para la plataforma y solo agregaría una capa de complicaciones innecesarias a su proyecto.

Notas al pie

[1] Android NDK | Desarrolladores de Android