med konsumenter som spenderar mer än 180 miljarder timmar i smartphone-appar varje månad fortsätter attraktiviteten för utveckling av mobilappar att öka, och många utvecklare lär sig hur man kodar mobilappar från grunden.
i den här artikeln går vi först igenom olika typer av appar innan vi tittar närmare på kodning av mobilappar i praktiken.
apputveckling
In-App-utveckling, den mest grundläggande skillnaden är att mellan webbappar och mobilappar. Webbappar kräver en aktiv internetanslutning för att köras, medan mobilappar fungerar offline. Webbappar på smartphones är helt enkelt mobiloptimerade webbsidor, medan mobilappar måste laddas ner från en telefons appbutik.
mobilappar är överlägsna när det gäller effektivitet och hastighet men kräver att användare manuellt eller automatiskt laddar ner uppdateringar snarare än att uppdatera sig själva, som webbappar gör. Utveckling av mobilappar tenderar att vara mer resurskrävande än skapande av webbappar, men mobilappar är snabbare och överträffar vanligtvis funktionellt sina motsvarigheter på webben. Till exempel använder mobilappar ofta telefonfunktioner som kameror som webbappar vanligtvis inte har tillgång till.
Du kan bli förvånad över att lära dig att det finns flera typer av mobilappar, så vi fortsätter genom att skilja mellan de två huvudtyperna: inbyggda appar och plattformsappar.
inbyggda appar vs. Plattformsappar
inbyggda applikationer är de som är byggda med ett visst operativsystem (OS) i åtanke, med specifika programmeringsspråk och integrerade utvecklingsmiljöer (Ides). Till exempel bör en inbyggd applikation för iOS skrivas på det språk som iOS förväntar sig, med hjälp av API: erna som iOS exponerar. Om utvecklare använder Objective-C och Swift för en iOS-app, eller Java för en Android-app, tillsammans med lämpliga API: er, är sådana applikationer ”inbyggda” i den mån det underliggande systemets kapacitet används som förväntat av systemet. Inbyggda appar använder också hårdvaruminne, kamera, sensorer och andra program installerade på en enhet via API: erna som exponeras av det underliggande systemet.
däremot avser plattformsramar att tillhandahålla universella lösningar som stöds av flera mobila operativsystem samtidigt. De använder en gemensam kärna med anpassningar per plattform för att passa en applikation till flera plattformar, så det finns inget behov av att skapa unika element för varje operativsystem.
vilka är fördelarna och utmaningarna med varje mobilapp-strategi?
inbyggda appar erbjuder högre prestanda, högre energieffektivitet, färre begränsningar i arkitektur och funktionalitet och ett gränssnitt som helt överensstämmer med den givna plattformens riktlinjer. Att underhålla dem har dock ett högt Pris: mobilappar får ibland flera uppdateringar varje månad, och att hålla dem uppdaterade kan konsumera utvecklartid som annars skulle kunna spenderas på ny funktionalitet. En inbyggd app publik är också begränsad till användare av ett visst operativsystem, såvida inte dess skapare utövar stora ansträngningar för att utveckla samma app för flera system.
omvänt underlättar plattformsappar koddelning, eftersom utvecklare inte behöver skapa en app för iOS och en separat för Android, men kan ofta dela 80% eller mer av sin kod över plattformar. Mindre kodningsansträngning krävs gör att appen kan underhållas på flera plattformar, även med ett litet team.
det är dock svårt att skräddarsy en enda lösning till olika operativsystem. En plattformslösning betecknas som sådan just för att dess ramverk gör att du kan använda flera plattformsfunktioner. En plattformsoberoende applikations gränssnitt är vanligtvis universell, vilket leder till fördröjningar och komplexitet vid genomförandet av specifika delar av varje OS, som funktioner som är unika för en viss plattform normalt inte kommer att stödjas. Medan ett ramverk kan få en app att se ut som den avsedda plattformen, utan ytterligare arbete från utvecklaren, är designval vanligtvis begränsade.
låt oss nu titta närmare på de verktygskedjor som krävs för båda apptyperna och ytterligare skilja mellan ännu fler variationer av mobilappar inom plattformsekosystemet.
Native Apps
i native app utveckling, förtrogenhet med din valda operativsystemets IDE och projektstruktur är absolut nödvändigt. Lyckligtvis är operativsystemen iOS och Android väldokumenterade och tillhandahåller egna utvecklingsverktyg, gränssnittselement och SDK: er (software development kits), vilka utvecklare kan använda för att bygga inbyggda mobilappar.
Apple-enheter körs på iOS-operativsystemet och är byggda med antingen Objective-C eller Swift tillsammans med Xcode IDE. Trots att de är två separata plattformar delar iOS och macOS likheter, så om du vill köra din mobilapp på ett Apple-skrivbord kan du integrera moderna iOS-funktioner i din app. Detta kommer att förenkla övergången till macOS (eftersom uppdaterade funktioner automatiskt mappas till lämpliga macOS-beteenden).
däremot innebär Android development toolchain vanligtvis Android Studio eller Eclipse IDE, men du kan också använda andra IDE. Android Studio är den officiella IDE för Android – apputveckling och huvudprogrammet för att skriva kod och montera appar från olika paket och bibliotek. Både Android Studio och Android SDK är gratis att ladda ner och kommer med programbibliotek och exempelkod. Medan Android-appar är byggda med Java kan du bygga en Android-app på andra språk som körs på Java Virtual Machine, till exempel Kotlin.
Hybrid Plattformsappar
det finns två olika typer av plattformsappar: hybridappar och inbyggda plattformsappar. Hybridappar använder endast HTML5, CSS och JavaScript för att skapa delar av en apps grafiska användargränssnitt (GUI). Låter som en webbapp? Medan både hybrida mobilappar och webbappar gör HTML, använder hybridappar appinbäddade webbläsare som WebView för att göra det.
vissa hybridappar interagerar till och med med en smartphones hårdvara, även om funktionaliteten kan begränsas. Apache Cordova, Ionic och Flutter är bland de mest lovande hybridapputvecklingsramarna som för närvarande finns på marknaden.
inbyggda Plattformsappar
inbyggda plattformsappar, å andra sidan, är inte byggda med HTML/CSS/JS-ramar — en utvecklare skulle istället skapa ett enhetligt API som körs ovanpå en inbyggd SDK. Genom att använda en inbyggd IDE i kombination med detta API kan en utvecklare bygga iOS-och Android-appar som delar samma kodbas samtidigt som de ger en nästan inbyggd upplevelse. Inbyggda plattformsapplikationer är främst byggda med Xamarin, React Native och Kotlin Multiplatform.
det här kan låta förvirrande, så låt oss titta på hur en sådan mobil UI-ram fungerar. Vi tar fallet med Xamarin.
Xamarin är byggt med C# och. Net och tillåter utvecklare att skapa plattformsapplikationer med delade gränssnitt med Xamarin.Form. Xamarin.iOS och Xamarin.Android är särskilt användbara för att skapa iOS-och Android-gränssnitt. Förutom att tillhandahålla bibliotek som ger inbyggd och tredje parts API-åtkomst, ger Xamarin plattformsappar åtkomst till smarttelefonhårdvara och funktionalitet som tidigare bara hittades i inbyggda appar. Genom att kombinera näraliggande prestanda med kodåteranvändning minskar inbyggda plattformsramar prestandaklyftan mellan inbyggda och hybridappar med potential för mer kostnadseffektiv utveckling.
Var ska du börja?
om du vill dra nytta av allt en viss mobilplattform har att erbjuda, försök att bygga en inbyggd mobilapp. Din app kommer sannolikt att skryta med högre prestanda, mer robust funktionalitet och en bättre användarupplevelse jämfört med en plattformsoberoende motsvarighet. Att utveckla med en viss SDK är en bra startplats eftersom du kommer att möta en mer hanterbar inlärningskurva i förhållande till plattformskod.
att välja ett plattformsoberoende alternativ kan vara det bästa valet för dem som letar efter enkelt underhåll och bredare räckvidd och med kortare tid att utveckla. Så länge du väljer rätt tech stack kan du kanske återanvända majoriteten av den ursprungliga backend-och UI-koden för flera plattformar.
Om du väljer att gå multiplattformsvägen, hur vet du om du ska välja en hybrid (JS/HTML/CSS) eller inbyggd plattformsapplikation? Om du letar efter en enkel start och inte känner till mobil, prova JS/HTML/CSS-metoden. Om du söker en nästan inbyggd upplevelse men vill vara på flera plattformar (och inte kan investera i en app för varje plattform), gå native cross-platform.
Läs mer
i den här artikeln gick vi igenom skillnaderna mellan mobilappar och webbappar innan vi tittade närmare på olika typer av mobilappar. Vi täckte inbyggda appar, hybridplattformsappar och inbyggda plattformsappar.
Om du ser en karriär inom utveckling av mobilappar, kommer vår introduktion till programmering online-kurs att ge en solid grund för att arbeta med både plattformsoberoende och inbyggda appar.
börja lära