2012-03-12 12 views
8

Estoy desarrollando una aplicación por separado para Android y iOS usando sus SDK nativos. Sin embargo, hay un módulo en la aplicación que debe admitir capacidades 2D básicas (también puede ser 3D) como inclinación, escala, rotación de gráficos vectoriales + todo tipo de efectos especiales opcionales en planos texturados simples, por ejemplo.Buscando un método multiplataforma para gráficos 2D/3D básicos para iOS y Android

Me gustaría alojar este módulo dentro de algunos kines de una vista y que su código se compartirá tanto entre las plataformas iOS como Android, tanto como sea posible.

He estado merodeando por la web para todo tipo de soluciones.

  1. En primer lugar hay OpenGL, el problema es que no estoy familiarizado con la codificación para OpenGL y yo no era capaz de entender si el código Voy a escribir con OpenGL será compartida entre las 2 plataformas. Parece que nadie realmente había intentado hacerlo con NDK y tal.
  2. Hay plataformas como

    a. Clutter (http://www.clutter-project.org/) - Que no pude encontrar ningún ejemplo para su uso en dispositivos móviles.

    b. Plataformas como Unity3D, aunque no creo que puedan ayudarme mucho porque, según tengo entendido, toda la aplicación debe ejecutarse en su plataforma, y ​​eso no es lo que estoy buscando.

Entonces, ¿piensan que es factible compartir el código 2d/3d entre iOS y Android? Si es así, ¿hay algún método que pueda recomendar?

¿O debería ir con el método nativo de cada dispositivo para gráficos 2D o 3D?

Gracias!

Respuesta

6

Kivy: un lenguaje de programación multiplataforma de código abierto para escribir dibujos, interfaces, elementos visuales, cualquier cosa, para Linux, Windows, MacOSX, Android e iOS. kivy.org

Puede dejar de utilizar widgets nativos de Android o iOS para widgets Kivy y sus aplicaciones tendrán la misma interfaz con OpenGL en todas las plataformas.

EDITAR 27/9/11 1pm: He hecho más investigación. Con todo, usted debe comprobar fuera de estos 4 marcos de código abierto para ti y decidir cuál es el mejor para usted (Podría enumerar los marcos comerciales, pero esas son fáciles de encontrar):

  1. Kivy (kivy.org)
    • Increíble biblioteca de GUI y widgets.
  2. HaxeNME (haxenme.org)
    • Muy bonito API 2D/3D para hacer gráficos OpenGL.
    • Increíble soporte de plataforma cruzada. El mejor de todos los marcos.
    • Desafortunadamente, no se ha creado ninguna biblioteca de GUI o Widget.
  3. Qt Quick QML (qt-project.org)
    • Muy bonito API 2D/3D para hacer gráficos OpenGL.
    • Similar a HTML, pero para OpenGL. ¿Ya sabes HTML y JavaScript? QML (Quick Markup Language) incluye necesidades básicas como campos de texto, botones de opción, casillas de verificación, etc., que se pueden animar y controlar con controladores de eventos. Las animaciones, los controladores de eventos, etc. en su aplicación QML están escritos en JavaScript; la diferencia es que JavaScript se compila en lugar de interpretarse.
    • Qt Quick es realmente increíble; mi favorito personal Lea en Qt Quick QML y luego pruebe la aplicación Animated Tiles para Android para ver el potencial de Qt Quick. La última versión de Qt (próximamente) admite iOS, Android y Blackberry, y todos los sistemas operativos de escritorio. Windows Phone es un trabajo en progreso, pero llegará pronto teniendo en cuenta que Qt Quick ya es compatible con la plataforma Metro de Windows 8. Qt Quick es muy agradable, pero no funciona en todas las plataformas como lo hace HaxeNME.
  4. MoSync (mosync.com)
    • Una joya escondida. Este marco necesita más exposición. MoSync SDK proporciona un marco OpenGL multiplataforma, un marco HTML/JavaScript similar a PhoneGap, un marco NativeUI para escribir aplicaciones en plataformas que usan los widgets UI nativos de cada plataforma y MAUI para escribir GUIs en C++.
    • Si te decidiste por escribir OpenGL puro, al menos te recomiendo echarle un vistazo a MoSync, ya que proporciona una implementación 1-a-1 de OpenGL ES 1.0/2.0.

Además, si su aplicación se basa forma (no tanto animada como un juego), a continuación, PhoneGap podría satisfacer sus necesidades. Si usa las funciones correctas de HTML5, puede crear aplicaciones que parezcan autóctonas (a diferencia de los muchos ejemplos horribles y desalentadores que existen). Si desea probar una aplicación hecha con PhoneGap que se siente "nativa", intente con "Go 2012". Las aplicaciones Go 2012 demuestran que si usa HTML5 correctamente, puede aprovechar la aceleración de hardware en todas las plataformas (iOS, Android, Blackberry y Windows Phone (lo probé en todos)). Las animaciones (desplazamiento, etc.) en Go 2012 son todas animaciones aceleradas por hardware CSS3. ¡No dejes que la mala calidad de la mayoría de la aplicación en el escaparate PhoneGap te engañe!

+0

Parece interesante! Lo echaré un vistazo pronto y veré si se ajusta a mis necesidades. – Dror

+0

He actualizado mi respuesta. : D – trusktr

1

Use OpenGL ES y escriba el código en C. Escriba un contenedor NDK para Android. Teóricamente, su código abierto GL C debe ser reutilizable entre las 2 plataformas.

1

¿Alguna vez manada pequeña sobre el nombre de la empresa Adobe

Trate de usar aire.

Las personas no aprecian el arduo trabajo que hizo Adobe, ¡pero es la plataforma cruzada más fuerte disponible en el mercado!

soporte de TI:

  • de Windows con DirectX acceso a acelerar su aplicación, tanto en 3D y 2D.
  • Linux
  • Android (2.2 y superiores) con el fondo OpenGL
  • iOS con OpenGL
  • BlackBerry

Y mucho más ... Si desea trabajar en el nivel alto, el uso del aire!

+0

¿Puedo usar AIR solo para una pequeña porción de mi aplicación y dejar el resto en un código nativo de Android/iOS? – Dror

+0

Sí, puedes usar air native para usar el idioma nativo del sistema actual, será java con todas las aplicaciones de Android en Google y objetivo c para iOS. Sin embargo, le recomendaría que use exportar a HTML5 future of flash si solo es una pequeña parte de su aplicación –

+1

. Puede ser agradable, pero teniendo en cuenta que Kivy, Qt Quick, HaxeNME y MoSync son gratuitos y de código abierto (y sorprendentes), ¿por qué comprar Air? – trusktr

Cuestiones relacionadas