Roundup från Android Only – första dagen

Postat:
17:28 - 2010-10-04
Skribent:
| Eric N
Kommentarer:
30

I förra veckan ägde Sveriges första Android-konferens rum och på gästlistan stod talare från företag så som Spotify, TAT, Jayway, MoSync, CouchDB, Ocean Observations, Sony Ericsson m.fl. Vi fanns naturligtvis också på plats och för er som inte hade möjlighet att att närvara eller som bara är nyfikna på vad som hände och vad som sades, så följer här en sammanfattning av den första av de två dagar som konferensen varade.

Först ut var Anders Bond från Spotify med ett spännande tal om utvecklingsarbetat kring företagets Android-klient. Han berättade bland annat om de fallgropar man stött på i arbetet med Android, men även om positiva erfarenheter från plattformen som helhet.

Redan från första början stod Spotify-gänget inför ett stort problem, det fanns nämligen ingen möjlighet att använda maskinnära kod med de tidiga utvecklingsverktygen för Android. Kärnan  i Spotify är gemensam för samtliga plattformar och innehåller komponenter som bland annat sköter avkodningen av de krypterade musikfilerna. Utan denna möjlighet riskerade hela projektet att stranda eftersom det fanns en osäkerhet om prestandan skulle vara tillräcklig, det vill säga utöver den utökade arbetsbörda som det skulle innebära med att portera allting till Java-kod och dessutom underhålla det. Vidare hade man satt upp ett mål om att ha en fullt fungerande Spotify-klient redo för demonstration under maj månad 2009 vid den årliga utvecklarkonferensen Google I/O.

Google släppte efter lanseringen av Android 1.5 / Cupcake lyckosamt nog en NDK (Native Development Kit) för Android och öppnade sålunda upp för möjligheten att brygga Java-kod med maskinära sådan medelst JNI (Java Native Interface). Spotify var bland de första utanför Mountain View som fick lägga vantarna på NDK:n och trots en del problem, som bland annat involverade avsaknaden av några bra debugverktyg, så lyckades man producera en fungerande klient redo för demonstration under I/O 2009 – video här.

Vad berör gränssnittet så är det ingen hemlighet att man sneglat på iPhone-applikationer, speciellt som det vid tillfället inte fanns särskilt många Android-applikationer att bli inspirerade utav. I själva utvecklingsarbetet stötte man också på en del problem, exempelvis hackade animationen för den uppfällbara musikspelarvyn, vilket var speciellt märkbart på lågupplösta telefoner med i regel svagare prestanda. Detta problem lyckades man dock råda bot på genom att tillfälligt göra om bakgrundsvyn till en stillbild under själva animationen.

Bland några nackdelar med Android så nämner Bond fragmenteringen vad berör olika Android-versioner enheter emellan och det faktum att de också har olika upplösning samt bildförhållanden. Han tog också upp ett egendomligt problem med Android Market som tyvärr drabbat många utvecklare; flaggan för ”Copy Protection”. Bockade man i denna upptäckte man två problem, dels kunde användare med rootade telefoner eller telefoner vars mjukvara inte blivit godkänd av Google inte hitta applikationen, dels sparades ingen information från föregående sessioner så som användardata; användare fick alltså logga in ånyo varje gång programmet startades om.

Till ljuspunkterna med att utveckla för Android så erfar man att det är enkelt att komma igång med SDK:n och Eclipse samt att vad som fungerar i emulatorn i de flesta fall också fungerar på enheterna. Vidare innebär det det intuitiva XML-baserade layoutsystemet att man enkelt kan ge applikationer ett unikt utseende. Detta förenklas ytterliggare av det faktum att man på ett smidigt vis kan skapa skalbar grafik i och med 9-patch-formatet.

[Spotify]

Näst ut var Hugo Josefson från företaget Jayway, en av konferenens huvudsponsorer, som berättade om så kallade Black-box Testing för Android. Kortfattat innebär Black Box Testing att man genom att programmera olika rutiner testar funktionaliteten i en applikation, detta utan att vara bekant med källkoden eller ens ha den tillhanda.

