2012-05-15 13 views
6

Tenemos un programa que deseamos implementar en múltiples dispositivos.Proyectos múltiples one Source

  • independiente cautivo AIRE
  • aplicación Web basado en Flash
  • iOS
  • aplicación Android

El código que no sea un poco de materia interfaz de usuario es idéntica en una gran cantidad de piezas. Me pregunto cuál es el mejor enfoque. ¿Deberíamos tener un proyecto de biblioteca compartida o deberíamos tener un gran proyecto con configuraciones de compilador diferentes controladas por una hormiga o algún otro método?

Respuesta

3

El acceso y uso de Shared Library Project es la mejor manera de implementarse para proyectos multiplataforma. Aparte de este enfoque, puedes usar Ant Build.

+0

Creo que esta es la mejor solución –

2

La respuesta normalmente tendría mucho que ver con las "cosas de UI" que son diferentes, pero dado que parece que eres Flash/AIR, probablemente no sea una gran preocupación. Si fuera yo, iría con el enfoque de "un gran proyecto" y obtendría un conjunto serio de CI/NI y SCM que era compatible con mi IDE. Si está usando Eclipse/Aptana, me gusta Husdon/Surround. (Divulgación completa: yo solía trabajar con @Seapine). Si no está utilizando Eclipse, debería verificar las opciones de CI/SCM que integran w/su IDE (y ellos mismos, por ejemplo, Hudson tiene un módulo Surround y viceversa) . La cosa de la biblioteca compartida funciona, pero dado que Flash es Flash darn en todas partes, no veo la necesidad de una mayor división de proyectos por separado. Un CI con todas las funciones puede gestionar las diferencias del compilador de forma bastante efectiva.

1

Estamos utilizando esta combinación de enfoques para un proyecto móvil/web a gran escala que existe actualmente en el IOS AppStore, y pronto será lanzado en Android y la web:

  • Una principal proyecto que utiliza las directivas del compilador para manejar la lógica específica de la plataforma y los elementos
  • las directivas de compilación para manejar la lógica específica de la plataforma dentro de la principal base de código de proyecto
  • Un proyecto separado para nuestra motor de video e interactividad, que es en su mayoría independiente de la plataforma, utilizando declaraciones de interruptor para lógica específica de plataforma
  • Una compartida SWC para activos gráficos. Los elementos específicos de la plataforma tienen como prefijo la plataforma y un guión bajo. Las directivas de compilación se utilizan para especificar los clips de película a ser visualizado en la pantalla
  • scripts Ant hacer la compilación de las diversas plataformas
  • extensiones nativas a interactuar con el hardware características

Utilizamos algunos comerciales , algunos de código abierto y algunos ANE caseros para cosas como integración de AppStore, funciones de redes sociales, monitoreo de red, notificaciones y comunicaciones entre aplicaciones.

  • com.adobe.extension.NetworkInfo.ane
  • com.milkmangames.extensions.EasyPush.ane
  • com.milkmangames.extensions.GoViral.ane
  • com.milkmangames.extensions.StoreKit.ane

(no tengo ninguna afiliación con milkmangames)

I Actualmente estoy escribiendo un ANE de Android para manejar la comunicación entre aplicaciones usando Intents. Es un proyecto que estoy abierto de compras en:

https://github.com/interactivenyc/ANESampleProject.

Actualmente estoy atascado en un problema y publicaré una pregunta muy pronto con los detalles si alguien está interesado en seguir ese proyecto. La configuración del proyecto está bastante bien descrita en el archivo ReadMe que se muestra en la página principal del proyecto.

0

Si utiliza git para versionar, eche un vistazo a los submódulos. Lo usé para mantener todo en un proyecto, pero el control de versiones de cada módulo por separado, y resultó una solución excelente.

Cuestiones relacionadas