Sviluppo multipiattaforma iOS / Android [chiuso]


113

Sto giocando con lo sviluppo di app Android in Java per un po 'e sto iniziando a farcela. Tuttavia, se voglio iniziare su una versione iOS, devo codificare tutto da zero, il che è, beh, indesiderabile.

Mi chiedevo quali soluzioni multipiattaforma siano disponibili e quanto bene funzionino nella pratica. Ho pensato alle applicazioni web, magari usando jQuery Mobile o Titanium , o Adobe Flash / Flex / Air. Inoltre non ho ancora un Mac, su cui probabilmente dovrò investire.

Quindi le mie domande:

  1. Quali ambienti di sviluppo multipiattaforma esistono per iOS / Android (e / o altri dispositivi)?

  2. Qual è stata la tua esperienza con questi strumenti? (questo è quello che mi interessa davvero sapere)


1
Alister, non sei certo la prima persona a fare questo tipo di domande, né sei la prima persona che vuole una risposta! :) Non dimenticare PhoneGap, di cui ho sentito recensioni contrastanti, e Red Foundry, che è più uno stampino per biscotti ma sembra buono, non ancora multipiattaforma.
makdad

1
Puoi anche andare con PhoneGap. L'ho usato e ti consiglio di provarlo. Esiste una disposizione per generare un file exe (IPA per iOS) utilizzando l'applicazione sviluppata su PhoneGap in Android.
Jayprakash Dubey

Voglio aggiornare questa domanda poiché è giunta la fine del 2016 e il panorama degli strumenti multipiattaforma è cambiato. Direi che dipende dal tuo linguaggio di programmazione preferito e da dove il tuo team ha più xp con: 1. JavaScript: Phonegap Le prestazioni sono pessime sui dispositivi mobili, quindi si utilizzano strumenti con componenti nativi ma si consiglia JS per la logica dell'applicazione. Le opzioni sono V-Play ( v-play.net/apps ) o React ( reactnative.com ). 2. C #: Xamarin è tuo amico. 3. C ++: usa un framework C ++ come Qt ( qt.io ) Disclaimer: sono uno dei ragazzi dietro V-Play, che si basa su Qt.
Christian Feldbacher

Risposta: Flutter , è il nuovo framework di interfaccia utente mobile di Google per creare interfacce native su iOS e Android in tempi record.
naXa

C'è anche un promettente progetto attivo haxe.org .
Eugene Gr. Philippov il

Risposte:


104

Disclaimer: lavoro per un'azienda, Particle Code, che crea un framework multipiattaforma. Ci sono un sacco di aziende in questo spazio. Di nuovi sembrano spuntare ogni settimana. Buone notizie per te: hai molte scelte.

Questi framework adottano approcci diversi e molti di essi sono fondamentalmente progettati per risolvere problemi diversi. Alcuni si concentrano sui giochi, altri sulle app. Vorrei porre le seguenti domande:

Cosa vuoi scrivere? Applicazione aziendale, applicazione per la produttività personale, gioco di puzzle, sparatutto in prima persona?

Che tipo di ambiente di sviluppo preferisci? IDE o semplice editor di testo?

Hai forti sensazioni sui linguaggi di programmazione? Tra i framework che conosco, puoi scegliere tra ActionScript, C ++, C #, Java, Lua e Ruby.

