Mobila utvecklingsplattformar

När du först börjar med mobilutveckling kan det vara svårt att välja en plattform. Ännu värre, varje plattform har sin egen uppsättning språk och verktyg att välja mellan. Så hur kan du bestämma dig?

Denna handledning hjälper dig att välja en lämplig mobil utvecklingsplattform så att du kan hoppa in och börja koda appar.

Plattformar och deras marknadsandelar

En plattform - ett ekosystem av mobila enheter, verktygsverktyg och appar - definieras vanligtvis av operativsystemet (OS). Platformsleverantörerna är stora företag som Google, Apple, Microsoft, etc. Var och en har utvecklat ett operativsystem som de licensierar till enhetsproducenter. Ibland kan de också vara enhetsproducenter själva. Enhetsprodusenterna konstruerar och bygger enheterna (mestadels smartphones och surfplattor) med det relevanta operativsystemet förinstallerat. Dessa enheter säljs sedan till konsumenter (användarna). 

Vissa grundläggande appar, som utvecklats av enhetsproducenten eller till och med plattformsleverantören, kan komma att installeras på enheten. Säljaren och enhetsproducenten ensam kan emellertid inte tillgodose de ständigt växande behoven hos användarna av dessa enheter. Så de är beroende av "tredje part" -utvecklare - som du! - För att fylla i utbud och efterfrågan. 

För att stödja utvecklarna som vill sälja appar till plattformen publicerar de SDK, API och andra verktyg för att göra apputveckling enklare. Dessutom kan en officiell "app store" lanseras, till vilken utvecklarna kan publicera sina appar och varifrån konsumenterna kan bläddra och ladda ner dem. Således är ett helt app-ekosystem byggt runt plattformen.

För närvarande har Android OS av Google den största globala marknadsandelen, med en hel del 86,1%. Apples IOS har 13,7% och håller den andra positionen. Den återstående delen av cirka 0,2% delas av alla övriga leverantörer i kombination. Detta inkluderar Windows Mobile av Microsoft, BlackBerry OS, Tizen OS, Sailfish OS och Ubuntu Touch. 

Den globala sammansättningen kan förändras betydligt i vissa länder. Till exempel i Android är Android marknadsandel 53,4% och iOS-andel är 44,5%, en märkbar skillnad jämfört med den globala marknadsandelen. Om du har en specifik marknad i åtanke skulle det vara en bra idé att undersöka demografiska mål för att ta reda på vilken plattform de sannolikt kommer att använda!

CPU-arkitektur

Medan alla dessa plattformar stöder ARM-CPU-arkitektur, utökar Android sitt stöd ännu mer, som täcker x86- och MIPS-arkitekturer. Tizen, Sailfish OS och Ubuntu Touch stöder också x86-arkitekturen. Men om du inte programmerar anpassade ROM-chips påverkar CPU-arkitekturerna som stöds av varje plattform inte ditt val.

Hur man väljer en plattform

Din förtrogenhet med programmeringsspråk

Du måste skriva mycket kod som en mobilapputvecklare. Det finns vissa verktyg som låter dig undvika att skriva i en textbaserad kodredigerare. Till exempel har både Android och iOS drag-och-släppverktyg för att bygga grafiska användargränssnitt. Dessa kommer inte låta dig använda plattformens funktioner och funktioner fullt ut. För att bygga komplexa appar måste du lära dig programmeringsspråket för din plattform.

Så du kan behöva lägga lite ansträngning för att lära sig ett nytt programmeringsspråk eller behärska en du redan vet. Alla de stora plattformarna använder populära programmeringsspråk med stora utvecklingssamhällen. Så se till att du utnyttjar dina kunskaper och färdigheter på dessa språk.

Om du är bekant med Java, hittar du det lättare att utveckla Android-appar med Android SDK (Software Development Kit). Men vissa avancerade appfunktioner kräver att du använder C och C ++-färdigheter, med Android NDK (Native Development Kit). Det är också möjligt att programmera för Android med alternativa språk som Kotlin.

iOS kräver Objective-C eller Swift programmeringsfärdigheter. 

Om du är fan av Microsofts Visual Studio .NET, kommer du att vara glad att utveckla Windows Mobile-appar med C #. 

Att utveckla för BlackBerry eller Tizen, bara lära HTML, CSS och JavaScript. 

Master QML eller Python, och du skulle vara redo att utveckla Sailfish apps. 

Om du älskar Ubuntu Touch bör du lära dig QML eller HTML och JavaScript. 

Slutligen, om du redan känner till webbspråk som JavaScript och CSS, kan du använda dessa för att utveckla för vilken plattform som helst, med en mobil plattformsplattform.

Nya programmeringsspråk är ständigt föreslagna och främjas. Även om det inte alltid är klart om dessa nya språk har en stor fördel gentemot de gamla, är det en bra idé att hålla sig inriktad på de senaste trenderna. Vissa programmeringsspråk kan bli föråldrade med införandet av de nya. Swift är en ersättning för mål-C, till exempel - och några gamla språk kan hitta förnyad existens, med helt nya användningsområden.

Native vs Hybrid Development

Du har två alternativ när det gäller att utveckla smartphone-appar: inbyggda appar och hybrid. En inbyggd app som publiceras på en plattform kommer inte att köras på en annan plattform. Du kan till exempel inte installera en Android-inbyggd app på en iOS-enhet. Du måste publicera en separat plattformsspecifik version för det, byggt med hjälp av lämpliga utvecklings- och installationsverktyg, riktade mot iOS. Däremot är en hybrid app en webbapp utvecklad med HTML, CSS och JavaScript, och inslaget i ett inbyggt appskal (eller användargränssnitt). 

Vad som är bra med inhemska appar är att de är överlägsna i prestanda, och de utnyttjar fullt ut enhetens funktioner. Dessutom är de säkrare. Nackdelen är att utvecklaren måste behålla flera kodbaser för var och en av plattformarna. Eftersom hybridappar har endast måttlig tillgång till inbyggda API-skivor, går deras prestanda och användarupplevelsen (UX) något efter. Den främsta fördelen med hybridapparna är att utvecklaren skulle kunna publicera för flera plattformar med samma kodbas.

Om du vill bygga inbyggda appar kanske du vill kolla in våra omfattande kurser om att komma igång med kodningsprogram för Android eller iOS.

Ionic 2 är en populär ram för att utveckla mobilplattformar med hybridplattform. Den är baserad på Angular 2 webramen. Om du vill lära dig mer, kolla in några av våra kurser eller handledning.

Native Cross-Platform Apps

Nyligen har en ny sats av mobila tvärplattformsramar uppstått. Dessa kombinerar de bästa funktionerna hos inbyggda appar och hybridapps-de är snabba och lätta och kan komma åt den fulla effekten hos den inbyggda enheten, men de är också kodade med JavaScript och andra webbspråk, så mycket kod kan återanvändas mellan plattformar.

React native och NativeScript är populära inbyggda plattformar. Om du vill lära dig mer om dessa, kolla in vår omfattande nybörjarkurs eller några av våra många handledning.

Din förmåga att lära dig

Om du är en snabb lärare kan du enkelt behärska det inbyggda utvecklingsspåret. Du måste förstå grundläggande programmeringskoncept som objektorienterad programmering (OOP), och du måste lära dig att vara bekväm med de plattformsspecifika tekniska koncepten, till exempel Application Lifecycle Management i Android, till exempel. 

För att komma igång, bara ladda ner nödvändiga verktyg och SDK från plattformsleverantören och ge det ett försök. De flesta av verktygen är öppen källkod, och det finns gott om kodprover och appmallar som medföljer dem för att hjälpa dig att komma igång snabbt. 

Om du är en webbutvecklare och vill utforska utvecklingsutrymmet för smartphone, kanske du är mer bekväm med att börja med hybrid eller plattformsbyggande utveckling. 

Systeminställning och enkla kodning

En annan faktor att överväga är OS-plattformen, och ibland maskinvaruinstallationen för utvecklingsdatorn. 

Om du vill utveckla inbyggda iOS-appar kan du inte göra det på en vanlig Windows-dator. Du behöver en Mac med MacOS och Xcode, Apples IDE för iOS-utveckling. På samma sätt utvecklas Ubuntu Touch native apps bäst med en Ubuntu-dator. Medan Android SDK körs på alla tre stora OS-plattformarna för skrivbord, är det alltid lämpligt att kontrollera om ditt system uppfyller de rekommenderade specifikationerna innan du börjar utveckla.

App Store Policies & Revenue Sharing

Både Googles och Apples appbutiker debiterar en nominell registreringsavgift. Trots att båda erbjuder samma intäktsdelningsandel (70% av försäljningspriset för närvarande) kan utvecklare i teorin tjäna mer intäkter genom att publicera på Apples. Det beror på att antalet appar är relativt mindre och det finns mindre konkurrens bland liknande appar. Du måste också vara medveten om att inte alla geografiska platser får publicera betalade appar på Googles Play Butik. Så du måste tänka på en metod för att tjäna pengar på din app i förväg.

Förutom att sälja appen själv är ett annat sätt att tjäna pengar på din app genom att visa annonser eller erbjuda att låsa upp ytterligare funktioner.

Din målgrupp

Det här är en viktig faktor eftersom framgången för din app beror på hur bra du adresserar din publik eller hur effektivt du löser deras problem. Medan de flesta smartphone-användare tenderar att tillhöra yngre generationer, finns det smartphone-appar som är dedikerade till äldre och funktionshindrade. Eftersom plattformens marknadsandel förändras per land och åldersgrupp är det en bra idé att undersöka plattformsemografin om du vill rikta in en specifik demografisk. 

Stödda Enhetsfunktioner av Platform

Inte alla enheter stöder alla funktioner på en plattform. Å ena sidan finns det avancerade enheter, ofta kallade "flaggskeppsprodukter", som stöder de flesta av funktionerna. Å andra sidan finns det billiga enheter på grundnivå som endast stöder de grundläggande funktionerna. Sedan finns det allt däremellan. 

Så du måste vara väldigt selektiv och fatta välgrundade beslut när du utvecklar appar. Att utveckla en app som behöver funktioner som endast stöds av avancerade enheter kan påverka appens försäljning kraftigt.

Å andra sidan kan detta vara ett tillfälle om du kan erbjuda användare av en avancerad enhet en appfunktion som inte är tillgänglig någon annanstans.

Slutsats

I det här inlägget har jag tittat på alla de viktigaste mobila utvecklingsplattformarna och försökt ge dig lite vägledning för att hjälpa dig att välja mellan dem. Att tillämpa dessa insikter hjälper säkert dig att bli framgångsrik i din apputvecklingsverksamhet.