¿Cómo se escriben algunas aplicaciones de iOS y Android en otros lenguajes como C #?

Tienes algunas opciones:

  1. Puerto una máquina virtual / tiempo de ejecución a la plataforma. De la misma manera que puede ejecutar una JVM en Mac, Windows, Linux o lo que sea, puede hacer lo mismo en un teléfono inteligente. Java 9 se ejecuta tanto en iOS como en Android.
  2. Haga un “puente” que es cuando escribe un código en el idioma “extranjero”, puede llamar a funciones escritas en un idioma diferente. Un ejemplo de esto es JNI, que le permite llamar a funciones C desde Java, significa que puede hacer que una función C muestre un diálogo nativo de iOS, luego llamar a esa función desde Java y luego hacer eso para * todo *.
  3. Encuentre puntos en común: tanto Android como iOS tienen vistas web integradas, por lo que si escribe en JavaScript, se ejecuta en ambos.
  4. Deje que alguien más lo haga por usted , como Xamarin, que imagino que utiliza una combinación de 1. y 2. Tenga una máquina virtual para hacer la mayor parte del trabajo y un puente para las cosas que desea que sean nativas de la plataforma. .

Las aplicaciones de C # se ejecutan sobre .NET Framework. Si implementa .NET en algún sistema, puede ejecutar aplicaciones C # encima.

Xamarin proporciona implementación .NET en forma de Mono. Mono por sí mismo está construido sobre API estándar de iOS / Android. Es de código abierto, por lo que puede verificar su implementación, no estoy seguro de qué lenguaje usan (probablemente en iOS, Objective C, pero en Android preferiría apostar por C ++ que por Java). Ahora, como Mono no se proporciona en el nivel del sistema, cada aplicación tiene que empacar las piezas de Mono que necesita en su paquete, así que, básicamente, cuando la aplicación se inicia, Mono comienza primero y luego se inicia la aplicación.

Echa un vistazo a Qt. Eso debería responder a su pregunta, como en este artículo: Anatomy of a Qt 5 para la aplicación de Android – Qt Blog

En general:
1) el inicio (Aplicación, primera actividad) se realiza como en cualquier otra aplicación Java
2) Cuando comienza la primera Actividad, la funcionalidad completa se completa además de eso: puede crear nuevos cuadros de diálogo, etc.

Todo eso lo logra JNI. Al igual que poner un objeto Canvas en la parte superior y usarlo para su propio marco (Qt o algo así) con agregar botones, etc. Por supuesto, todos los eventos, Broadcast, etc. se traducen para Java / JNI al marco, dentro del marco Hay receptores de eventos y promotores para todo.

Html es aburrido, simple y se explica por sí mismo: ya debe tener la idea de un WebView y Javascript y DOM (los elementos en una página HTML, cada uno con su propio “padre”).

Se puede escribir una base de código singular para la capa de red y transporte en C. Este tipo de decisión técnica puede ser impulsada por su estrategia API (o la falta de una estrategia API puede conducir a la falta de opciones).

La interfaz de usuario aún debe codificarse en el idioma nativo para las aplicaciones nativas móviles. es decir, Java en Android y Swift para iOS. En el consumidor, es posible que pueda salirse con la suya con aplicaciones híbridas que podrían ser “aplicaciones web” en dispositivos móviles para Android.

Esto permite que todas las plataformas (iOS, Android y aplicaciones de escritorio) sean compatibles con una base de código singular, por lo que cuando sea necesario realizar un cambio de función, C puede procesar los cambios del servidor y reflejarlo en las 3 plataformas, dejando solo la GUI para cambiarse de forma específica y exclusiva para cada dispositivo (iOS, Android y web) para mostrar al usuario el cambio “visible”. Este enfoque se ocupa de los niveles de red y transporte de todas las aplicaciones, lo que hace que los clientes nunca dependan directamente del servidor. Esto es importante si tiene una base de clientes difícil que exige cosas como aplicaciones de “latencia cero” y “nunca fuera de línea”. Le debo gran parte de esta respuesta a nuestro genio director de producto, Yoela.

More Interesting

¿Qué tan diferente será Android N de Marshmallow?

¿Cuánto cuesta construir una aplicación de Android?

¿Qué habilidades en mi equipo se necesitan para crear aplicaciones y juegos para Android?

Estamos decidiendo entre jQuery Mobile, Sencha Touch y Dojo Mobile. ¿Cuáles son los pros y los contras de cada uno? Queremos crear una experiencia HTML5 que apunte a la mayoría del mercado de navegadores de teléfonos inteligentes, combinándola con una experiencia nativa con PhoneGap.

Cómo mostrar recordatorios 'Califícame' en un intervalo de tiempo particular en la aplicación de Android

Cómo usar una diadema con detección de cerebro para desarrollar una aplicación de Android para ayudar a los tontos a comunicarse

¿Cuál es el mejor curso de desarrollo de Android gratuito en línea si tengo suficiente experiencia en Java?

Soy nuevo en programación y quiero aprender a desarrollar aplicaciones. ¿Debo aprender HTML / Java o Swift?

Cómo vender mi aplicación de Android con plena propiedad

Estoy aprendiendo el desarrollo de Android y estoy planeando comprar Xiaomi Redmi 3 (por precio y especificaciones), ¿es el teléfono incluso bueno para el desarrollo de Android?

¿Es correcto para mí usar Firebase como base de datos para una aplicación de Android en tiempo real, y por qué o por qué no?

¿Hay alguna aplicación de Android que mantenga actualizado mi GK diario?

¿Cuánto necesito para crear un juego de Android?

No se nada de Linux. Me gustaría, ya que estoy interesado en el desarrollo de dispositivos Android. ¿Qué tengo que hacer?

¿Cuáles son algunas de las mejores prácticas para lanzar una aplicación de Android al mercado chino?