Web eller native app? (del 1)

by Johnny on 15 August 2010 · 14 comments

in Internet,Mac,Utveckling

Jag var ju på SSWC i helgen, precis som förra året, och socialiserade bland 409 Internet-profiler.

En session jag var med på var PM Nordkvists, iPhone-apps vs. Android-apps vs. webapps, och jag tänkte dela med mig av mina tankar här.

Jag håller på att utveckla en mobilapp för Jaiku (jo, vi är några som hänger där än), och jag har försökt att komma igång med en iPhone-app, men det går bara inte. För det första är Objective-C, som iPhone-apps skrivs i, skitsvårt, och sen är jag väldigt osäker på om det behövs rent tekniskt.

För, tekniskt är valet enkelt, för mig som webbutvecklare och för företag, beroende på vilket typ av app det är. Eftersom webappar skrivs i HTML, JavaScript och kanske en del kod server-side, behöver inte företag anlita iPhone- eller Android-utvecklare, och jag som webbutvecklare behöver inte lära mig något nytt språk.
För en applikation som inte kräver kamera eller filuppladdningar, bygg en webapp.

Annons:
Pröva casino på nätet hos casinocus.com

En tidnings eller ett företags app brukar inte använda någon av de ovanstående funktionerna, och därmed funkar en webapp lika bra som en vanlig app.

Problemet brukar vara att webappar inte känns native. De känns inte iPhone. Vilket helt är utvecklarens fel.

Det går att bygga en webapp som uppför sig nästan exakt som en vanlig iPhone-app, och för att demonstrera det har jag byggt en på http://dev.jocap.se/webapp/app.html (preview på Jaiku-appen!).
Nu har jag inte härmat iPhone-utseendet fullt ut, men det går att göra helt perfekt också, som Niels Leenheer visat, främst här. Läs hela hans andra inlägg om det.

Det enda problemet med webappar, förutom multitasking, filuppladdningar o.s.v, är bristen på betallösningar. Det finns inget universellt system för betalningar av webappar (vilket förresten vore en bra idé att genomföra). Och sen att man inte kan scrolla till toppen genom att klicka längst upp.

Det var tekniskt.

Den egentliga fördelen med att bygga en iPhone-app är App Store, och att det just är en native iPhone-app.

Tänk såhär; alla tidningar skriver en artikel så fort ett större företag släpper en iPhone-app. Knappast om en webapp. Det är publicitet som gäller.

Se bara på bankerna. Den bank som var först med en iPhone-app blev jätteomtalad, trots att appen egentligen var en webapp, inuti en iPhone-app, och det är så de flesta andra banker också löst det. (Därmed kan det vara en bra idé att bygga en webapp inuti en iPhone-app.)

App Store är också en bra samlingsplats för apps, vilket saknas för webappar.

Jag kommer förmodligen skriva en del 2 när jag släppt min Jaiku-app, men until then: jag är jätteintresserad av att höra era synpunkter.

Kommentera här, twittra till @jocap, eller maila mig på jocapriconne@gmail.com.

Related Posts with Thumbnails

{ 12 comments… read them below or add one }

Anton August 16, 2010 at 00:29

Intressant! Ser fram emot att läsa fortsättningen. Och testa appa(rna) förstås ;)

Jag bloggade lite om det i förra veckan också, lite mer analytiskt ur ett större framtidsperspektiv kanske men ändå. Har jag rätt i min framtidsspaning? http://fyranyanser.se/2010/08/10/en-liten-analys-om-framtiden-for-mobila-webben/

I det stora hela håller jag med dig om att webapps är enklare, förstås, men eftersom det är svårt med distribution kommer man antagligen få mycket färre användare. Jag tror helt klart att webapp funkar i såna här väldigt nischade projekt, där användarna är tekniska eller där det är enkelt att kommunicera med den lilla grupp användare man har tänkt sig. Om man skapar en app för ett etablerat diskussionsforum t.ex. (wn.se, seo-forum.se eller vadsom) så är det lätt att övertala användarna där medan det inte är lätt att få målgruppen “mammor” att ladda ned en app utan att man har fet budget för marknadsföring. Då är app store nästan ett måste för att nån ska ladda ned den.

