2011-11-09 7 views
5

Ho intenzione di sviluppare un'applicazione che sarà multipiattaforma e verrà rilasciata per IOS e Android.xCode vs Android SDK vs Adobe Flex

La mia app utilizzerà la connettività di rete e comunicherà con il server e deve essere veloce, affidabile e reattiva.

Quindi la mia domanda è: se scelgo Adobe Flex per creare quell'app per IOS e Android, ci saranno problemi di prestazioni?

Se no, allora perché la gente usa xcode o android sdk? Quali sono gli svantaggi dell'uso di Adobe Flex su xCode e Andoid SDK?

risposta

14

In generale, se si utilizza uno strumento multipiattaforma "scrivo una sola volta e si costruisce per molte piattaforme" è probabile che si rinuncerà alla possibilità di sfruttare alcune (o tutte?) Caratteristiche specifiche della periferica o della piattaforma. In effetti, stai scegliendo una soluzione di minimo comune denominatore di soluzione. Vale a dire, hai a disposizione solo le funzionalità della piattaforma disponibili su TUTTE le piattaforme a cui ti rivolgi.

Costruire un'app nativa, ovvero utilizzare Xcode per creare un'app per iOS e utilizzare l'SDK di Android per creare un'app per Android, offre l'accesso completo a tutte le funzionalità e funzionalità specifiche di una determinata piattaforma, garantendo in tal modo la migliore esperienza utente su ciascuna piattaforma.

Questa è ora la mia opinione: le app native sono migliori, semplicemente perché presentano all'utente un'esperienza nativa, un'esperienza che gli sarà familiare come utente della piattaforma. Quando scegli di utilizzare uno strumento multipiattaforma, scegli attivamente di offrire ai tuoi utenti un'esperienza non proprio ideale sul loro dispositivo, ma hai risparmiato un po 'di tempo (forse) per far arrivare la tua app sul mercato. Chi è il vincitore?

Nel mio lavoro, il mio capo e io abbiamo avuto una conversazione specifica su questo. Abbiamo app native per iOS e Android, di proposito, perché non volevamo rinunciare alle funzionalità specifiche della piattaforma. Volevamo che ogni app offrisse la migliore esperienza possibile sulla sua piattaforma. Abbiamo specificamente convenuto che una soluzione multipiattaforma non era il modo in cui volevamo andare.

+0

Wow ottima risposta. "Questa è la mia opinione: le app native sono migliori, semplicemente perché presentano all'utente un'esperienza nativa, un'esperienza che gli sarà familiare come utente della piattaforma." - Vorrei averlo detto. –

+3

Come punto di chiarimento, specifico per la piattaforma Flash di Adobe. Adobe AIR 3 ha introdotto un modo per chiamare il codice dispositivo nativo per estendere le app oltre le API esposte tramite Adobe AIR. Questa funzionalità è chiamata estensioni native; e annulla l'argomento secondo cui l'uso di AIR/Flash Platform non fornisce "l'accesso completo a tutte le funzionalità e funzionalità specifiche di una data piattaforma". – JeffryHouser

+0

@ www.Flextras.com Interessante davvero. Ma stai ancora chiamando codice nativo, presumibilmente Objective-C per iOS. Quindi non puoi allontanarti da Objective-C per la funzionalità nativa sotto iOS, che a mio avviso supporta un po 'il mio punto di vista. :-) –

-9

Non penso che sia possibile utilizzare Adobe Flex su iOS. Un'altra soluzione cross-platform da indagare sarebbe HTML5. Se puoi permetterti, la soluzione migliore potrebbe essere implementarla due volte, una volta con xcode per iOS e una volta con Android per Android.

+6

-1 per le informazioni errate. Sei stato in grado di utilizzare Adobe Flex (e gli strumenti di Adobe Flash Platform) per creare applicazioni iOS native per un bel po 'di tempo. C'era una soluzione a breve termine con gli accordi degli sviluppatori di Apple; tuttavia Apple ha cambiato le licenze e molte applicazioni sono state create con strumenti Flash. Più recentemente Macinarium, un'app Flash incorporata, è stata la cima delle classifiche di gioco in iOS. http://machinarium.net/demo/ – JeffryHouser

