Programmering

Gjennomgang: Appery.io parer mobilappbygger med back-end-tjenester

Appery.io er en ganske dyktig skybasert mobil nett- og hybrid mobil utviklingsplattform med online visuelle design- og programmeringsverktøy, samt integrerte back-end-tjenester. Du kan tenke på det som et kryss mellom en appbygger og en MBaaS (mobil bakside som en tjeneste).

Som vi kan se i figur 1 nedenfor, genererer Appery.io appbuilder HTML5-, jQuery Mobile- og Apache Cordova-kode, og Appery.io build-serveren genererer iOS-, Android-, Windows Phone- og HTML5-apper. Appery.io MBaaS tilbyr hosting, en MongoDB NoSQL-database, push-varsler, JavaScript-serverkode og en sikker proxy.

Appery.io kan snakke med i det vesentlige alle REST-API-er, uansett om selskapet har forhåndsbygd grensesnittet eller ikke. Å knytte et ferdig bygget REST-grensesnitt til en tjeneste er et spørsmål om noen minutter. Å bygge REST-grensesnittet selv tar litt lengre tid og krever å vite litt mer, men det er ikke en stor jobb.

Online appbygger

Appery.io-appbyggeren har faner for appinnstillingene, modellen din og lagring (figur 2), sidene dine mens du oppretter dem, dialoger, maler, temaer, CSS, hvilke tjenester du definerer, JavaScript og eventuelle tilpassede komponenter du definere. Byggherren (figur 3) bruker en WYSIWYG-designmetafor med en palett på mer enn 25 kontroller, inkludert for eksterne tjenester som Google Maps og Vimeo, og den viser et eiendomsark for hvert element. Du kan bytte fra designvisning til kildekodevisning for å se generert HTML, CSS, JavaScript og hvilken som helst enhetsspesifikk kode: Java for Android, Objective-C for iOS og XAML støttet av C # for Windows Phone.

Du kan teste HTML5-appen din mens du går, i datamaskinens nettleser (figur 4) og i telefon- og nettbrettleserne. alt som ikke er avhengig av Cordova, vil fungere. For å teste Cordova-koden (for eksempel for å bruke innebygde enhetsfunksjoner eller få push-meldinger), bygger du appen din, laster den ned til enheten og kjører den der. For enkelhets skyld vil Appery.io vise QR-koder for HTML5-appen din og binærfilene dine, slik at du kan laste dem ned direkte til enheten. For enda mer bekvemmelighet kan du installere Appery.io Native Test App-skallet på enheten din og peke på koden din.

Generelt syntes jeg appbyggeren var enkel å lære og bruke. Appery.io har gjort en god jobb med å designe IDE, slik at mobilutviklere vanligvis ikke vil bli overrasket over hva de får.

Du kan se på Appery.io-generert kildekode online, eller du kan se den offline når du har lastet ned prosjektet. Jeg hadde ikke problemer med å lese HTML5 / CSS / JavaScript-koden, men jeg var allerede kjent med Underscore, jQuery og jQuery Mobile. Appery.io henter inn omtrent 17 JavaScript-biblioteker, ikke medregnet småprogram. Er det fett? Vel ja. Men på moderne enheter er det ikke noe problem.

Den enhetsspesifikke innfødte koden for Android, iOS og Windows Phone er uinteressant. Appery.io er avhengig av Cordova for sitt opprinnelige skall, og det gjør alt det tilpassede applikasjonsarbeidet i den innebygde nettleserkontrollen.

Det er hyggelig at Appery.io har sin egen skybaserte byggherre- og byggetjeneste. Sammen med den nettleserbaserte IDE, betyr dette at mobilutviklere ikke trenger å ha flere datamaskiner eller flere virtuelle maskiner for å lage opprinnelige apper, og de trenger ikke å vedlikeholde flere innebygde SDKer og IDEer. Hvis du bestemmer deg for å eksportere Appery.io-genererte appen din og vedlikeholde den selv (for eksempel fordi du ikke vil fortsette abonnementet), vil du selvfølgelig trenge de innebygde SDK-ene og IDE-ene, eller PhoneGap Build-tjenesten fra Adobe.

Back-end-tjenester

Som vi nevnte tidligere, har Appery.io en MBaaS-funksjon som inkluderer hosting, en NoSQL-database (MongoDB), push-varsler, JavaScript-serverkode og sikre REST API-er.

Appery.io tillater HTML-hosting til sin egen sky, til Heroku, og (manuelt) til tredjeparts hosting-leverandører. På Appery.ios egen sky kan du bruke enten det oppgitte app.appery.io-domenenavnet eller ditt eget domene eller underdomenenavn, forutsatt at du har tilgang til DNS-innstillingene og vet hvordan du endrer dem.

For å være vert for Heroku, forutsatt at du har en heroku.com-konto, må du logge på, autorisere apperyio på Heroku og deretter opprette en Heroku-app fra Appery.io-siden. Bare mobile nettapper kan publiseres til Heroku, ikke Cordova-apper.

Du kan publisere hybridapper til Google Play, iOS App Store og Windows Store. Appery.io kan bygge binærfiler for deg i skyen.

Appery.io-databasen bruker MongoDB, et webgrensesnitt (figur 2) og et REST API. Når du har definert tabeller (aka samlinger) og kolonner, kan du referere til dem fra andre deler av Appery.io appbygger, og lage tilkoblinger og kartlegginger grafisk for automatisk å generere CRUD-kode. Hver database har tre forhåndsdefinerte samlinger - brukere, filer og enheter - som alle har omtrent kolonnene du forventer, og du kan legge til samlinger etter eget ønske.

Appery.io bruker Devices-samlingen til en valgt database for å kontrollere enhetene som vil motta pushvarsler; den støtter push-varsler for Android og iOS, og et gitt push-varsel kan bare være til det ene eller det andre. Du kan filtrere enhetene for et gitt trykk med en spørringsbygger eller spørringsstreng. Blant de mulige filtrene er en geolokalisering (for eksempel alle enhetene innen to miles fra et bestemt sted). Andre filtre inkluderer kanaler, som du kan oppbevare i databasen og tilordne etter ønske, og enhets-ID-er. Appery.io skyver varsler gjennom de innfødte Google- og Apple-tjenestene, så du må ha registrert deg for disse API-ene.

Appery.io kjører JavaScript-serverkode ved hjelp av V8-motoren, men bruker ikke Node.js-rammeverket. Som du forventer gitt REST API, kommuniserer JavaScript-koden for back-end med appen med forespørsels- og svarpakker, og den formater svarene som JSON. For eksempel definerer følgende kode et "Hello" -svar med gjeldende servertid:

// få navn fra tjenesten, navnet skrives inn i appen

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

// få og formatere tiden

var nå = øyeblikk (). format ("dddd, MMMM D ÅÅÅÅ, h: mm: ss a");

// sette sammen hilsenstrengen

var greetingString = "Hei" + navn + ". Det er" + nå;

// format som JSON og returner svaret

respons.success (JSON.stringify ({

hilsen: greetingString

}), "application / json");

Appery.io implementerer Secure REST ved hjelp av databasen og spesielle proxy-kanaler for å beskytte hemmelige nøkler, legitimasjon og andre sensitive data fra appbrukere. I utgangspunktet lagrer du dine hemmelige data i en database under nøkkelnavn, du oppretter en proxy-kanal for å erstatte nøkkelnavnene med hemmelige data, og i appen jobber du med nøkkelnavn og definerer proxy-kanalen som skal brukes. Da kaller appen nøkkelnavn, og i proxyen erstattes de med data, og tjenesten mottar ekte data. Brukere av appen kan finne nøkkelnavnene og proxy-kanal-ID-en, men de har ikke tilgang til de hemmelige dataene.

Eksterne grensesnitt

I skrivende stund har Appery.io plugin-moduler for Stripe-betalinger; SendGrid-post; Twilio-meldinger; USA Today nyheter; Facebook, Foursquare og LinkedIn sosiale nettverk; Boksen lagring; OAuth og Auth0 identitetsstyring; GitHub; Sirv dynamisk bildebehandling; og moderne og flate UI-temaer. Den har også innebygd støtte for Salesforce.com.

Hvis den eksterne tjenesten du trenger ikke allerede har en programtillegg, går ikke alt tapt. Hvis det er en REST-tjeneste, lar Appery.io deg koble til den, hente en prøvesvarpakke og bruke Visual Data Binding for å kartlegge tjenestens utdata til appen din.

Exadel, selskapet bak Appery.io, selger en ledsagertjeneste kalt RESTXpress. RESTXpress gjør det enkelt å pakke inn SQL / JDBC-databaser og SOAP-baserte webtjenester med REST-grensesnitt. RESTXpress kan installeres på Java-applikasjonsservere som Tomcat, og det er lisensiert separat.

Støtte uten nett

Når du bruker Appery.io-modellen og lagring, er standard atferd å vedvare webapptilstanden til lokal lagring. Data lagres i lokal lagring og gjøres tilgjengelig etter neste omstart. Eventuelt kan du legge til din egen kode (JavaScript) for å tilpasse denne muligheten så mye som nødvendig. Hvis du trenger mer lokal lagring enn det som kan oppbevares i HTML5 WebView-nøkkel / lagring av verdipar, kan du bruke org.apache.cordova.file API for å få tilgang til enhetens filsystem eller WebSQL for å få tilgang til den lokale SQLite-databasen.

Appery.io Model and Storage hjelper deg med å la en app kjøre offline fordi den lar utvikleren definere en appmodell på klienten (lokal lagring). Tilpasset kode (JavaScript) kan brukes til videre tilpasning. Exadel planlegger å legge til mye mer støtte for å gjøre det lettere. I følge selskapet var Model and Storage bare det første trinnet.

Mobildatabasesynkronisering med en server kan oppnås med Appery.io, ettersom du kan programmere både klienten og serveren, men det er definitivt ikke automatisk. Vanligvis vil du enten lagre endringer i nøkkel / verdipar, eller du vil opprettholde en lokal SQLite-database, få tilgang til den via en Cordova-plugin, og skyve skitne poster tilbake til serverdatabasen når du er tilkoblet.

Konklusjoner og sammenligninger

Ettersom Appery.io spenner over MBaaS og utviklingen av mobilappene, vil du sammenligne det med produkter i begge kategorier. I brede penselstrøk fant jeg Appery.io (total score 8.2) mindre overbevisende enn AnyPresence (total score 9.1), som går den ekstra milen og genererer native apps og mobile APIer. AnyPresence har også viktige grensesnitt for bedriftsdatabaser innbakt.

Jeg fant også Appery.io mindre i stand enn FeedHenry (8.6), som har bedre bedriftsstøtte gjennom bruk av Node.js-rammeverket, og Alpha Anywhere (8.8), som har utmerket databaseintegrasjon og full støtte for offline drift, mobildata synkronisering og datakonfliktløsning.

Jeg likte Appery.io bedre enn bare MBaaS Parse (7.6) og appbyggeren / MBaaS Appcelerator (7.8), og jeg fant det omtrent sammenlignbart med Kinvey (8.3), selv om Kinvey tilbyr mer i veien for analyse og enterprise databasestøtte .

PoengkortEvne (25%) Integrasjoner (25%) Kundestøtte (20%) IDE (20%) Verdi (10%) Total poengsum
Appery.io88898 8.2
$config[zx-auto] not found$config[zx-overlay] not found