Lätta(re) vägen: Använd paket för att bygga appar med webbverktyg

Om du tycker att det verkar väldigt jobbigt att lära dig programmera i Swift finns det enklare medel. Det finns ett antal produkter som kan förvandla webbkod – html, css och javascript – till riktiga appar för både IOS och Android. Det här kan givetvis vara ett enkelt sätt för den som redan kan webbprogrammering att komma igång med appar också.

Apache Cordova

Om du ska utveckla appar med webbverktyg finns det många alternativ, men de flesta har en sak gemensam: De drivs av Apache Cordova, ett ramverk som utvecklades av Phonegap (som köptes av Adobe) och som utför själva konverteringen från javascript för logiken och html/css för layout och design, till kod för Android och IOS.

Ionic Creator
Gränssnittsdesign med Ionic.

Cordova är öppen källkod och kan användas helt gratis, men det är mycket lättare att använda något av de IDE:er (”integrated development environment”) som har byggt in ramverket. Här är några varianter:

  • Phonegap – originalet, utvecklas av Adobe och är gratis för privata projekt. Med tjänsten Phonegap Build slipper du dessutom allt vad kompilering och packetering för appbutikerna heter. Även den funktionen är gratis, men om du vill bygga egna nya funktioner måste du betala (eller prenumerera på Creative Cloud). Du kan läsa mer om Phonegap i vår guide här.
  • Microsoft Visual Studio – kanske lite förvånande, men Microsofts utvecklingsmiljö har också stöd för Cordova och kan användas för att skapa appar för Android, IOS och Windows på samma gång.
  • Intel XDK – ett annat intressant och gratis alternativ med kraftfulla debuggingfunktioner och inbyggt stöd för flera ramverk för spelutveckling (Cocos2d, Phaser, et cetera).
  • Ionic – ett komplett ramverk med tillhörande verktyg och program för att utveckla mobilappar för alla plattformar. Har bland annat funktioner för att ladda om appar med ny kod nästan omedelbart utan att behöva vänta på en kompilering, och med stöd för api-biblioteket Ngcordova kan du utnyttja unika funktioner för de olika plattformarna (till exempel touch id på IOS).
  • Framework 7 – ett öppet källkodsalternativ som utlovar programmering som "inte är svårare än en hemsida". Stödjer många av IOS och Androids specialfunktioner som "svep från vänster för att backa" och "dra ner för att ladda nya grejer". Eftersom det är helt öppet och gratis kan det vara bra för den som vill släppa appar i butikerna men utan att betala för pro-versionen som krävs i till exempel Ionic och Phonegap Build.

Med något av dessa paket kan du ha en fungerande app med bara några hundra rader (enkel) kod. Om du inte kan något alls om javascript eller html är det här fortfarande enklare och tar mindre tid än att lära dig Swift (eller Java för Android), och det finns många bra resurser för att lära dig grundläggande webbtekniker. En sajt vi kan rekommendera är Free Code Camp, men det finns många fler och även videokurser på bland annat Udemy. En annan kurs, för Ionic, som vi inte testat men som ser ut att vara enkel att hänga med i hittar du här.

Ovan nämnda Ionic har även något de kallar Playground, en interaktiv lekstuga för att koda Ionic-appar. Där kan du testa dig fram och se resultaten av allt du gör omedelbart. Det fungerar väldigt bra tillsammans med guider då du kan testa dig fram på egen hand utifrån exemplen.

Har en inlärningskurva
Även med den enklaste av ovanstående plattformar, med html-kod och css för layouten och javascript för funktioner som att växla vyer, utföra olika beräkningar, hämta data från nätet och så vidare, kommer du inte komma ifrån det faktum att apputveckling handlar om att tänka på ett speciellt sätt.

Då menar vi inte att det finns ett enda ”rätt” sätt att tänka, utan att den metodiska indelningen av problem i mindre och mindre delproblem som du löser ett efter ett inte är det sätt de flesta av oss tänker på vardagssituationer. Ingen tänker på att gå och handla mat som en process med tiotals steg (”skriv inköpslista, ta plånboken och mobilen, ta på skorna, öppna dörren, gå ner för trappen...”). Men det är just så du måste tänka på hur din app fungerar för att kunna förvandla din idé till verklighet.

Att komma in i det tänket är inget som kommer automatiskt, utan något du kommer lära dig undan för undan. Det är inte svårt egentligen –programmerare är inte några supermänniskor med hjärnor som fungerar annorlunda – men det tar tid och du måste anstränga dig.

Ett av de bästa sätten att snabba upp det här är att följa en ingående guide eller bok som börjar från grunden och går hela vägen till en enkel men fullt fungerande app. Men istället för att bara följa guiden rakt av och göra övningarna exakt tar du dig tid att testa varje steg på egen hand med egna idéer.

Om ett avsnitt handlar om hur du bygger ett gränssnitt med flikar, som är vanligt bland verktygsappar för IOS, kan du till exempel passa på att ändra hur många flikar du använder och framför allt vad de innehåller. Guiden kanske visar en flik med en listvy och en flik med "om appen", men du testar med en flik med rutnät av bilder, en med datainmatning och en tredje med något annat.

Genom att leka och experimentera på det här sättet får du både en djupare förståelse för det du håller på att lära dig, och bygger upp känslan för hur små byggstenar bygger upp helheten. Dessutom riskerar du inte att ”fuska” – det vill säga att bara följa vad instruktionerna säger till punkt och pricka utan att förstå varför du gör olika saker.

Stack Overflow

Varför uppfinna hjulet igen? Många problem du stöter på under utvecklandet är sånt som andra redan har stött på och löst. En googling på ett visst problem ger ofta resultat från Stack Overflow (och andra liknande sidor, och ibland även utvecklarforum hos till exempel Apple).

Ett bra tips medan du lär dig är att inte kopiera andras lösningar utan läsa de accepterade svaren och försöka fixa din kod på egen hand utifrån dem.