Recensione: Appery.io abbina il generatore di app per dispositivi mobili ai servizi di back-end

Appery.io è una piattaforma di sviluppo mobile ibrida e Web mobile basata su cloud piuttosto efficiente con strumenti di programmazione e progettazione visiva online, nonché servizi di back-end integrati. Puoi pensarlo come un incrocio tra un costruttore di app e un MBaaS (back-end mobile come servizio).

Come possiamo vedere nella Figura 1 di seguito, il generatore di app Appery.io genera codice HTML5, jQuery Mobile e Apache Cordova e il server di compilazione Appery.io genera app iOS, Android, Windows Phone e HTML5. Appery.io MBaaS fornisce hosting, un database NoSQL MongoDB, notifiche push, codice server JavaScript e un proxy sicuro. 

Appery.io può parlare essenzialmente con qualsiasi API REST, indipendentemente dal fatto che la società abbia precostruito l'interfaccia. Il collegamento di un'interfaccia REST precostruita a un servizio è questione di pochi minuti. Costruire l'interfaccia REST da soli richiede un po 'più di tempo e richiede di saperne di più, ma non è un grande lavoro.

Generatore di app online

Il generatore di app Appery.io dispone di schede per le impostazioni dell'app, il modello e l'archiviazione (Figura 2), le pagine durante la creazione, le finestre di dialogo, i modelli, i temi, i CSS, i servizi definiti, il JavaScript e tutti i componenti personalizzati definire. Il builder (Figura 3) utilizza una metafora di progettazione WYSIWYG con una tavolozza di oltre 25 controlli, inclusi servizi esterni come Google Maps e Vimeo, e visualizza una finestra delle proprietà per ogni elemento. Puoi passare dalla visualizzazione struttura alla visualizzazione codice sorgente per vedere il codice HTML, CSS, JavaScript generato e qualsiasi codice specifico del dispositivo: Java per Android, Objective-C per iOS e XAML supportato da C # per Windows Phone.

Puoi testare la tua app HTML5 mentre procedi, nel browser del desktop (Figura 4) e nei browser del telefono e del tablet; tutto ciò che non dipende da Cordova funzionerà. Per testare il tuo codice Cordova (ad esempio, per utilizzare le funzionalità native del dispositivo o ricevere messaggi push), crea la tua app, scaricala sul tuo dispositivo ed eseguila lì. Per comodità, Appery.io mostrerà i codici QR per la tua app HTML5 e i tuoi file binari in modo che tu possa scaricarli direttamente sul tuo dispositivo. Per ancora più comodità, puoi installare la shell dell'app di test nativa di Appery.io sul tuo dispositivo e indicarla al tuo codice.

In generale, ho trovato il generatore di app facile da imparare e da usare. Appery.io ha fatto un buon lavoro nel progettare il suo IDE in modo che gli sviluppatori mobili di solito non siano sorpresi da ciò che ottengono.

Puoi guardare online il codice sorgente generato da Appery.io oppure puoi visualizzarlo offline dopo aver scaricato il progetto. Non ho avuto problemi a leggere il codice HTML5 / CSS / JavaScript, ma conoscevo già Underscore, jQuery e jQuery Mobile. Appery.io include circa 17 librerie JavaScript, senza contare i widget. È grasso? Beh si. Ma sui dispositivi moderni, non è un problema.

Il codice nativo specifico del dispositivo per Android, iOS e Windows Phone non è interessante. Appery.io dipende da Cordova per la sua shell nativa e fa funzionare tutte le applicazioni personalizzate nel controllo del browser incorporato.

È bello che Appery.io abbia il proprio builder e servizio di compilazione basati su cloud. Insieme all'IDE basato su browser, ciò significa che gli sviluppatori mobili non devono disporre di più computer o più VM per creare app native e non devono mantenere più SDK e IDE nativi. Ovviamente, se decidi di esportare la tua app generata da Appery.io e di mantenerla da solo (ad esempio, perché non vuoi continuare l'abbonamento), avrai bisogno degli SDK e degli IDE nativi o del servizio PhoneGap Build di Adobe.

Servizi di back-end

Come accennato in precedenza, Appery.io ha una funzionalità MBaaS che include hosting, un database NoSQL (MongoDB), notifiche push, codice server JavaScript e API REST sicure.

Appery.io consente l'hosting HTML sul proprio cloud, su Heroku e (manualmente) su provider di hosting di terze parti. Sul cloud di Appery.io, puoi utilizzare il nome di dominio app.appery.io fornito o il nome del tuo dominio o sottodominio, supponendo che tu abbia accesso alle tue impostazioni DNS e sappia come modificarle.

Per ospitare su Heroku, supponendo che tu abbia un account heroku.com, devi accedere, autorizzare apperyio su Heroku, quindi creare un'app Heroku dal lato Appery.io. Solo le app Web mobili possono essere pubblicate su Heroku, non le app Cordova.

Puoi pubblicare app ibride su Google Play, App Store iOS e Windows Store. Appery.io può creare i file binari per te nel suo cloud.

Il database Appery.io usa MongoDB, un'interfaccia Web (Figura 2) e un'API REST. Dopo aver definito le tabelle (ovvero le raccolte) e le colonne, è possibile fare riferimento ad esse da altre parti del generatore di app Appery.io, creando connessioni e mappature graficamente per generare automaticamente il codice CRUD. Ogni database ha tre raccolte predefinite: utenti, file e dispositivi, che hanno tutte all'incirca le colonne che ti aspetteresti e puoi aggiungere raccolte a piacimento.

Appery.io utilizza la raccolta Dispositivi di un database selezionato per controllare i dispositivi che riceveranno le notifiche push; supporta le notifiche push per Android e iOS e qualsiasi notifica push può essere solo per l'una o l'altra. È possibile filtrare i dispositivi per un dato push con un generatore di query o una stringa di query. Tra i possibili filtri c'è una geolocalizzazione (ad esempio, tutti i dispositivi entro due miglia da una certa posizione). Altri filtri includono i canali, che puoi mantenere nel database e assegnare come desideri, e gli ID dispositivo. Appery.io invia notifiche tramite i servizi nativi di Google e Apple, quindi è necessario essersi registrati per tali API.

Appery.io esegue il codice del server JavaScript utilizzando il motore V8, sebbene non utilizzi il framework Node.js. Come ci si aspetterebbe data l'API REST, il codice JavaScript back-end comunica con l'app con pacchetti di richiesta e risposta e formatta le risposte come JSON. Ad esempio, il codice seguente definisce una risposta "Hello" con l'ora del server corrente:

// get name from service, name is entered in the app

var name = request.get("name");

// get and format the time

var now = moment().format("dddd, MMMM D YYYY, h:mm:ss a");

// put together the greeting string

var greetingString = "Hello " + name + ". It is " + now;

// format as JSON and return the response

response.success(JSON.stringify({

   greeting: greetingString

}), "application/json");

Appery.io implementa Secure REST utilizzando il proprio database e canali proxy speciali per proteggere chiavi segrete, credenziali e altri dati sensibili dall'apertura da parte degli utenti dell'app. Fondamentalmente, archivi i tuoi dati segreti in un database sotto i nomi delle chiavi, crei un canale proxy per sostituire i nomi delle chiavi con i dati segreti e nell'app, lavori con i nomi delle chiavi e definisci il canale proxy da utilizzare. Quindi l'app chiama i nomi delle chiavi e nel proxy vengono sostituiti con i dati e il servizio riceve dati reali. Gli utenti dell'app possono trovare i nomi delle chiavi e l'ID del canale proxy, ma non hanno accesso ai dati segreti.

Interfacce esterne

Al momento della stesura di questo documento, Appery.io dispone di plug-in per i pagamenti Stripe; SendGrid mail; Messaggistica Twilio; Notizie su USA Today; Social network Facebook, Foursquare e LinkedIn; Scatola di immagazzinaggio; Gestione delle identità OAuth e Auth0; GitHub; Imaging dinamico Sirv; e temi dell'interfaccia utente moderni e piatti. Ha anche il supporto integrato per Salesforce.com.

Se il servizio esterno di cui hai bisogno non ha già un plug-in, non tutto è perduto. Se si tratta di un servizio REST, Appery.io ti consente di connetterti ad esso, acquisire un pacchetto di risposta di esempio e utilizzare Visual Data Binding per mappare l'output del servizio alla tua app.

Exadel, la società dietro Appery.io, vende un servizio complementare chiamato RESTXpress. RESTXpress semplifica il wrapping di database SQL / JDBC e servizi Web basati su SOAP con interfacce REST. RESTXpress può essere installato in server di applicazioni Java come Tomcat ed è concesso in licenza separatamente.

Supporto offline

Quando si utilizzano il modello e l'archiviazione Appery.io, il comportamento predefinito è mantenere lo stato dell'app Web nell'archivio locale. I dati verranno conservati nella memoria locale e resi disponibili al successivo riavvio. Facoltativamente, puoi aggiungere il tuo codice (JavaScript) per personalizzare questa funzionalità quanto necessario. Se è necessaria più memoria locale di quella che può essere conservata nell'archiviazione di coppie chiave / valore HTML5 WebView, è possibile utilizzare l' org.apache.cordova.fileAPI per accedere al file system del dispositivo o WebSQL per accedere al database SQLite locale.

Il modello e l'archiviazione Appery.io aiutano a consentire l'esecuzione offline di un'app poiché consente allo sviluppatore di definire un modello di app sul client (archiviazione locale). Il codice personalizzato (JavaScript) può essere utilizzato per ulteriori personalizzazioni. Exadel prevede di aggiungere molto più supporto per renderlo più facile. Secondo l'azienda, Model and Storage è stato solo il primo passo.

La sincronizzazione del database mobile con un server può essere eseguita con Appery.io, poiché puoi programmare sia il client che il server, ma sicuramente non è automatico. In genere si memorizzano le modifiche nella coppia chiave / valore o si mantiene un database SQLite locale, si accede tramite un plug-in Cordova e si reinserisce i record sporchi nel database del server quando si è connessi.

Conclusioni e confronti

Poiché Appery.io copre gli spazi MBaaS e di sviluppo di app mobili, vorresti confrontarlo con i prodotti di entrambe le categorie. Nelle pennellate generali, ho trovato Appery.io (punteggio complessivo 8.2) meno avvincente di AnyPresence (punteggio complessivo 9.1), che fa il possibile e genera app native e API mobili. AnyPresence ha anche le importanti interfacce di database aziendali integrate.

Ho anche trovato Appery.io meno capace di FeedHenry (8.6), che ha un migliore supporto aziendale attraverso il suo utilizzo del framework Node.js, e Alpha Anywhere (8.8), che ha un'eccellente integrazione del database e pieno supporto delle operazioni offline, dati mobili sincronizzazione e risoluzione dei conflitti di dati.

Appery.io mi è piaciuto di più del semplice MBaaS Parse (7.6) e del generatore di app / MBaaS Appcelerator (7.8), e l'ho trovato più o meno paragonabile a Kinvey (8.3), sebbene Kinvey offra di più in termini di analisi e supporto per database aziendali .

Scorecard Capacità (25%) Integrazioni (25%) Assistenza clienti (20%) IDE (20%) Valore (10%) Punteggio totale
Appery.io 8 8 8 9 8 8.2