API – Mashup.se
  • Kontakt
  • Twitter
  • Feed
  • Hem
  • Om
  • Kontakta

HemSvenska mashupsTågtavlan – hur och varför (gästinlägg)

  • Tågtavlan – hur och varför (gästinlägg)

    21 Dec
    2011
    av Theodor Storm
    Tweet
    tagtavlan_jumbo

    Tågtavlan är en app till iPhone, iPad och Android som visar aktuellt tågtrafikläge vid svenska tågstationer. Jag släppte den första versionen våren 2010, dels för att jag var nyfiken på apputveckling och dels för att jag som tågpendlare sedan många år tillbaks hade ett behov av en bra tågapp. Jag hade några månader tidigare byggt sajten Tåg.info som är en databas över aktuellt och historiskt tågläge, eftersom jag under vintern 2010 hade sällsynt mycket obeställd fritid på tåg.

    Andreas Krohn har gett mig möjlighet att med detta gästinlägg berätta lite om hur Tågtavlan är konstruerad och dela med mig av några erfarenheter från projektet för den som är nyfiken.

    Teknik

    Tågtavlan är skriven i HTML5 ovanpå ramverket Phonegap, och körs alltså i mobilens webbläsare men har samtidigt tillgång till mobilens nativefunktionalitet via Phonegaps abstraktionslager. Det innebär dels att appen funkar på ett flertal olika smartphonefabrikat (iPhone/iPad och Android finns publikt tillgängligt idag, versioner för Blackberry, Symbian och WebOS finns byggda men ej testade) och dels att den – åtminstone i begränsad omfattning – även kan köras i en webbläsare.

    För ungefär ett år sedan kontaktades jag av cafékedjan Espresso House, som hade sett appen och undrade om det gick att fixa en tågtavla på en stor skärm. Resultatet blev [Tågtavlan Jumbo (http://www.tagtavlan.se/2011/08/tagtavlan-jumbo-pa-espresso-house/), som består av en minidator som kör Linux och webbläsaren Google Chrome.

    Givetvis finns det nackdelar med att inte utveckla appen native. Framförallt är det som vanligt med browsers: de uppför sig lite olika på olika plattformar vilket innebär att speciallösningar ibland behövs för vissa mobilmodeller eller operativsystemversioner. Man får dessutom se till att hålla sig till någon form av minsta gemensam nämnare för alla plattformar vad gäller gränssnittets utformning, men detta är något som främst andra utvecklare brukar kommentera. Den övervägande majoriteten av användarna verkar inte bry sig nämnvärt om det är Javascript eller Objective C som driver programlogiken, eller om en GUI-element är native eller “ser webbigt ut”.

    I och med releasen av Phonegap 1.3 kan man som ensam utvecklare skapa en app som funkar på iOS, Android, Blackberry, WebOS, Windows Phone 7, Symbian och Bada(?) utan att behöva bolla med sju parallella kodbaser. Även om man får göra visst avkall på “look & feel” och HTML5 ännu inte lämpar sig för alla typer av tillämpningar, så pekar det mesta på att HTML5 kommer ta allt mer mark på appmarknaden. Phonegap köptes för övrigt upp av Adobe i början av oktober i år.

    API:er

    Tågtavlan hämtar data från Tåg.Info, som i sin tur skrapar Trafikverkets HTML-sidor med tågtrafikinformation. I brist på ett öppet, officiellt API från Trafikverket så har jag alltså skapat ett eget. Jag har en löpande dialog med Trafikverket som fungerar väldigt bra, och för mig är det tydligt att deras avsaknad av ett öppet API inte beror på bristande vilja utan huvudsakligen beror på att alla API:er Trafikverket tillhandahåller omgärdas av avtal gentemot tågoperatörerna.Med tanke på dessa omständigheter upplever jag dem som väldigt tillmötesgående och måna om att inte sätta käppar i hjulen för Tåg.Info och andra som skrapar deras HTML-sidor. Innan deras nya trafikinformation skulle tas fram ringde de till och med för att försäkra sig om att de inte gjorde någon förändring på serversidan som skulle hindra Tåg.Info från att inhämta data.

    Jag har förstås ändå sneglat litegrann på det privata API som deras nya trafikinformation använder och fått beskedet att de inte kan godkänna att APIet används av tredjepartsutvecklare, så tills vidare kommer jag fortsätta skrapa HTML-sidorna i väntan på ett publikt API. Jag tror inte det är en bra idé att försöka “tvinga” fram publika APIer genom att olovligen jacka in sig på privata sådana (även om program som Charles Proxy gör det barnsligt enkelt att kartlägga HTTP(S)-API:er), det tror jag snarare får rakt motsatt effekt hos dataägaren. I synnerhet tror jag det är riskabelt, inte bara juridiskt, om det är ett företags API man exponerar – jag vet att SJ:s IT-avdelning så sent som i somras diskuterade att erbjuda ett öppet API i samband med releasen av deras app, så med facit i hand hade vi nog alla tjänat på om vi hade hanterat höstens “avslöjande” av bristerna i deras API lite snyggare gentemot SJ. Men det är lätt att vara efterklok…

    En dörröppnare

    Jag blev enormt förvånad när Tågtavlan åkte direkt upp på App Stores topp-10-lista när den släpptes, och tyckte 10 000 användare efter de första två månaderna var helt otroligt. Idag närmar sig siffran den tiodubbla, och Tåg.Info och Tågtavlan har öppnat upp nya dörrar för mig. Jag är idag anlitad av myndigheten Trafikanalys för att ta fram ett tågdata-relaterat statistiksystem efter att projektledaren hittat Tåg.Info, och blev för några veckor ombedd att prata om tågförseningar ur mitt resenärsperspektiv inför ett hundratal åhörare från Trafikverket, näringsdepartementet, transportstyrelsen, tågbolag, universitet och branschfolk (se presentation på slideshare.

    Tågtavlan har förstås vidareutvecklats successivt i takt med att användarnas feedback har kommit in, och känns ganska mogen nu. I den senaste versionen finns funktionen “Mina Resor” som sammanställer information om alla tåg man checkar in på. Denna funktion är än så länge väldigt basic, men det är nog där jag ser störst utvecklingspotential i
    dagsläget. Efter årsskiftet är det dags att köpa ett årskort hos SJ igen…

    Taggar:
    APIerespresso housegästinläggiosmashupphonegaptagtågtavlantrafikverket

    Relaterade inlägg

    • rejta
      20 Feb
      2012
      API Måndag – Rejta API, tågförseningar, Facebook i Sthlm och WebCoast Läs mer
    • Runsten Nr:U 165 by kenny_lex, on Flickr
      13 Feb
      2012
      API Måndag – API för fornminnen, nytt från Google+ och nya API konsoler Läs mer
    • Reco
      06 Feb
      2012
      API Måndag – Reco API, Missatsamtals populära API och öppet API från Bloomberg Läs mer
    • Telephone Exchange by GlenBledsoe, on Flickr
      30 Jan
      2012
      API Måndag – 46elks internationellt & rabatt, Windows Azure, YouTube Läs mer

    Om Theodor Storm

    Jag är en egenföretagare som sedan 2001 har arbetat som konsult inom systemarkitektur och systemutveckling. Parallellt med detta har jag pysslat med olika webbprojekt för att fördriva tiden på tågresor - denna höst firade jag 10 år som tågpendlare. Ett urval av dessa projekt, med varierande ambitionsnivå och kommersiell framgång (kommer år 2012 bli Sqwalps år? Nej.) finns på http://www.tstorm.se/. Till mellandagarna är jag oerhört sugen på att gräva ner mig i Spotifys Javascript-APIer.

    • http://utvbloggen.se Jonas Lejon

      Kul och läsa! Har själv testat PhoneGap lite och verkar grymt för att göra cross-platform appar. Mycket imponerad av ditt arbete

    • http://ptz0n.se/ Erik Pettersson

      Härligt jobbat, och berättat Theodor. Hade koll på det mesta men alltid intressant att få hela bilden i ett inlägg.

      Uppskattar ditt arbete och engagemang!

    • http://www.jimwestergren.com/ Jim Westergren

      Intressant läsning. Kul att veta mer om dig Theodor.

    • http://twitter.com/tstorm Theodor Storm

      Tack ska ni ha!

    • Anonym

      Trevlig läsning och kul att få höra att PhoneGap levererar, tack!

    • http://www.carlzetterberg.se Carl Zetterberg

      Bra jobbat, haft stor glädje av Tågtavlan! :)

    • http://www.undra.se/ Gast

      Har du provat appMobi?

  • Senaste inläggen

    • API Måndag – Rejta API, tågförseningar, Facebook i Sthlm och WebCoast
    • API Måndag – API för fornminnen, nytt från Google+ och nya API konsoler
    • API Måndag – Reco API, Missatsamtals populära API och öppet API från Bloomberg
  • Mina senaste #apise tweets

    • andreaskrohn: Har sagt det förr och säger det igen. Gillar verkligen tjänsterna från Trafikontoret i #Göteborg http://t.co/pjGv7tYA Ett föredömme! #apise 22/2 20:39
    • andreaskrohn: Trött på APIer utan publik dokumentation. Ska organisera tankarna kring det lite sedan blir det nog ett blogginlägg. #apise 22/2 10:40
  • Follow @andreaskrohn
  • Senaste kommentarerna

    Powered by Disqus
  • Länkar

    • Agiley.se
    • Bjornsennbrink.se
    • Din IT Kunskap
    • Disruptive
    • Mindpark
    • Mjukvara.se
    • ProgrammableWeb
    • ptz0n.se
    • The Blackjacker.se
    • Tommy K Johanssons
    • utvbloggen.se
    • Webbradion
    • What's Next
  • RSS Senaste APIer från Opendata

    • Säsongsmat API
    • Mediacreeper API
    • data.goteborg.se
    • Resihop API
    • Missatsamtal API
  • Kategorier

    • APIer
    • Blogg
    • Nyheter
    • Om mashups
    • Svenska mashups
  • Om mashup.se

    Denna sida drivs av Andreas Krohn som jobbar som API specialist på Dopter AB. Den fina designen kan vi tacka Kemie Guaida, Dopter för och ett stort tack till Linus Bohman för Wordpressmagin.

    Mashup.se av Andreas Krohn är licenserat enligt Creative Commons Erkännande 2.5 Sverige License. Använd gärna innehållet men länka tillbaka till mashup.se och tala om var ni fick innehållet från.