Sådan porterede danske Syntonetic succes-app'en Moodagent til Android
Det danske udviklingshus Syntonetic står bag musik-applikationen Moodagent, som med sine 2,5 millioner brugere må siges at være blevet en succes til iPhone og på Symbian-platformen, hvor den går under navnet Playlist DJ.
Og for ganske nylig kunne Syntonetic så præsentere Moodagent til Googles mobilplatform, Android.
»Android ser ud til at blive det foretrukne valg af styresystem for den nye generation af software-udviklere og mobilejere, så det giver rigtig god mening for Syntonetic at lancere Moodagent på denne platform,« siger administrerende direktør Peter Berg Steffensen fra Syntonetic.
Moodagent-applikationen sammensætter unikke playlister ud fra brugerens egen musiksamling og humør.
På telefonens touch-skærm kan brugeren skrue op og ned på fem forskellige søjler, der indikerer sensualitet, ømhed, glæde, aggressivitet og tempo, som sammen med musikkens stilarter, stemmer og instrumenter med i betragtning, når playlisten genereres.
Moodagent til Android findes i en gratis udgave med reklamer og en betalingsversion uden reklamer er på vej i udvalgte lande.
Softwareudvikler i Syntonetic, Klaus Kartou, fortæller her om opgaven med at portere Moodagent fra iPhone til Android.
Hvad går projektet ud på?
»Vi havde i forvejen en iPhone-version af Moodagent, og opgaven var at fremstille en version til Android-platformen, som tog udgangspunkt i de features, applikationen tilbyder på denne platform.«
Hvilken rolle har du haft projektet?
»Jeg har deltaget i implementeringen af Android Moodagent-applikationen som en del af et større udviklingsteam, og har stået for den primære programmering på klienten.«
Hvilke teknologier har været brugt undervejs i projektet?
»Hvis vi ser det helt fra toppen af, har vi en profileringsservice, som ligger placeret i skyen. Den bruger vi til at profilere brugerens musikfiler. Der foregår noget digital signalbehandling i skyen, hvor vi ved hjælp af kunstig intelligens bestemmer humørprofilerne ud fra brugerens data.«
»Til udviklingen af applikationen har vi brugt udviklingsmiljøet Eclipse med standard Android-plugin'et. Eclipse har også været brugt til debugging af kildekoden (Java, red.).«
»Derudover har vi brugt den indbyggede applikationstester Monkey, som afprøver en delmængde af de events, den gennemsnitlige bruger kunne tænkes at udsætte applikationen for. Det er bestemt ikke en udtømmende test, men Monkey kan køre direkte på telefonen eller i emulatoren og udsætte applikationen for eksempelvis 30.000 events i løbet af nogle minutter.«
»En af udfordringerne for os har været at applikationen skal fungere ens på tværs af de forskellige platforme iPhone, Symbian og Android. Derfor har vi forsøgt at lave ens kode på tværs platformene.«
»Til det har vi anvendt en række design patterns til at opnå en fælles kodebase. Det gælder blandt andet model-view-controller pattern, som er specielt god, når der kodes op mod en brugergrænseflade.«
Hvilke udfordringer er I stødt på undervejs i projektet?
»Vi har kunnet tænke mere frit i forhold til arkitekturen, fordi vi er gået over på Android-platformen, som er mere åben end for eksempel iPhone.«
»Derfor har det også været en udfordring at tilpasse arkitekturen til Android, fordi platformen byder på en mangfoldighed af producenter med forskellige styresystem-versioner, skærmstørrelser og -opløsninger og processorhastigheder sammenlignet med iPhone-platformen, som kun har én hardwareleverandør (Apple, red.).«
»Det er vigtigt at sikre, at applikationen performer godt på tværs af de forskellige enheder. Applikationen skal tilbyde en lækker oplevelse på de nyere og hurtigere devices som Google Nexus One og Motorola Droid, men også kunne køre hurtigt og responsvilligt på billigere og ældre modeller som HTC Tattoo.«
»Derfor har vi foretaget et grundlæggende design efter performance, og så har vi løbende testet applikationen på flere forskellige devices. Når applikationen for eksempel skal behandle en tung opgave, handler det om at udføre opgaven asynkront, så brugergrænsefladen ikke fryser, og samtidig indikere for brugeren, at applikationen arbejder i baggrunden.«
»Vi har konkret testet Moodagent til Android på HTC Tattoo, HTC Hero, Sony Ericsson X10, Motorola Droid, Google Nexus One og Googles testtelefon, G1.«
»Derudover har det været en udfordring at sikre, at applikationen opfører sig ens på tværs af de forskellige versioner af Android (i skrivende stund 1.5 til 2.2, red.).«
»Forskellige dele af applikationen skal håndteres forskelligt på tværs af Android-versionerne. Specielt brugergrænsefladen har ændret sig meget.. Det gælder specielt de indbyggede viewgroups (layoutcontainere, red.) som har haft nogle bugs i tidligere Android-versioner. Det har medført, at viewgroups har opført sig forskelligt på tværs af enheder alt efter hvilken Android-version, der kører på enheden.«
Hvilke gode råd kan du give videre?
»Sørg for at have forståelsen for Android på plads, inden du kaster dig ud i kaster sig ud i at portere eksempelvis en iPhone-applikation til platformen. På den måde kan man bedre opbygge en ny arkitektur omkring de muligheder, Android tilbyder.«
»Android er for eksempel unikt på den måde, OS'et håndterer en applikations livscyklus på. I teorien kan en applikation leve i baggrunden i flere dage, indtil det OS'et beslutter at dræbe den. Dermed har man mulighed for at have services kørende i baggrunden, som udfører nogle baggrundsopgaver over lang tid.«
»Som udgangspunkt afvikles de forskellige applikationer i deres eget sandbox-miljø, men Android tilbyder også et smart broadcastsystem, som muliggør at applikationer kan kommunikere sammen på tværs.«
»Det er den slags muligheder, man løbende bør have in mente for at udnytte de specifikke muligheder, Android tilbyder.«

Tilføj kommentar