La mia azienda è più nel campo dei giochi, quindi non ho giocato tanto con i framework JavaScript + CSS come Titanium, PhoneGap e Sencha. Ma posso parlarvi un po 'di alcuni dei framework orientati ai giochi. I giochi e le applicazioni Internet avanzate sono un'area in cui i framework multipiattaforma possono brillare, perché queste applicazioni tendono a dare più importanza all'unicità visiva e meno alla fusione con le interfacce utente native. Ecco alcuni framework da cercare:

  • Unity www.unity3d.com è un motore di giochi 3D. È davvero diverso da qualsiasi altro ambiente di sviluppo in cui ho lavorato. Costruisci scene con modelli 3D e definisci il comportamento allegando script agli oggetti. Puoi creare script in JavaScript, C # o Boo. Se vuoi scrivere un gioco basato sulla fisica 3D che verrà eseguito su iOS, Android, Windows, OS X o console, questo è probabilmente lo strumento che fa per te. Puoi anche scrivere giochi 2D utilizzando risorse 3D: un ottimo esempio di questo è il gioco indie Max and the Magic Marker, uno scroller laterale basato sulla fisica 2D scritto in Unity. Se non lo sai, ti consiglio di controllarlo (soprattutto se ci sono bambini nella tua famiglia). Max è disponibile per PC, Wii, iOS e Windows Phone 7 (anche se quest'ultima versione è una porta, poiché Unity non supporta WinPhone). Unity viene fornito con alcuni giochi di esempio completi di risorse e trame 3D, il che aiuta davvero ad essere al passo con quello che può essere un ambiente piuttosto complicato.

  • Corona www.anscamobile.com/corona è un motore di giochi 2D che utilizza il linguaggio di scripting Lua e supporta iOS e Android. Il punto di forza di Corona è la capacità di scrivere giochi basati sulla fisica molto rapidamente in poche righe di codice, e il gran numero di giochi basati su Corona nell'app store iOS è una testimonianza del suo successo. L'ambiente è molto snello, il che piacerà ad alcune persone. Viene fornito con un simulatore e un debugger. Aggiungi il tuo editor di testo preferito e hai un ambiente di sviluppo. L'SDK di base non include componenti dell'interfaccia utente, come pulsanti o caselle di riepilogo, ma per gli abbonati è disponibile un componente aggiuntivo CoronaUI.

  • Particle SDK www.particlecode.com è una soluzione multipiattaforma leggermente più generale con un background nei giochi. È possibile scrivere in Java o in ActionScript, utilizzando un modello di applicazione MVC. Include un IDE basato su Eclipse con un editor dell'interfaccia utente WYSIWYG. Attualmente supportiamo la creazione di dispositivi Android, iOS, webOS e Windows Phone 7. Puoi anche generare Flash o HTML5 per il Web. Il framework è stato originariamente sviluppato per giochi sociali multiplayer online, come poker e backgammon, e si adatta a giochi e app 2D con logica complessa. Il framework supporta la grafica 2D e include un motore fisico 2D.

NB:

Oggi abbiamo annunciato che Particle Code è stato acquisito da Appcelerator, i creatori del framework multipiattaforma Titanium.

...

A partire dal 1 ° gennaio 2012, [ Particle Code ] non supporterà più ufficialmente la piattaforma [ Particle SDK ].

fonte

  • Airplay SDK www.madewithmarmalade.com è un framework C ++ che ti consente di sviluppare in Visual Studio o Xcode. Supporta sia la grafica 2D che quella 3D. Airplay si rivolge a iOS, Android, Bada, Symbian, webOS e Windows Mobile 6. Hanno anche un componente aggiuntivo per creare app AirPlay per PSP. Il mio C ++ è molto arrugginito, non ci ho giocato molto, ma sembra bello.

In termini di curva di apprendimento, direi che Unity ha avuto la curva di apprendimento più ripida (per me), Corona è stata la più semplice e Particle e Airplay sono una via di mezzo.

Un altro punto interessante è il modo in cui i framework gestiscono diversi fattori di forma. Corona supporta il ridimensionamento dinamico, che sarà familiare agli sviluppatori Flash. Questo è molto facile da usare ma significa che finisci per sprecare spazio sullo schermo quando passi da uno schermo 4: 3 come l'iPhone a uno 16: 9 come i nuovi dispositivi Android qHD. L'editor dell'interfaccia utente di Particle SDK consente di progettare layout flessibili che si adattano in scala, ma consente anche di regolare i layout per le dimensioni dello schermo individuali. Questo richiede un po 'più di tempo, ma ti consente di rendere l'app personalizzata per ogni schermata.

Ovviamente, ciò che funziona per te dipende dal tuo gusto personale e dallo stile di lavoro, nonché dai tuoi obiettivi, quindi ti consiglio di scaricare un paio di questi strumenti e provarli. Tutti questi strumenti possono essere provati gratuitamente.

Inoltre, se solo potessi inserire un annuncio di servizio pubblico, la maggior parte di questi strumenti sono in fase di sviluppo molto attivo. Se trovi un framework che ti piace, invia un feedback e fagli sapere cosa ti piace, cosa non ti piace e le caratteristiche che vorresti vedere. Hai una reale opportunità di influenzare ciò che accade nelle prossime versioni di questi strumenti.

Spero che questo ti aiuti.


Stavo pensando a uno sviluppo più aziendale, ma potresti avermi ispirato a esaminare uno di questi SDK per divertimento.
Alister

i collegamenti a ogni quadro sarebbero utili
Petrus Theron

2
Aggiornamento: Particle Code è stato acquisito da Appcelerator, i produttori di Titanium, quindi il destino di Particle SDK è incerto. Airplay ha cambiato il suo nome, piuttosto inspiegabilmente, in "Marmalade".
DocDude

15

MonoTouch e MonoDroid, ma nessuno sa cosa accadrà a quella parte di Attachmate. Ovviamente anche con le soluzioni mono stai ancora creando visualizzazioni non multipiattaforma, ma l'idea è il riutilizzo della logica di business.

Tieni d'occhio http://www.xamarin.com/ , sarà interessante vedere cosa inventeranno.


12

La mia esperienza nel creare qualcosa di molto semplice in PhoneGap + jQuery Mobile è andata bene. Sono stato in grado di farlo rapidamente per iOS. Tuttavia, non ha funzionato sui miei telefoni Android senza apportare alcune modifiche. Il progetto era un'app molto semplice per scattare foto e pubblicarle su un sito web. E alla fine della giornata sembrava "goffo" rispetto a una vera app nativa.

Non credo che ci sarà mai un facile sviluppo multipiattaforma. Penso che il browser sia il più vicino possibile. Scegliendo qualcosa come PhoneGap penso che stai solo scambiando un insieme di punti deboli per un diverso insieme di punti deboli.


7

Nel caso in cui non desideri utilizzare un framework completo per lo sviluppo multipiattaforma, dai un'occhiata a C ++ come opzione. iOS supporta completamente l'utilizzo di C ++ per la logica dell'applicazione tramite Objective-C ++. Non so quanto bene il supporto di Android per C ++ tramite NDK sia adatto per eseguire la logica aziendale in C ++ piuttosto che solo alcuni frammenti di codice critici per le prestazioni, ma nel caso in cui tale caso d'uso sia ben supportato, potresti provarlo.

Questo approccio ovviamente ha senso solo se la logica dell'applicazione costituisce la maggior parte del progetto, poiché le interfacce utente dovranno essere scritte individualmente per ciascuna piattaforma.

In effetti, il C ++ è il linguaggio di programmazione più ampiamente supportato (ad eccezione del C), ed è quindi il linguaggio principale della maggior parte delle grandi applicazioni multipiattaforma.


3
A proposito, Android sembra effettivamente supportare direttamente le attività scritte solo in C ++: developer.android.com/reference/android/app/NativeActivity.html
yeoman

4
Con un avvertimento: nessun accesso Java (quindi nessuna integrazione di librerie di terze parti o accesso SDK) da NativeActivity. Lo rende inadatto a molti scopi.
rbgrn

6

Anche se ho appena iniziato a guardare a quest'area di sviluppo, penso che dipenda da questa differenza fondamentale: alcuni strumenti mantengono il codice originale e alcuni port su nativo ...

per esempio, PhoneGap conserva solo il codice HTML / CSS / JS che scrivi e lo racchiude in un codice iOS sufficiente per qualificarsi come app, mentre Appcelerator ti offre un progetto XCode ... quindi se non hai familiarità con iOS, che poi non sarebbe davvero fornire alcun beneficio per voi sopra PhoneGap, ma se si DO conoscere un po ', che potrebbe dare solo un po' di più la capacità di modificare le versioni native dopo il vostro più grande sforzo di codifica.

Non ho usato appcelerator da solo, ma un paio di settimane fa ho lavorato a un progetto in cui uno dei membri del nostro team ha realizzato un'intera app per iPad in circa 24 ore utilizzandola.

E sì, per presentare effettivamente ad Apple, dovrai ottenere un Mac, ma se questa non è la tua piattaforma di lavoro principale puoi andare a buon mercato.


3

Cappuccino o PhoneGap .

A volte, però, cercare di trovare una scorciatoia non ti fa risparmiare tempo né ti dà un prodotto finale comparabile.



3

Se hai mai usato LUA, potresti provare Corona SDK in grado di creare app che funzionano su IOS e Android

https://coronalabs.com/

L'ho scaricato e ne ho provati alcuni, trovo LUA un linguaggio di scripting molto facile da imparare senza i soliti problemi / limitazioni del linguaggio di scripting ...


2

C'è anche BatteryTech che abbiamo utilizzato negli ultimi 18 mesi e di cui abbiamo rilasciato diversi giochi. http://www.batterypoweredgames.com/batterytech

Tutto il supporto C ++, Android e iOS, tutti gli utenti ottengono il sorgente completo. La nuova v2 include le associazioni lua.


3
A partire dal 30/05/12: $ 200 per la licenza per 5 o meno sviluppatori. $ 800 per più di 5. Non può essere utilizzato per progetti open source.
Roger Dahl
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.