Reply

Johnny August 16, 2010 at 00:43

Jag har ungefär samma tankar som du har i din bloggpost.
Jag vill gärna förespråka webapps istället för native apps, och nu när man kan lagra data lokalt med HTML5 är det ännu bättre.

Sen kan man ju göra som bankerna, att ha en webapp i en iPhone-app — visst kan det kännas meningslöst, men det brukar bli bättre.

Reply

Petter August 16, 2010 at 01:41

Bra text John,

i grunden tror jag man ska använda de olika plattformarna för deras potential, och som både du och Anton nämner finns där för och nackdelar i de båda.

Vad gäller UI tror jag faktiskt inte man ska försöka få web-appar att se ut som natives, eftersom de inte är det. Problemet uppstår när man försöker likna en iPhone app t.ex. och Android-användare (eller andra) kommer och använder sig av tjänsten. På något plan tänker jag att man ska respektera att det är en web-app och utgå ifrån det – det universella, men samtidigt vill man ju ha en app-känsla.

En annan sak är att man kanske inte ska låsa sig till varken det ena eller det andra, däremot borde man fundera på vad fokus är och börja där. Om man tar twitter som exempel så har det ju spritts enormt, både på webben och genom appar – men innan det blev appar av det så var det ganska fattigt och få kunde ta det till sig, men å andra sidan så tog det dem nolltid att bygga web-delen och därefter bygga API:et för att sedan kunna bjuda in utvecklare att göra appar (för att sedan köpa upp den bästa).

I vårt (ambadoos) fall så finns där ju uppenbara fördelar med att bygga både iPhone och webapp. iPhone appen för att den integrerar med addressboken som är omöjlig att komma åt genom webben (om du inte bygger en exchange server) och dels för att snabbt kunna sprida den. Å andra sidan vill vi att användarna ska kunna komma åt sina kontakter även om batteriet dör. Då kan ju användarna bara logga på webben och accessa alla sina kontakter från en väns telefon. Inte så dumt när man är i nöd.

Nu i efterhand så skulle jag med ganska stor övertygelse säga att kör web-app först.. testa konceptet, få feedback av användare, bygg vidare och senare överväg native app. Det har tagit oss otroligt mycket längre tid för att vi envisats med att köra native och integrera ambadoo med den interna adressboken. Sync gör en galen :)

Man kan åstadkomma så otroligt mycket med webappar och det kommer gå supersnabbt framåt. Både Google & Apple pushar för html5 och det lilla jag har sett är redan mind-blowing. När till och med en designer som jag utan någon (större) programmeringskunskap kan bygga web-appar bara genom att sätta klasser och genom .css så är det ett bra tecken nog att det är vägen.

Ser fram emot fortsättningen och del 2! Keep it up.

Reply

Johnny August 16, 2010 at 09:31

Vad gäller utseende tycker jag inte är så viktigt, egentligen. Jag gillar webapps som inspirerats av iPhone-UI:et, men som ser annorlunda ut.

Däremot vill jag att den ska fungera lika bra som en native app, och med det menar jag inte att fancy animationer behövs, utan mest att det går hyfsat fort. Att använts ontouchstart eller -end är mycket bättre än onclick, och det är något nästan alla glömmer med sina webappar :-)

I ambadoos fall tänkte jag bl.a. föreslå en exchange-server i eftermiddag :D

En del 2 kommer, och förmodligen nu del 3 också :-)

Reply

frebro August 16, 2010 at 14:10