+1

Dovresti controllare Adobe Air – Bruce

3

È possibile utilizzare Flex per compilare in AIR per iOS o Android. Le prestazioni di AIR vs Objective C o Java sono notevolmente più lente. Il vantaggio dell'utilizzo di AIR consiste nell'avere una base di merluzzo consegnata su due piattaforme. Ma se avete il know-how, Objective C e Java sono più adatti allo sviluppo sulle rispettive piattaforme. Tuttavia molte app di successo sono state lanciate su iOS e Android usando AIR. Se vuoi sapere se potrebbe funzionare per te, cercherò quelle app su iTunes e Android Market e vedremo come si comportano per te. Se l'app non è un gioco, probabilmente funzionerà bene. E se l'app è un gioco semplice, potrebbe funzionare anche bene. ricordare Inoltre ci sono altri = strumenti di sviluppo piattaforma multi tra cui scegliere, come il divario di telefono, o appcellerator: http://www.appcelerator.com/ http://phonegap.com/

o anche Unity 3D: http://unity3d.com/

UPDATE: Dal momento che questa risposta originale in Novemer Nel 2011, Adobe ha apportato miglioramenti significativi a AIR per iOS e Android. I problemi di petformance sono trascurabili a meno che non si stia eseguendo un'operazione molto complessa come l'elaborazione di immagini di grandi dimensioni. Allo stesso modo, Unity3D è migliorato parecchio. È una scelta eccellente per i giochi 2D o 3D.

7

A seconda di ciò che si sta creando, Air è una grande piattaforma per lo sviluppo di applicazioni mobili multipiattaforma. Nonostante la recente notizia che il player Flash non è più sviluppato per i browser mobili, la storia nativa rimane forte. Inoltre, avendo visto l'IOS nativo, lo sviluppo nativo di Android e Flex, la piattaforma Flex è molto migliore per quanto riguarda la facilità di sviluppo. Con funzionalità di alto livello come l'associazione dei dati, la gestione dello stato visivo, un solido componente/modello di skin, il modello di transizione, ecc, è di una generazione o due prima di iOS e Android (IMO).

Se si utilizza Flex per dispositivi mobili (iOS/Android/Playbook), si ottiene un aspetto comune su tutti i dispositivi mobili. @MarkGranoff ha suggerito che l'esperienza utente viene declassata quando si utilizza un approccio, ma lo sfiderei.

Anche se sono d'accordo sul fatto che uno stile immediato dei componenti dell'interfaccia utente in Air sembra un po 'off, non consiglio a nessuno di creare app in questo modo. Invece, crea un'app che assomigli alla tua app. Ci sono state molte applicazioni che non sono conformi al look/feel nativo di iOS o Android ma sono comunque di qualità da una prospettiva estetica e UX.

C'è qualcosa da dire per un'app che si presenta/si comporta allo stesso modo su tutte le piattaforme. Posso dirti questo ... l'utente non gli interessa davvero. Se sembra bello, si sente bene e fa quello che vuole, sono felici.

Flex Mobile SDK utilizza molti degli stessi paradigmi dell'interfaccia utente (soprattutto nella versione dell'SDK che sta per essere rilasciata) e sta migliorando. Non lo screditerei. Puoi risparmiare un sacco di tempo e denaro usando qualcosa come Flex Mobile.

0

se si utilizza aria per sviluppare applicazioni trasversali della piattaforma, si dovrebbe notare i seguenti fatti:

1) non si ha accesso alle funzioni native (ma è possibile utilizzare l'aria nativi estensioni di By Pass questo problema)

2) la prestazione è più lenta di applicazioni native (ma è possibile utilizzare quadro Starling di usare il potere della GPU in dispositivi che si aumenta la performance un sacco!)

la linea di fondo è che la costruzione di applicazioni mobili utilizzando AS3 e Flex/Air SDK è la soluzione migliore che si possa pensare e le prestazioni se l'uso dello starling è molto più alto t han app native!