2008-08-27 3 views

risposta

46

PhoneGap è un framework basato su javascript/css/html che si rivolge a iPhone, Android e Blackberry. Anche (almeno per iPhone) può essere fornito in bundle come app nativa. Il livello dell'interfaccia utente per queste app in genere è costruito in html/javascript e può essere più lento di una vera app nativa.

phonegap


Reagire Native consente di creare esperienze applicative di livello mondiale su piattaforme native utilizzando un'esperienza di sviluppo coerente sulla base di JavaScript e reagire. L'obiettivo di React Native è l'efficienza degli sviluppatori su tutte le piattaforme che ti interessano: impara una volta, scrivi ovunque. Facebook utilizza React Native in più app di produzione e continuerà a investire in React Native. L'interfaccia utente per le applicazioni React Native sono controlli nativi, pertanto l'interfaccia utente è solitamente più veloce di un semplice approccio HTML/javascript per la gestione della GUI.

React Native


Unità è un motore di gioco cross-platform sviluppato da Unity Technologies e utilizzarle per sviluppare videogiochi per PC, console, dispositivi mobili e siti web. Unity è degno di nota per la sua capacità di indirizzare i giochi su più piattaforme. Le piattaforme supportate includono Android, Apple TV, BlackBerry 10, iOS, Linux, Nintendo 3DS line, OS X, PlayStation 4, PlayStation Vita, Unity Web Player (incluso Facebook), Wii, Wii U, Windows Phone 8, Windows, Xbox 360, e Xbox One.

Unity


OpenFL è una porta opensource delle API Flash per desktop, browser, iOs, Android, Flash, HTML5, ecc. ed è un'opzione da considerare per chi proviene da un mondo Flash. Si basa su binari nativi e si rivolge anche ai browser (Flash/HTML5).

openfl


MonoGame è un'implementazione open source del quadro 4.x di Microsoft XNA. Consente agli sviluppatori XNA di creare facilmente giochi multipiattaforma con un riutilizzo del codice estremamente elevato. Attualmente supporta iOS, Android, Windows (sia OpenGL che DirectX), Mac OS X, Linux, Windows 8 Store, Windows Phone 8, PlayStation Mobile e la console OUYA.

monogame


Adobe Flash E che ci crediate o no, Adobe Flash può pubblicare file binari nativi a iOS, Android, desktop e naturalmente il web. La performance è ragionevole, ma non incredibile. Se hai avuto un gioco Flash, potresti essere in grado di portarlo sul cellulare molto facilmente. E questo non richiede alcun plugin di alcun tipo. In realtà crea un binario standalone nativo che viene eseguito su ciascuna piattaforma.

adobe

-3

Non c'è nulla di esistente (vale la pena affidarsi a nulla) e dubito che ci sarebbe mai stato qualcosa di programmato ufficialmente.

-1

Un simile framework, per sua natura, non poteva sfruttare le funzionalità specifiche di iPhone come l'accelerometro o i gesti multi-dito. Probabilmente annullerebbe anche i termini dell'SDK di Apple.

Come suggerito da andyuk, è consigliabile scrivere un'app Web. Funzionalità di base come chiamare qualcuno può accedere a in questo modo.

3

Anche se lo volessi, non sarebbe pratico creare il tuo framework multipiattaforma: l'iPhone è un codice nativo, Android è Java.

Ovviamente, non c'è nulla che ti impedisce, ad esempio, di condividere la logica C/C++ principale in un'applicazione desktop con la sua controparte iPhone.

32

