Domanda

Sono interessato a scrivere applicazioni per iPhone e piattaforma Android.Speravo di trovare un middleware/framework che eliminasse alcune differenze nelle API e mi consentisse di specificare la piattaforma di destinazione in fase di creazione.Esiste o è previsto un quadro di questo tipo?

È stato utile?

Soluzione

PhoneGap è un framework basato su javascript/css/html destinato a iPhone, Android e Blackberry.(almeno su iPhone) può essere raggruppato anche 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 nativo ti consente di creare esperienze applicative di livello mondiale su piattaforme native utilizzando un'esperienza di sviluppo coerente basata su JavaScript e React.Il focus di React Native è sull'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 è costituita da controlli nativi, quindi l'interfaccia utente è in genere più veloce di un approccio HTML/javascript puro per la gestione della GUI.

Reagire nativo


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

Unità


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

openfl


MonoGame è un'implementazione open source di Microsoft XNA 4.x Framework.Rende semplice per gli sviluppatori XNA creare 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.

monogioco


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

adobe

Altri suggerimenti

Modificare:Da quando è stata posta questa domanda sono state sviluppate una serie di soluzioni praticabili.Sebbene il tono di questa risposta possa essere comunque accurato (per beneficiare al 100% dell'hardware/sistema operativo è probabilmente necessaria un'app nativa), puoi trovare una serie di possibili risposte sotto questa domanda.

Sia Android che iPhone hanno interfacce utente fortemente definite.Anche se hai trovato un framework che colma le enormi differenze ai livelli di aspetto più bassi (Android è programmato in Java su una VM personalizzata, iPhone è un codice nativo programmato in Objective-C) e ai livelli più alti (le app per iPhone sono un completamente sandbox e isolato, il modello a oggetti Android è distribuito e le classi vengono richiamate liberamente tra app e librerie) la tua app finale sembrerebbe estranea e fuori posto in entrambe.Pensa alla mancanza del multitouch su Android o alla mancanza di pulsanti hardware dedicati su iPhone.

La soluzione migliore sarebbe sviluppare un'interfaccia utente specifica per la piattaforma e avere il modello e la logica principale della tua applicazione in una sorta di linguaggio di scripting.Quindi trova un interprete in C semplice (per iPhone) e uno in Java (per Android). Scheme, Lisp e Javascript potrebbero fare al caso tuo.Assicurati solo che l'interprete non sia esposto agli utenti finali o violeresti l'NDA dell'iPhone...

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

Aggiungendo un altro servizio alla pila qui: Rhomobile sta cercando di creare proprio questo.Sembra una citazione banale: 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.

Più dettagli: Rhomobile promette:Costruisci una volta, distribuiscilo su qualsiasi smartphone

( Nota:Non lavoro per Rhomobile;mi sono imbattuto nella storia proprio oggi.)

Non ho esperienza diretta con iPhone o Android, ma ho appena letto un articolo su "Titanium" e quando ho visitato il loro sito, ho trovato questo:

http://www.appcelerator.com/products/titanium-mobile/

Lavoro (ndr) parecchio con le soluzioni "native" Obj-C e Java (4 Android).Creo anche un'app con Appcelerator per iPhone e Android che funziona perfettamente.Le API di Appcelerator sono piuttosto estese.L'app Appcelerator Kitchen Sink mostra molti elementi e funzionalità pronti per essere inclusi in un'app ( https://github.com/appcelerator/KitchenSink ).Tuttavia, poiché la mia app Appcelerator non è troppo complessa, non mi sento a mio agio nel consigliarla in generale.Un collega mi ha detto che il loro team di sviluppo l'ha provato e non sono rimasti soddisfatti.Non riusciva però a nominare un vero motivo.Comunque continuerò a testarlo per vedere dove sono i limiti.Una grande limitazione è 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 però alcuni problemi.Innanzitutto, le app demo e l'app del lavello della cucina richiedono molto spazio su disco, funzionano un po' in modo discontinuo e talvolta sembrano stravaganti (almeno su Android).In secondo luogo, ci sono pochissime applicazioni del "mondo reale" da trovare.Intendo app che sono state scaricate almeno più di 1000 volte e che soddisfano esigenze del mondo reale diverse da quelle demo.Per me l'usabilità 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 che utilizzano HTML(5) per creare le proprie app (ad es.Netflix http://mashable.com/2010/12/03/netflix-html5/, Zinga 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 il test, il debug e la manutenzione delle app HTML di livello aziendale.

RhomobileIl framework Rhodes fa questo.Le app Rhodes sono native per ogni singolo smartphone

Mitopia ha un framework inedito chiamato RUGS.Si sono presentati di recente alla conferenza TechCrunch 50 e la loro tecnologia sembrava molto interessante.Sono stati in grado di compilare un'applicazione che funzionava su tutte le piattaforme smartphone (ed è stato in grado di sfruttare le capacità di ciascuno...accelerometro sull'iPhone per esempio).Purtroppo loro sito web dice che devi inviargli un'e-mail se desideri maggiori informazioni.Potrebbe valere la pena inviare loro un'e-mail se desideri davvero sviluppare su un sistema mirato per smartphone multipiattaforma.

Ho guardato la loro presentazione durante il webcast del TC50, ma sfortunatamente non riesco a trovare un video per te al momento.

Per favore pubblica di nuovo qui con un riepilogo di quale framework decidi di utilizzare e perché lo hai scelto.

QuickConnectiPhone ti consente di scrivere la tua app in JavaScript e tuttavia è ancora installabile.Una versione Android è in versione Alpha inedita a questo punto.

Avere entrambi ti consentirebbe di creare la tua app in JavaScript, CSS e HTML, effettuare chiamate all'iPhone o al telefono Android per comportamenti del dispositivo come vibrazioni, posizioni GPS, ecc.

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

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

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

Controlla questo:

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

È un progetto che tenta di essere in grado di compilare in modo incrociato programmi scritti in una varietà di lingue di origine in una varietà di lingue di destinazione.Uno dei test iniziali è stato quello di scrivere programmi in Java ed eseguirli su un iPhone.Vale la pena guardare il video sul sito.Hanno discusso della possibilità di poter prendere di mira anche Android.

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

Puoi sviluppare applicazioni Java per iPhone con iSpectrum.In questo modo sarai in grado di riutilizzare una quantità consistente del codice della tua applicazione tra Android e iPhone (e possibilmente applet desktop o MIDlet J2ME a seconda di ciò che fai :))

Maggiori informazioni su http://www.flexycore.com

La tua scelta migliore sarà AirPlay, visita Sito Web AirPlay

Un clic e lo distribuisci per Android, Iphone, Samsung Bada, Symbian, Windows Mobile, BREW, WebOS e Maemo.

Il mio libro HTML5 per iOS e Android ti consente di prendere app web create in HTML, JavaScript e CSS e trasformarle in app autonome che puoi caricare negli app store (gratuitamente o per vendere) – http://html5formobile.com - i wrapper per eseguire questa operazione per gli SDK iOS e Android sono disponibili gratuitamente sul sito Web e non è necessaria alcuna conoscenza di nessuno dei due linguaggi di programmazione se si seguono le istruzioni nel libro.

Mi rendo conto che questa domanda è piuttosto vecchia, ma compare nelle ricerche su Google, quindi ho pensato che sarebbe stata una buona idea aggiornarla.

Penso che Corona sia un buon framework in questo momento che si rivolge a entrambe le piattaforme e funziona in modo nativo, consentendo di scrivere giochi con buone prestazioni.

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

con il middleware Ice-Touch siamo riusciti a far sì che sia i dispositivi iPhone che quelli Android comunicassero con gli stessi server.con una generazione di codice abbastanza decente per oggetti e metodi di rete.ma la logica locale deve ancora essere scritta nel linguaggio del telefono.in questo modo potremmo sfruttare i vantaggi dell'interfaccia utente di ciascuno, mentre il nostro modello risiede sullo stesso server e i nostri controller vengono generati automaticamente.

testo del collegamento

Volevo solo menzionare che un'applicazione web che utilizza il plug-in Gears può utilizzare Geolocalizzazione (Non più disponibile) (servizi di localizzazione GPS e Wi-Fi) e funziona su Android (il browser del G1 viene fornito con il supporto Gears integrato).

Non sono sicuro che ci sia speranza di ottenere il supporto di Gears su un iPhone, ma è un altro approccio utile per creare webapp con funzionalità extra pur avendo un'ampia portata di dispositivi.

Una struttura del genere, per sua natura, non potrebbe sfruttare le funzionalità specifiche dell'iPhone come l'accelerometro o i gesti con più dita.Probabilmente annullerebbe anche i termini dell'SDK di Apple.

Come suggerito da Andyuk, prendi in considerazione la possibilità di scrivere un'app Web.Funzionalità di base come chiamare qualcuno Potere essere accessibili in questo modo.

Non esiste nulla (su cui valga la pena fare affidamento, se non altro) e dubito che ci sarebbe mai qualcosa di ufficiale pianificato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top