Det finns olika tillvägagångssätt för att utföra Black-box testing och i en enkel applikation vars enda funktion var att räkna ut produkten av två tal, så visade Josefson hur man medelst verktyget Robotium kunde ange två tal och sedan kontrollera resultatet med enastående fem rader kod (se tumnageln i mitten ovan). Robotium har stöd för en rad kommandon som kraftigt förenklar testprocessen, exempelvis går det att söka efter valfri textsträng varstans i en applikation med kommandot ”searchText(String regex)” – detta innefattar även toasts och popup-rutor.

[Robotium på Google Code]

[Getting started with Robotium]

[Robotium wiki]

[Jayway]

Brian Leroux från Nitobi Software pratade om PhoneGap som är ett ramverk för mobilutveckling och som bygger på öppen källkod. Ramverket ger utvecklare möjligheten att skapa applikationer som fungerar för iPhone, Android, BlackBerry, Palm och Symbian med hjälp HTML, CSS och JavaScript. Trots vissa begränsningar, så kan utvecklare dra nytta av GPS-enheten, vibratorn, accelerometern och ljudenheter över praktiskt taget samtliga plattformar med hjälp av ramverket. Leroux rekommenderade dock inte att använda PhoneGap vid utveckling av superavancerade 3D-spel, detta då WebGL fortfarande har en bit på vägen, eller då man behöver använda funktioner så som notification bar i Android etc.

[PhoneGap]

[Nitobi Software]

Peter Kirn från Create Digital Music visade upp vad man kan göra med programmeringsspråket Processing och Android. Språket bygger på Design By Numbers-projektet som togs fram vid MIT under 1990-talet med syftet att hjälpa designers, artister och personer utan programmeringskunskaper att snabbt och enkelt komma igång med programmering. Fokus för processing ligger på samma målgrupp, men det utesluter inte att man medelst programmeringsspråket kan skapa fullvärdiga och avancerade applikationer.

Under presentationens gång demonstrerade Kirn utvecklingsmiljön och visade hur det gick att rita upp allt från en tvådeminsionell rektangel till en roterande tredimensionell kub med imponerande få kodrader.

Utvecklingsmiljön har vissa begränsningar i dagsläget och även en del påtagliga buggar, exempelvis spottar kompilatorn ut en mängd fel om man inte lämnar ett mellanrum efter kommatecken. Vidare fungerar det än så länge bäst under Linux och OSX, Windows-användare kan stöta på en del egendomligheter. Kirn var dock noga med att understryka att Processing för Android befinner sig i ett betastadie och att man ständigt arbetar på förbättringar.

Under Q&A-sessionen nämnde en person Google App Inventor och undrade hur Kirn såg på detta, det vill säga Googles initativ för att sprida utveckling till den breda massan. Kirn svarade att App Inventor förvisso är intressant, men att Processing har större flexibilitet och är mer kapabelt.

[Processing.org]

[Create Digital Music]

[Getting started with processing for Android]

[Processing for Android Wiki]

Gänget från Sony Ericsson, en annan av sponsonerna till Android Only, passade på att presentera sig innan Ludving Linge från TAT påbörjade sin presentation. Utöver att prata med utvecklare och demonstrera LiveView samt företagets telefoner, så höll man under den andra dagen också en presentation kring Android ur en telefontillverkares perspektiv.

[Sony Ericsson]

Ludvig Linge från det Malmö-baserade företaget TAT berättade dels om företagets verksamhet, men också om utvecklingen på smartphone-marknaden och förklarade varför det blivit så viktigt för mobiltelefontillverkare att differentiera sig vad berör gränssnitt och användarupplevelse.

TAT eller The Astonishing Tribe arbetar bland annat med att plocka fram koncept i form av mjukvara och gränssnitt för exempelvis hårdvarutillverkare, vilka i sin tur använder resultatet för att exempelvis demonstrera vad som är möjligt med sina produkter. De har också gjort sig ett namn för sitt arbete med Android, där de på uppdrag av Google designade grafiken för operativsystemet.

