Hvordan lage en app

Det er flere måter å opprette et mobilprogram på. Vil du vite hva den beste måten er? Det kommer an på. Hvilke teknologier har du erfaring med? Hvilke plattformer målretter du mot? Hvor mye tid vil du bruke til å bygge din søknad?

Etter introduksjonen av iPhone og det er programvareutviklingssett, gikk mobilrommet gjennom en revolusjon. I dag er det millioner av mobile applikasjoner, utallige plattformer og dusinvis av rammer og verktøy for å lage mobile applikasjoner.

Hvordan bestemmer du hva som er riktig for deg? Svar på dette spørsmålet er fokus for denne artikkelen. Jeg diskuterer hvilke typer mobilapplikasjoner du finner i det wild, fordelene med innfødte og hybridapplikasjoner, og jeg viser noen av de mer populære plattformene.

Applikasjonstyper

Mobilapplikasjoner kan deles inn i tre brede kategorier:

  • webapplikasjoner
  • hybrid applikasjoner
  • innfødte applikasjoner

Hver av disse typene har sine fordeler og ulemper. Hvis du skulle spørre meg hvilken type som passer best til dine behov, så ville mitt svar være at det virkelig avhenger av nøyaktig hva du prøver å gjøre. For å rettferdiggjøre svaret mitt, må jeg først fortelle deg om hver søknadstype. La oss starte med webapplikasjoner.

Web-applikasjoner

Du kan allerede være kjent med webapplikasjoner. I motsetning til andre apps, er et webprogram ikke noe du kan laste ned fra et sted, det er bare tilgjengelig på en hvilken som helst enhet som kan laste inn nettsider (eller har en nettleser). En webapplikasjon er ikke noe mer enn et nettsted, opptre og oppfører seg som et program. Før innføringen av iOS SDK, for eksempel, var webprogrammer det eneste alternativet for utviklere som ønsker å lage programmer for den opprinnelige iPhone.

Webapplikasjoner har en rekke forskjellige fordeler, den viktigste er utviklingstiden. Fordi et webprogram er et nettsted, er det bygget en gang og tilgjengelig på alle plattformer som kjører en nettleser. For noen selskaper er dette en veldig tiltalende løsning siden innfødt utvikling, som vi diskuterer på et øyeblikk, kan være kostbart og tidkrevende. Du kan si at webapplikasjoner er per definisjon kryssplattform.

En annen viktig fordel er læringskurven for utvikling av webapplikasjoner. For å utvikle et webprogram, er du avhengig av webteknologier som du allerede har erfaring med, for eksempel HTML, CSS og JavaScript. Hvis du gjør det, vil du være oppe på en gang uten bruk av noen SDKer.

Er det noen ulemper?

Som med alle typer applikasjoner, er det noen ulemper med webutvikling. De to viktigste ulempene er ytelse og tilgang til enhetskapasiteter. Hvis du planlegger å utvikle et spill, er et webprogram ikke det beste alternativet. Det er mulig, men ytelsen vil ikke være fantastisk. Nettsteder og webapplikasjoner har begrenset tilgang til enhetens evner, for eksempel kameraet, plasseringstjenester, etc. Dette har blitt betydelig forbedret gjennom årene, men det er ikke helt i tråd med innfødte applikasjoner.

Hvis du vil begrense utviklings- og vedlikeholdskostnadene til mobilapplikasjonen og ytelsen ikke er det viktigste aspektet, så er et webprogram absolutt verdt å vurdere.

Hvis du vil forstå hva webprogrammene handler om, og hvordan du kommer i gang, sjekk ut noe av vårt andre innhold her på Envato Tuts +:

Hybrid applikasjoner

Hybrid applikasjoner var og fremdeles er utrolig populære. De kombinerer noen av de beste tingene fra begge verdener, det vil si web og innfødte. Teknologiene som brukes til å lage hybridprogrammer, er identiske med de som brukes til å lage webapplikasjoner, HTML, CSS og JavaScript. Årsaken er åpenbar hvis du forstår hvordan hybridapplikasjoner fungerer.

En hybridapplikasjon er et webprogram som kjører i en webvisning av en opprinnelig applikasjon. Sett annerledes, en hybrid applikasjon bruker en innfødt applikasjon som sin beholder for å gjøre det ser ut som en innfødt applikasjon. Dette betyr at for brukeren ser en hybridapplikasjon ut og føles innfødt, mer eller mindre. Brukeren kan laste den ned fra plattformens mobilbutikk, og applikasjonsikonet vises på startskjermen.

Noen ulemper? Fordi hybridapplikasjoner stole på webteknologi og kjører i en webvisning, lider hybridapplikasjoner av de fleste av de samme problemene som webapplikasjoner gjør. Ytelsen er ikke på nivå med innfødte applikasjoner. Dette er bedre, men hvert år blir ytelsen bedre og bedre. Det er imponerende hvordan JavaScript-ytelsen har blitt bedre i løpet av det siste tiåret.

Den mest populære løsningen for å utvikle hybridapplikasjoner er Apache Cordova, Cordova for kort. Da Adobe kjøpte PhoneGap for noen år siden, åpnet de hentet mesteparten av koden, og Cordova ble født. PhoneGap eksisterer fortsatt og er Cordovas kommersielle fetter.

For å fremskynde utviklingen bruker utviklere ofte Cordova i kombinasjon med andre rammer, for eksempel ionisk og Onsen UI.

For å lære mer om hybridapplikasjoner, anbefaler jeg å sjekke ut noen av veiledningene vi har publisert på Cordova:

Native Applications

Å velge for innfødt utvikling er å velge for ytelse og pålitelighet. Hvorfor skremmer den innfødte utviklingen så mange utviklere? La oss ta iOS-plattformen som et eksempel. Hvis du vil bygge et innfødt iOS-program, må du lære et nytt språk, Objective-C eller Swift. Du må også bli kjent med Xcode, Apples IDE (Integrated Development Environment). En innfødt applikasjon tar vanligvis lengre tid å bygge, bare fordi du jobber nærmere metallet så å si. Mål-C og JavaScript er to svært forskjellige språk.

Hva får du i retur? Ytelse er trolig den mest overbevisende fordelen ved innfødte applikasjoner. Native applikasjoner føles snappy, og spesielt for spill, kan de dra full nytte av ressursene til enheten og operativsystemet. Hver funksjon og evne til enheten som er utsatt gjennom SDKs APIer, er tilgjengelig for utvikleren. Dette er en annen viktig fordel som innfødte har over hybrid og web.

Det er en rekke hybrid tilnærminger som gjør det mulig å utvikle opprinnelig applikasjonsutvikling for flere utviklere. Løsningen er enkel, skrive kode på språket du ønsker, og kompilere det til en opprinnelig applikasjon. De mest populære løsningene på skrivingstidspunktet er Xamarin og React Native.

Xamarin lar utviklere skrive innfødte programmer for iOS, Android og Windows Phone ved hjelp av C #. Xamarin-verktøyene utnytter Mono open source-prosjektet. React Native har sine røtter på Facebook og gjør det mulig for utviklere å skrive innfødte applikasjoner ved hjelp av JavaScript.

Envato Tuts + dekker et bredt spekter av plattformer, inkludert iOS, Android, Xamarin og React Native. Ta en titt på disse veiledningene for å bli kjent med dem:

Native eller Hybrid

Hva er den beste løsningen? Innfødt? Eller hybrid? Eller en webapplikasjon? Det er ingen svar. Det avhenger av flere faktorer. Hvis du er en utvikler, er svaret mindre komplisert. Hvilke teknologier er du allerede kjent med? Ønsker du å fokusere på en plattform eller lage applikasjoner for flere plattformer?

Det blir en sann utfordring å holde seg på toppen av iOS, Android og Windows Phone. Noen utviklere skriver innfødte applikasjoner for flere plattformer, men det er utfordrende, og hvis du kan gjøre det, anbefaler jeg det definitivt. Mobilplassen utvikler seg i et raskt tempo, og hvis du velger innfødt utvikling, så det bør være målet ditt, for å bli veldig, veldig kjent med plattformen du målretter mot.

Dette er en av grunnene til at mange utviklere velger en hybridløsning. Hvis du er en erfaren webutvikler, vil du være oppe på et øyeblikk. Apache Cordova, i kombinasjon med ionisk eller Onsen UI, kan øke utviklingen betydelig.

Webapplikasjoner er absolutt noe å huske på. De er imidlertid en annen kategori. Ved å lage et webprogram, har du ikke tenkt å ha et program i noen av mobilbutikker. Mange bedrifter valgte denne banen for flere år siden. I dag, hvis budsjettet og ressursene er tilgjengelige, er innfødte og hybrid-tilnærminger mer populære.


Spør deg selv

For å avgjøre hvilken tilnærming du vil ta i utviklingen av mobilprogrammet ditt, spør deg selv disse spørsmålene. Som jeg nevnte tidligere, velger du typen

Er ytelse kritisk?

I så fall er innfødt ditt beste alternativ. Du vil kanskje også se på Unreal Engine hvis du planlegger å utvikle et spill. I motsetning til Unity belaster de deg bare 5% av inntektene du gjør i stedet for en månedlig avgift.

Da vi diskuterte innfødte applikasjoner, så vi at de kunne utnytte enhetens evner, og et godt eksempel på dette er hvordan Apple tar grafikkytelse til neste nivå ved å bruke Metal ved å gi utviklere nesten full tilgang til GPUen på enheten.

Hvis du ikke er kjent med Metal, her er hva Apple har å si om det:

Metal 2 gir nær direkte tilgang til grafikkbehandlingsenheten (GPU), slik at du kan maksimere grafikken og beregne potensialet til appene dine på iOS, macOS og tvOS.

Nå, hvis ytelse spiller ingen rolle, er du fri til å velge kryssplattform eller hybridapps, hvilken som helst pakke du trenger bedre basert på følgende få spørsmål. Uansett, hvis du har ressurser til å bygge opprinnelig apps, er det alltid det beste alternativet generelt.

Er støtte på tversplattform viktig?

Hvis ikke, bør du vurdere den innfødte ruten. Native apps, som nevnt ovenfor, er definitivt den beste måten å gå for en solid brukeropplevelse og best mulig ytelse. 

Hvis støtte på tvers av plattformen er viktig, og du ikke kan få innfødte apper for alle plattformene dine, er en hybrid innfødt eller hybrid web-tilnærming din beste innsats. 

Ta en titt på Xamarin eller React Native hvis ytelse og enhetskapasiteter er like viktige. Min personlige favoritt er imidlertid ionisk fordi den gir en hel del funksjoner på enheten, samtidig som den har en bred nok paraply som dekker mest utvikling

Er dette din neste store ting?

Hvis målet ditt er å bli en mobilutvikler, så vil mitt forslag være å velge en innfødt tilnærming. Dette er imidlertid veldig personlig. Jeg er en iOS-utvikler, og jeg liker det på denne måten; Jeg tror at Apple forstyrrer mobilutviklingsfeltet, og det gir deg mange verktøy som utvikler. Ved å fokusere på en plattform, i mitt tilfelle, iOS, tvOS, watchOS og macOS, har jeg tid til å bli veldig kjent med plattformen. Dette er et viktig aspekt av mobilutvikling hvis du vil lage overbevisende applikasjoner og en flott brukeropplevelse.

Hvis du har en bakgrunn i webutvikling, er innfødt fortsatt et alternativ. Men hvis du ønsker å få noe ut døren raskt, så er en hybrid eller web-app den raskeste løsningen.


Konklusjon

Hvis du forventet et klart svar, så har jeg kanskje skuffet deg. Hvis du ikke har gjort tankene dine ennå, foreslår jeg å gi noen av alternativene jeg har oppført et forsøk på. Spill med Cordova eller ta en lære om Swift og se hvordan du liker det. Ikke ta den enkleste eller raskeste banen til målet ditt. Pass på at du også nyter reisen fordi det er der moroa er.

Hvis du allerede vet hvilken tilnærming som er best for deg, vil du kanskje øke hastigheten på utviklingen av ditt neste program med noen av disse iOS- og Android-malene. Sjekk dem ut på Envato Market: