¿Es posible crear una aplicación de iOS de front-end que se comunique con una aplicación de Android de back-end?

Sí. Uno puede configurar iPhones para hablar con dispositivos Android de igual a igual. Ambos dispositivos pueden comunicarse independientemente de “qué sistema operativo ejecuta el otro dispositivo”.

Un caso mucho más probable sería que ambos tipos de dispositivos se comuniquen con un servidor de mediación, que “servirá” los datos a cualquier dispositivo (si ese dispositivo tiene las credenciales para obtener la información). Esta es una forma más simple y estándar de implementar el sistema que usted describe. Además, ese mismo servidor podría producir páginas web para ver en la web en un navegador, desde CUALQUIER dispositivo, y también servir informes y pantallas de resumen para las personas que necesitan ejecutar todo este sistema.

Considere la necesidad de tener supervisión, revisión, informes y más para todo el sistema: hacer que todas las operaciones y transacciones pasen y se registren en un servidor “central” hace que sea más fácil de lograr; la alternativa es sondear todos los dispositivos o reunir la información de cada dispositivo, uno por uno, en algún lugar (probablemente otro dispositivo o, sí, un servidor) solo para obtener un informe o una suma de acciones realizadas. ¿Qué pasa si un dispositivo desconectado? ¿Cómo se hace el informe sin él? Recopilar los datos de los “clientes” (dispositivos) para un informe “a pedido” (es decir, exactamente cuando se solicita el informe) es muy, muy problemático.

Los sistemas distribuidos que tienen comunicación entre pares generalmente lo usan para obtener algunos beneficios de velocidad (si el sistema necesita comunicaciones lo más rápido posible, es decir, ¡mejorar en el nivel de milisegundos!), Equilibrio de carga, multiplexación, distribución y ancho de banda preocupaciones o estabilidad y seguridad (considere un sistema militar que necesita ejecutarse en cualquier cliente que esté actualmente disponible y asume que algunos serán destruidos, por lo que tener un servidor central que podría destruirse sería un riesgo que vale la pena evitar)

Se llama MVC. Tiene diferentes vistas según la plataforma y el rol del usuario. El modelo es la base de datos. Y el controlador es su programa que controla la interacción entre ellos.

El usuario de iOS realiza una solicitud que se almacena en la base de datos La plataforma Android puede usar, por ejemplo, el patrón Observer para ver todas las solicitudes nuevas.

Esta es una programación orientada a objetos de alto nivel. Eche un vistazo al framework Laravel 4.

Para simplificar algunas respuestas ya dadas aquí.

Las aplicaciones en dispositivos móviles son simplemente clientes front-end como otros han mencionado. Es realmente irrelevante en qué plataforma se encuentran, ya que cada instancia de aplicación debe comunicarse con la nube.

En su caso, IE tendría un back-end en la nube (aplicación web también conocido como servicio web) ejecutándose en algo como Google App Engine + Google SQL, por ejemplo. Hay más por ahí como Heroku, Amazon EC2, etc., pero tienen diferentes grados de complejidad para configurarlos.

Entonces, digamos que Google App Engine ejecutaría su servicio web (léalo como un servidor web que está optimizado para escalado, replicación, etc. y lo ejecuta Google como PaaS) y se conectaría a Google SQL como su base de datos.

MVC, como se mencionó también, es simplemente un patrón de diseño en ingeniería de software y muchos marcos lo usan como estándar al escribir aplicaciones web (Ruby / JRuby on Rails, PHP / Laravel, incluso Java tiene cosas como Play).

El mejor enfoque moderno es construir API RESTful con su back-end web, digamos PHP / Laravel o Ruby on Rails, ya que ambos son maravillosos para este tipo de cosas y de desarrollo rápido y API RESTful.

Lo implementa en su PaaS favorito, como Google App Engine, y desde que expuso la API RESTful neutral de la plataforma que lee y escribe en su base de datos, simplemente llama a esa API desde cualquier cliente con el que se conecte, independientemente de la plataforma (web / iOS / Android )

Entonces, con este intermediario, sus aplicaciones cliente se comunican entre sí.

Si esto es posible. Una aplicación cliente en cualquier plataforma debe comunicarse con un servicio de back-end para almacenar y recuperar datos, y comunicarse con otros sistemas. Un único servicio de back-end, que utiliza una interfaz universal, admitirá todas las plataformas de clientes (Android, iOS, escritorio)

Si conoce un lenguaje de programación multiplataforma como Qt, que puede construir una solución en Android, iOS, etc., puede usar Enginio como back-end y construir su solución usando Qt.

El mismo modelo logrado usando Node.js como backend y PhoneGap como frontend.

O ASP como backend y Xamarin como frontend,

O Java EE como backend y Java ME como frontend (aunque no recomiendo este enfoque)

Si la aplicación móvil desea comunicarse con cada plataforma diferente, como iOS y Android. Necesita un servidor en la nube de terceros. Para su caso, la aplicación de iOS puede enviar pedidos al servidor, y la aplicación de Android puede ir a sever para recuperar los últimos datos.

Y hay muchas soluciones para hacer esto, pero si solo quieres probarlo desde pequeño con pocos recursos, sugiero usar Parse. Puede almacenar datos, escribir código en la nube e incluso enviarlos a los dispositivos que desee.