Håller med om att en webbapp absolut inte behöver se native ut – snarare tvärtom. Om man använder native-utseende så skapas en förväntan att webbappen ska bete sig som en native app. Jag tycker att Google har löst det rätt fint med Gmail, både på desktop och i mobil, genom att hela tiden indikera med statusmeddelanden när det händer grejer serverside. Användaren blir då mer inställd på att vissa saker kan ta lite längre tid, eftersom man redan vet hur resten av internet funkar.

Sen så är det såklart viktigt att webbappen är snabb ändå! Smart cache, local storage och komprimering kommer man ju långt på. Bra tips med ontouchstart!

Reply

Johnny August 17, 2010 at 00:06

Nej, jag håller med alla om att webappar inte ska se ut precis som native-appar, jag tipsade bara om att man kunde.

Det jag vill är att de ska fungera lika bra som native-appar. Vilket de flesta, tyvärr, inte gör.

Reply

Erik August 16, 2010 at 06:59

Jag håller i princip med om att webapps är vägen att gå för framtiden, men jag kan också tycka att det är många år kvar innan vi är i en värld där webbapplikationer är standard.
De fördelar jag direkt kommer på idag när det gäller native apps före webbapplikationer är bl.a. ladda upp kort (som du nämner), notifiera på ett helt annat sätt, all grafik finns på telefonen och behöver inte dras hem. Det enda som behövs dras ner i en native app är ju text vilket gör applikationen otroligt mycket snabbare.

Sen håller jag med angående att ha en central nerladdningsplats och att detta inte riktigt finns för webbapplikationer, men det har ju kommit fram endel under senare tid.

Reply

Fredrik Olsson August 16, 2010 at 11:03

Har ni tänkt på varför människorna i exempelvis FinaöFantasyfilmen för många år sedanmär lite kusliga att se på, medan figurerna i Pixars filmer ärtrevliga? Facit är att gör man människör för verkliga men inte når hela vägen fram så vet vårt undermedvetna att något är fel.

Av samma anledning håller jag med Petter i att man inte ska försöka få webbappar att likna native appar. Det ser ok ut, men känns alltid på något vis fel. Något som Googles webbappar aldrig gör, och de hymlar aldrig med att de är justwebbappar.

Objective-C är inget svårt alls. Om du redan kan C och objektorienyering då har du lärt dig Objective-C på en eftermiddag. Om allt du kan är JavaScript då kan jag se att det är en tröskel, men den tröskeln heter C.

Om man vill nå ut med sina webbapps så finns den en begynnande marknad som döpts till “Open App Market”, just för att det är vad Steve Jobs kallat webben, men det är inte Apple som står bakom. De har betalappar på gång (bara hoppas att det inte dröjer lika länge som Android Market):
http://www.openappmkt.com

Reply

Johnny August 16, 2010 at 14:16

Jo, jag håller med om att webapps inte borde se exakt ut som native apps, men gärna något liknande.

Jag tänkte blogga om Open App Market i eftermiddag, men du hann före :-)

Reply

Johnny August 17, 2010 at 00:10

Men grejen är att Obj-C inte alls liknar Python, Java, PHP eller JavaScript, och om man “bara” kan JS är C och Obj-C en hög tröskel. Och en svår.

Reply

Fredrik Olsson August 17, 2010 at 02:08

Liknar och liknar. Om man inte kan se att följande två rader är konceptuellt samma sak, och applicera mönstret på ett nytt problem, då är det kanske inte utvecklare du ska kalla dig?:
anObject.setResult(42);
[anObject setResult:42];

De som inte ser likheten är de som hoppat över att lära sig “programmera”, och i stället lärt sig att rabbla Java-/Python-/ValfrittSpråk-glosor utantill.

Jag kan vara lite radikal i min åsikt här. Men om du inte är markant annorlunda, så kan du inte heller vara markant bättre :).

Reply

Johnny August 17, 2010 at 11:57

Visst ser jag likheten där, men det där är ju inte hela Obj-C. ;)

Reply

Leave a Comment

{ 2 trackbacks }

Previous post:

Next post: