trasladar transferir pasar funciona fotos esta donde datos contactos apps java c++ iphone objective-c android

java - pasar - transferir fotos de android a iphone



Intercambio de código de iPhone/Android multiplataforma (9)

Como le dije a alguien que hizo una pregunta similar hace un tiempo, usa MVC e implementa el MC en C ++ y la V en obj-c o Java.

En pocas palabras: ¿Cuál es la forma más efectiva de compartir / reutilizar el código entre las compilaciones de iPhone y Android?

Los dos escenarios más comunes que pienso serían:

  1. El nuevo proyecto de la pizarra en blanco, sabiendo de antemano que hay una gran cantidad de lógica reutilizable que debe ejecutarse en cada dispositivo.
  2. Base de código de iPhone existente, transferencia de C, C ++ y Objective-C al Android NDK o de otro modo.

Sí, por supuesto, en un mundo perfecto, todas las aplicaciones simplemente se conectarían a la nube mágica y toda la lógica reutilizable estaría en Google App Engine o en algunos servicios web, pero ese no es el espíritu de esta pregunta. Después de experimentar un puerto de iPhone a Android sin reutilizar el código de segunda mano y ver el dolor que esa persona tuvo que soportar, me gustaría saber cómo otras personas lo evitan.


En mi experiencia, puedes usar el NDK de Android para compilar C y C ++, así que si usas enlaces Obj-C ++ (.mm) del iPhone para un motor C ++ / C en el iPhone, y en Android usas enlaces Java al mismo motor, Debería ser totalmente posible.

Así que el motor C ++ / C (casi la misma base de código para Android y iPhone) + capa de enlaces finos = código portátil.


Escriba tanto como sea posible en C antigua (o C ++ si es necesario) e incluya los mismos archivos en Android y iPhone. Funciona en Windows / Mac también. Las bibliotecas "multiplataforma" tienden a consumirte.


He estado trabajando en la creación de aplicaciones y juegos para iPhone usando Lua con mi propio marco. De esta manera, eventualmente podría implementar el mismo marco para Android con Android NDK, pero el código de la aplicación real será exactamente el mismo para ambas plataformas.

No creo que haya una manera fácil de hacer esto, porque las API son obviamente diferentes y los lenguajes de programación nativos son diferentes, pero construir tu propio marco en cualquier lenguaje que sea compatible con ambas plataformas, sería mi sugerencia. Tal vez ya existe un marco que haría las cosas difíciles para usted? Si no hay buenos marcos para hacer eso, entonces esta es claramente una oportunidad para implementar uno por sí mismo.


Parece que vale la pena intentar XMLVM .


Podría probar Marmalade SDK ... Compile una vez a ARM nativo e impleméntelo tanto en Android como en iPhone con el mismo binario, estándar C / C ++, desarrolle en Windows o Mac, con mucha tecnología middleware (opcional) incluida.


También puedes echar un vistazo al Titanium . Con la ayuda de su herramienta, puede escribir su aplicación en un código web abstracto y le ayudarán a la interfaz de la aplicación web con todos esos gps, sensores de acelerómetro, etc.


Uso BatteryTech para mis cosas de abstracción de plataforma y la estructura de mi proyecto se ve así:

En mi PC:

nombre de juego - contiene solo el código común

gamename-android: contiene principalmente el código específico de Android y la configuración de Android de BatteryTech, los creadores apuntan al proyecto de nombre de juego para el código común

gamename-win32 - Solo para construir a Windows, usa el código del proyecto gamename

En mi Mac:

nombre de juego - contiene solo el código común

gamename-ios - La compilación de iPhone / iPad, importa código común

gamename-osx - La compilación nativa de OSX. importa código común.

Y uso SVN para compartir entre mi PC y Mac. Mis únicos problemas reales son cuando agrego clases al código base común en Windows y luego actualizo en el mac para bajarlas de SVN. XCode no tiene una manera de agregarlos automáticamente al proyecto sin scripts, por lo que tengo que introducirlos manualmente cada vez, lo cual es una molestia pero no es el fin del mundo.

Todo esto viene con BatteryTech, por lo que es fácil descifrarlo una vez que lo obtenga.


Moai es gratis para proyectos más pequeños, y también es utilizado por grandes estudios. Yo también corro homebrew, pero si no lo hiciera, probablemente usaría Moai, ya que parece muy prometedor. Afirman que es compatible con Mac, PC, iOS, Android y creo que incluso Kindle Fire.

Supongo que desearía escribir la mayor parte del código en Lua, pero tendría acceso a todo el código, por lo que puede usar C ++ cuando lo necesite.