2012-03-12 15 views
8

Sto sviluppando un'applicazione per Android e iOS utilizzando i rispettivi SDK nativi. Tuttavia, nell'applicazione è presente un modulo che dovrebbe supportare le 2D di base (può anche essere 3D) come inclinare, ridimensionare, ruotare la grafica vettoriale e tutti i tipi di effetti opzionali su piani con texture semplici, ad esempio.Ricerca di un metodo multipiattaforma per la grafica 2D/3D di base per iOS e Android

Mi piacerebbe ospitare questo modulo all'interno di alcune kine di una vista e che il suo codice sarà condiviso tra le piattaforme iOS e Android, per quanto possibile.

Sono stato in agguato in tutto il Web per tutti i tipi di soluzioni.

  1. Prima di tutto c'è OpenGL, il problema è che io non sono a conoscenza di codifica per OpenGL e non ero in grado di capire se il codice sarò scrivere con OpenGL sarà condivisibile tra le 2 piattaforme. Sembra che nessuno abbia davvero provato a farlo con NDK e così via.
  2. Ci sono piattaforme come

    a. Clutter (http://www.clutter-project.org/) - Che non ho trovato nessun esempio per il suo utilizzo sui dispositivi mobili.

    b. Piattaforme come Unity3D, anche se non credo che potrebbero aiutarmi molto perché, per quanto ne so, l'intera applicazione deve girare sulla loro piattaforma, e non è quello che sto cercando.

Quindi, ragazzi, pensate che sia possibile condividere il codice 2d/3d tra iOS e Android? Se sì, esiste un metodo che potresti raccomandare?

Oppure dovrei utilizzare il metodo nativo di ciascun dispositivo per la grafica 2D o 3D?

Grazie!

risposta

6

Kivy: un linguaggio di programmazione multipiattaforma open source per la scrittura di disegni, interfacce, elementi visivi basati su OpenGL, qualsiasi cosa, per Linux, Windows, MacOSX, Android e iOS. kivy.org

È possibile abbandonare i widget nativi Android o iOS per i widget Kivy e le app avranno la stessa interfaccia alimentata con OpenGL su tutte le piattaforme.

EDIT 27/09/11 13:00: Ho fatto qualche altra ricerca. Tutto sommato, si dovrebbe verificare questi 4 framework open-source per te stesso e decidere quale è meglio per voi (potrei elencare quadri commerciali, ma questi sono facili da trovare):

  1. Kivy (kivy.org)
    • Incredibile libreria GUI e widget.
  2. HaxeNME (haxenme.org)
    • Bellissima API 2D/3D per fare grafica OpenGL.
    • Amazing supporto multipiattaforma. Il meglio di tutti i quadri.
    • Purtroppo, nessuna libreria GUI o Widget è integrata.
  3. Qt rapida QML (qt-project.org)
    • Bellissima API 2D/3D per fare grafica OpenGL.
    • Simile all'HTML, ma per OpenGL. Conosci già HTML e JavaScript? QML (Quick Markup Language) include le necessità di base come campi di testo, pulsanti di opzione, caselle di controllo, ecc. Che possono essere animate e controllate con i gestori di eventi. Le animazioni, i gestori di eventi, ecc. Nella tua applicazione QML sono scritti in JavaScript; la differenza è che il JavaScript viene compilato anziché interpretato.
    • Qt Quick è davvero sorprendente; il mio preferito. Leggi su Qt Quick QML quindi prova l'app Animated Tiles per Android per vedere il potenziale di Qt Quick. L'ultima versione di Qt (in arrivo molto presto) supporta iOS, Android e Blackberry e tutti i SO desktop. Windows Phone è un lavoro in corso ma arriverà presto considerando che Qt Quick supporta già la piattaforma Metro di Windows 8. Qt Quick è molto bello, ma non funziona su ogni singola piattaforma come fa HaxeNME.
  4. MoSync (mosync.com)
    • Un tesoro nascosto. Questo quadro ha bisogno di più esposizione. MoSync SDK offre un framework OpenGL multipiattaforma, un framework HTML/JavaScript simile a PhoneGap, un framework NativeUI per scrivere app su piattaforme che utilizzano i widget UI nativi di ciascuna piattaforma e MAUI per scrivere GUI C++.
    • Se si è pronti a scrivere solo OpenGL puro, quindi mi consiglia di verificare MoSync, in quanto fornisce un'implementazione 1-a-1 di OpenGL ES 1.0/2.0.

Inoltre, se la vostra applicazione sarà basata forma (non tanto animato come un gioco), quindi PhoneGap potrebbe soddisfare le vostre esigenze. Se utilizzi le giuste funzionalità di HTML5, puoi creare app che si sentono native (a differenza dei molti esempi orribili e scoraggianti in circolazione). Se desideri provare un'applicazione creata con PhoneGap che sembra "nativa", prova "Go 2012". Le app Go 2012 dimostrano che se si utilizza HTML5 correttamente, è possibile sfruttare l'accelerazione hardware su tutte le piattaforme (iOS, Android, Blackberry e Windows Phone (l'ho testato su tutte)). Le animazioni (scorrimento, ecc.) In Go 2012 sono tutte animazioni con accelerazione hardware CSS3. Non lasciatevi ingannare dalla scarsa qualità della maggior parte dell'app nella vetrina di PhoneGap!

+0

Sembra interessante! Darei un'occhiata presto e vedere se può soddisfare le mie esigenze. – Dror

+0

Ho aggiornato la mia risposta. : D – trusktr

1

Utilizzare OpenGL ES e scrivere il codice in C. Scrivere un wrapper NDK per Android. Teoricamente, il tuo codice GL C aperto dovrebbe essere riutilizzabile tra le 2 piattaforme.

1

Hai mai mandria sulla piccola nome della società Adobe

Provare a usare Air.

Le persone non apprezzano il duro lavoro svolto da Adobe, ma è la piattaforma cross più potente disponibile sul mercato!

sostenerlo:

  • Windows con DirectX accesso per accelerare la vostra applicazione, sia in 3D e 2D.
  • Linux
  • Android (2.2 e superiori) con sfondo OpenGL
  • iOS con OpenGL
  • BlackBerry

E molti altri ... Se si desidera lavorare sul alto livello, utilizzare aria!

+0

Posso usare AIR solo per una piccola parte della mia applicazione e lasciare il resto nel normale codice Android/iOS nativo? – Dror

+0

Sì, puoi usare air nativo per usare la lingua nativa del sistema attuale, sarà java con tutte le api Android in Google e l'obiettivo c per iOS. Come mai ti consiglierei di usare l'esportazione in futuro di HTML5 di Flash se è solo una piccola parte della tua applicazione –

+1

Potrebbe essere bello, ma considerando che Kivy, Qt Quick, HaxeNME e MoSync sono gratuiti e open-source (e stupefacente), perché comprare Air? – trusktr

Problemi correlati