Vidare berättar Linge att det aldrig varit lättare att bygga en Smartphone. Det finns OEM-tillverkare som gärna står till tjänst vad berör hårdvaran och varför lägga tid och resurser på att utveckla ett OS när det finns färdiga produkter som exempelvis Android att använda sig utav? Processen med att bygga en telefon sammanfattade Linge i följande tre steg:

1. Bestäm hur du vill differentiera produkten.

2. Välj hårdvara och utför acceptanstester – fungerar applikationer som sig bör?

3. Designa förpackningen och lägg en order på minst 20 000 – 30 000 telefoner (i annat fall blir det svårt att hitta en fabrik).

Linge redogjorde också för hur tillverkare kan differentiera sig i mjukvaruväg och berörde något så enkelt som att skicka med en unik ”Live Wallpaper” – till mer avancerade förändringar som egenutvecklade widgets och/eller gränssnitt samt applikationer. Nedan syns ett par videofilmer som visar koncept som TAT utvecklat och som tillverkare kan använda sig utav för att stå ut i djungeln av Android-telefoner.

httpvh://www.youtube.com/watch?v=bOGmnnGpoqg

httpvh://www.youtube.com/watch?v=InBOO8jrnM0

[TAT – The Astonishing Tribe]

Ólafur Helgason som är stationerad vid KTH berättade om sitt arbete med Android Opportunistic Networking. Syftet är att medelst P2P-teknik och genom 802.11 ad-hoc-nätverk eller Bluetooth avlasta mobilnäten och i viss mån göra sig oberoende av infrastruktur för mobil datatrafik, som bilden här illustrerar.

Varför Helgason arbetar med alternativ till de traditionella mobilnäten beror på att det råder en osäkerhet kring huruvida operatörer klarar av att hantera den trafikexplosion som väntas de närmaste åren. Tekniken har dock sina baksidor och en av dessa är batterikonsumtionen, med WiFi aktiverat sjunker batteritiden drastiskt vilket Helgason illustrerar med hjälp av grafen ovan. Alternativet att använda Bluetooth finns, men det är inte optimalt i och med den begränsade räckvidden. Opportunistic Networking lämpar sig inte heller särskilt väl för tjänster där realtidskommunikation är ett måste, utan passar bäst för tjänster som e-post, podcast- och rss-prenumerationer samt www etc.

[KTH]

Martin Roth höll en presentation under rubriken ”Programming Audio for Android – An Introduction to Music Programming Languages for Android via RjDj”.

RjDj utvecklar verktyg för att skapa ljud och musik i realtid med hjälp av exempelvis telefonens accelerometer och mikrofon, men även med hjälp av grafik och andra medel. Ljud- och musikprogrammering är ett spännande ämne och Roth menar att vi inom en snar framtid kommer se spel där ljudeffekter inte är förinspelade i någon studio, utan skapas i realtid utifrån de förutsättningar som råder i spelvärlden och därmed gör upplevelsen mer autentisk.

RjDj Android Scene Player

[RjDj]

[RjDj Scenes]

[Audiotsynth.com – SuperCollider]

[SuperCollider Github]

Mikael Kindborg från MoSync AB berättade att Java-kod inte är ett måste när man programmerar för Android, det går utmärkt att använda scriptspråk också.

Bland annat visade han upp verktyget DroidScript vilket låter utvecklare exekvera enskilda bitar av JavaScript-kod på ett smidigt vis direkt i telefonen via en webbläsare på datorn, något som under demonstrationen gav upphov till en susning genom publiken. Förutsättningen för att DroidScript skall fungera är att man har en telefon där DroidScript.apk är installerat – se QR-kod med tillhörande länk nedan.

DroidScript.apk

[MoSync]

[DroidScript]

[Divine Programmer]

[Dynamic Languages on Android]