Som Computer Sweden har beskrivit finns det starka känslor i omlopp kring mobilutveckling. Vissa ser webbteknik somJavascript och html5 som den rätta lösningen. Andra hävdar att det krävs appar som är specialskrivna för varje mobiloperativ, så kallade nativeappar.

Men sanningen kan, naturligtvis, ligga någonstans mittemellan. Det finns ett otal varianter i vilka webbteknik, nativelösningar och även andra lösningar blandas. Här är några exempel.

Den traditionella hybriden

När uttrycket hybridapp används syftar det vanligtvis på en webbapp som stoppas in i ett ”nativeskal”. Det gör att den kan distribueras på olika handelsplatser som App Store. Den körs som en nativeapp, men i själva verket är det en webbapp som körs. Anhängarna tycker att hybridappen förenar det bästa av två världar, kritikerna att det handlar om det värsta av två världar.

Javascript (nästan) direkt på järnet

Om nu Javascript är ett så bra språk som så många kan, varför inte utöka det så att man kan göra anrop av nativefunktioner, typiskt för att hantera användargränssnitt i appar, när det behövs? Ja, varför inte, verkar man ha tänkt på Facebook. Webbjätten har presenterat React Native som kan beskrivas som ett Javascriptbibliotek för att bygga nativeappar.

Läs mer: Mobilappar som ska övervaka barn övervakar i själva verket dig

– Det mesta av koden som skrivs med React Native är flyttbar mellan mobiloperativ, sedan kan man skriva sådant som är specifikt för operativsystemen, till exempel användargränssnitt, förklarar Christian Landgren, vd på Iteam.

Christian Landgren
Christian Landgren. Foto: Lars Danielsson.
Han väntar med spänning på att React Native ska bli tillgängligt.

En poäng med Facebooks lösning är att den minskar behovet av specialkunskaper för varje plattform, trots att den gör att det går snabbt att skapa användargränssnitt som ser rätt ut på varje mobiloperativ.

Skriv en gång – kompilera överallt

Det finns flera lösningar för att ha samma kodbas, eller i alla fall nästan samma kodbas, för olika mobiloperativ. Xamarins plattform är ett exempel. Med den skriver man kod i C# och kompilerar den sedan för olika operativsystem. På det sättet ska man komma åt funktionalitet som är specifik för de olika operativsystemen på ett smart sätt.

– Lösningar som Xamarin kan vara klockrena i vissa fall, men man blir beroende av leverantörerna som tillhandahåller dem, säger Johan Lindfors som driver konsultföretaget Coderox.

Johan Lindfors
Johan Lindfors.

Fokusera på grafiken

Ett exempel på användning av React Native är att hantera grafik av typen Webgl. Det innebär att det går att ordna grafik som är lika snabb som i nativeappar, med Javascript. Men att använda React Native är inget krav för att dra nytta av Webgl. På senare tid har till exempel Apple gjort Webgl-lösningar tillgängliga med Javascript i IOS.

Läs mer: Bokföring i mobilen – med Javascript

– Webgl är populärt bland spelutvecklare, men det går även att skapa vanliga appar med tekniken. Med Javascript och Webgl slipper man den långsamma hanteringen av objektmodellen för dokument i webbappar, säger Mikael Tellhed, utvecklare på Noodl.

Mikael Tellhed
Mikael Tellhed.


Gamla hederliga C och C++

En lösning som är populär bland inte minst spelutvecklare är att använda språken C och C++, i kombination med små ”startprogram” som är specifika för olika operativsystem. Fördelen är bra prestanda och möjlighet att utnyttja funktioner som är specifika för olika operativsystem, nackdelen att många upplever C och C++ som krångliga språk att jobba med.

– Det görs en massa försök att hitta rätt abstraktionsnivå för mobilutveckling. Jag tycker att det har visat sig att C och C++ står sig bra, säger Johan Lindfors.

Fakta

Erik Hellman som är teknikevangelist och utvecklare på Bontouch förespråkar nativeappar för att de ger bäst användarupplevelse:

– Med hybridlösningar kompromissar man ofta med användarupplevelsen, kanske inte lika mycket som med en renodlad webbapp men ändå tillräckligt för att drabba användaren negativt, säger han.

Erik
Erik Hellman. Foto: Lars Danielsson