Modifica: dal momento che è stata posta questa domanda, sono state sviluppate numerose soluzioni valide. Sebbene il tono di questa risposta possa essere ancora preciso (per beneficiare al 100% di HW/OS è probabilmente necessaria un'applicazione nativa) è possibile trovare una serie di possibili risposte sotto questa domanda.

Sia Android che l'iPhone hanno interfacce utente fortemente definite. Anche se hai trovato un framework che ha colmato le enormi differenze sugli aspetti più bassi (Android è programmato in Java su una VM personalizzata, iPhone è il codice nativo programmato in Objective-C) e nei livelli più alti (le app per iPhone sono un completamente in modalità sandbox e isolato, il modello di oggetti Android è distribuito e le classi sono liberamente richiamate tra app e librerie) l'app finale si sentirebbe aliena e fuori luogo in entrambi. Pensa alla mancanza di multitouch in Android o alla mancanza di pulsanti hardware dedicati nell'iPhone.

La soluzione migliore sarebbe lo sviluppo di un'interfaccia utente specifica per piattaforma e il modello e la logica di base dell'applicazione in una sorta di linguaggio di scripting. Quindi trovare un interprete in chiaro C (per l'iPhone) e uno in Java (per Android). Schema, Lisp e Javascript potrebbero adattarsi al conto. Assicurati che l'interprete non sia esposto agli utenti finali o violerebbe l'iPhone NDA ...

Se la tua app è pesante in termini di dati, puoi seguire il modello di molte app per iPhone e sviluppare interfacce utente native per iPhone e Android e hanno tutta la logica dell'applicazione in un server remoto. L'interfaccia utente diventa l'unica parte installata dell'applicazione e tutto il resto viene ospitato in rete. Questo ha l'ulteriore vantaggio di avere la possibilità di offrire profili di roaming tra diversi dispositivi e un'interfaccia web.

+5

Sembra che un certo numero di soluzioni per questo sono rese disponibili dopo la questione è stata inizialmente chiesto. – Thomas

+0

Alcuni dei sentiment di questo post potrebbero essere ancora veri (sfruttando tutta la potenza di un particolare componente hardware) ma se la tua app è abbastanza semplice ci sono un certo numero di strumenti (collegati in altre risposte) che possono fare il lavoro. – Stimy

+7

Buona risposta - ma nota che Android ha multitouch ... – Roddy

5

Mytopia ha un framework inedito chiamato RUGS. Hanno presentato di recente alla conferenza TechCrunch 50 e la loro tecnologia è sembrata molto interessante. Sono stati in grado di compilare un'applicazione che funzionava su tutte le piattaforme per smartphone (ed è stata in grado di sfruttare le capacità di ogni ... accelerometro per iPhone, ad esempio). Sfortunatamente il loro website dice che è necessario inviarli tramite e-mail se si desiderano maggiori informazioni. Potrebbe essere utile scattare loro una e-mail se si vuole veramente sviluppare su un sistema mirato per smartphone multipiattaforma.

Ho visto la loro presentazione sul webcast TC50, ma sfortunatamente non riesco a trovare un video per te ora.

Si prega di postare qui di nuovo con un riassunto di quale quadro decidi di utilizzare e perché lo hai scelto.

2

Volevo solo dire che un'applicazione web utilizzando i Gears plugin può fare uso di Geolocation (Non più Avaliable) (GPS e Wifi servizi di localizzazione) e questo funziona su Android (il il browser sul G1 viene fornito con il supporto Gears integrato).

Non sono sicuro che ci sia speranza di ottenere il supporto di ingranaggi su un iPhone, ma è un altro approccio utile alla creazione di applicazioni web con funzionalità aggiuntive pur avendo una vasta gamma di dispositivi.

3

Dai un'occhiata a questo:

http://www.xmlvm.org/overview/

Si tratta di un progetto che tenta di essere in grado di cross-compilare i programmi scritti in una varietà di lingue di origine ad una varietà di lingue di destinazione. Uno dei primi casi di test era scrivere programmi in Java ed eseguirli su un iPhone. Guardare il video sul sito è utile. Hanno discusso la possibilità di essere in grado di indirizzare anche Android.

Detto ciò, non l'ho provato. Il progetto sembra abbastanza beta e non c'è molta attività sul loro sito SourceForge.

4

QuickConnectiPhone consente di scrivere l'app in JavaScript e tuttavia è ancora installabile. A questo punto una versione di Android è in Alpha non rilasciata.

Avendo entrambi permetterebbe di creare la vostra applicazione in JavaScript, CSS e HTML, effettuare chiamate verso o l'iPhone o il telefono Android per i comportamenti di dispositivi come vibrazioni, posizioni GPS, ecc

L'iPhone la versione è scaricabile dal https://sourceforge.net/projects/quickconnect/ e se mi contatti posso inviarti la versione per Android.

11

Aggiungere un altro servizio alla pila qui: Rhomobile sta cercando di creare proprio questo. Sembra una citazione stupita - ripensa al web nei primi anni '90. Ma potrebbe essere il modo più semplice per trasferire la tua app preferita su tutte le principali piattaforme mobili.

Maggiori dettagli: Rhomobile promises: Build once, deploy to any smartphone

(Nota:. Io non lavoro per Rhomobile; appena incontrato la storia di oggi)

2

abbiamo avuto successo con Ice-Touch middleware ad avere iPhone e Dispositivi Android che parlano agli stessi server. con una generazione di codice abbastanza decente per oggetti e metodi di rete. ma la logica locale deve ancora essere scritta nella lingua del telefono. in questo modo potremmo sfruttare i vantaggi dell'interfaccia utente di ciascuno, mentre il nostro modello vive sullo stesso server ei nostri controllori sono autogenerati.

link text

7

Rhomobile La struttura di Rodi fa questo.Le app Rodi sono native per ogni singolo smartphone

3

È possibile sviluppare applicazioni Java per IPhone con iSpectrum. In questo modo sarete in grado di riutilizzare una quantità consistente di codice dell'applicazione tra Android e iPhone (e possibilmente applet desktop o MIDlet J2ME a seconda di ciò che si fa :))

Ulteriori informazioni presso http://www.flexycore.com

3

La vostra scelta migliore sarà AirPlay, visitare AirPlay web site

Un clic e si distribuisce per Android, Iphone, Samsung Bada, Symbian, Windows mobile, BREW, WebOS e Maemo.

10

Io lavoro (ndr) parecchio con le soluzioni "native" Obj-C e Java (4 Android). Costruisco anche un'app con Appcelerator per iPhone e Android che funziona perfettamente. Le API Appcelerator sono piuttosto estese. L'app Appcelerator Kitchen Sink mostra molti elementi e funzionalità pronte per essere incluse in un'app (https://github.com/appcelerator/KitchenSink). Tuttavia, dal momento che la mia app Appcelerator non è troppo complessa, non mi sento a mio agio a raccomandarla in generale. Un collega mi ha detto che il loro team di sviluppo lo ha provato e non erano soddisfatti. Non poteva nominare una vera ragione però. Comunque andrò a provarlo per vedere dove sono i limiti. Un grosso limite è il supporto della piattaforma (attualmente solo iOS e Android).

Per quanto riguarda Rhodes, questa soluzione sembra piuttosto impressionante sulla carta, soprattutto in termini di piattaforme supportate. Vedo alcuni problemi con esso però. In primo luogo, le app demo e l'app del kitchen sink richiedono molto spazio su disco, sono un po 'discontinue e talvolta sembrano funky (almeno su Android). In secondo luogo, ci sono ben poche applikations del "mondo reale" da trovare. Intendo app che sono state scaricate almeno più di 1000 volte e servono esigenze del mondo reale diverse dalla semplice dimostrazione. L'usabilità per me ha la massima priorità nelle app mobili (consumer)!

Vedo un grande potenziale nelle app HTML/CSS/JavaScript/PhoneGap. Recentemente ho letto alcuni articoli su aziende più grandi usando HTML (5) per costruire le loro app (ad esempio Netflix http://mashable.com/2010/12/03/netflix-html5/, Zynga http://www.spielsucht24.de/2010/12/21/zynga-launches-html5-mafia-wars-atlantic-city-for-mobile-web/) Ci sono ancora alcuni problemi di usabilità e rapidità che devono essere risolti quando si creano app mobili con tecnologie web. Un altro problema potrebbe essere la verifica, il debug e la manutenzione di app HTML a livello aziendale.

3

Il mio libro HTML5 per iOS e Android consente di scattare applicazioni web creati in HTML, JavaScript & CSS, e li trasformano in applicazioni standalone che è possibile caricare le app store (gratuitamente o per vendere) - http://html5formobile.com - il i wrapper per fare questo per gli SDK iOS e Android sono liberamente disponibili sul sito Web e non è necessaria alcuna conoscenza del linguaggio di programmazione se si seguono le istruzioni nel libro.

3

Mi rendo conto che questa domanda è piuttosto vecchia, ma risulta nelle ricerche di Google, quindi ho pensato che fosse una buona idea aggiornarla.

Penso che un buon framework in questo momento che si rivolge a entrambe le piattaforme e che in realtà sia eseguito nativamente, permettendo di scrivere giochi di buona esecuzione sarebbe Corona.

Link: http://www.anscamobile.com/corona/