• Iwa Labs
  • Mobiilisovellukset
  • Verkkopalvelut
  • Työmme
  • Blogi
  • In English

Joustavaa mobiili- ja internet-ohjelmistokehitystä

  • Iwa Labs suunnittelee ja toteuttaa asiakkailleen web-pohjaisia ratkaisuja ja ohjelmistoja. Tarjoamme räätälöidyt verkkopalvelut, iOS-sovellukset, Android- ja Windows Phone-sovellukset, päätelaiteriippumattomat selainpohjaiset mobiili web - ja web app -sovellukset sekä mobiilioptimoidut HTML5-verkkopalvelut ja -sivustot.
  • Hybridi-applikaatioiden tekeminen - webkehittäjän kokemus

    Julkaistu 31.01.2012

    Jokainen mobiili-applikaatioiden parissa työskentelevä tietää koulukunnan jakautuvan kahtia. Toinen osa uskonomaisesti saarnaavat natiivi-applikaatioiden puolesta, kun taas toinen leiri vannoo HTML5-sovellusten nimeen. Molemmilla applikaatioilla on omat validit pointtinsa ja käyttötarkoituksensa, mutta jos mietit kumman leiriin sinun start-up ideasi liittyisi, tarjolla on myös kolmas vaihtoehto – hybridi-applikaatiot.
    Web-teknologioilla rakennetut niin sanotut hybridi-applikaatiot pitävät sisällään sekä mobiililaitteen natiivi-ohjelmointikieltä (kuten Java tai Objective-C) sekä HTML ja Javascript koodia. Mikä erottaa hybridi-applikaatiot normaaleista mobiiliselaimessa ajettavista web-applikaatioista, on mahdollisuus käyttää natiivisti mobiililaitteen käyttöjärjestelmän tarjoamia ominaisuuksia, kuten kameraa, kiihtyvyysanturien dataa sekä geolokaatiota. Mutta tämän lisäksi niitä voidaan jakaa myös sovelluskauppojen kautta, kuten App Store tai Android Market. IMO suurin syy HTML5 pohjaisten web-applikaatioiden hitaaseen leviämiseen mobiilimarkkinoilla on ollut nimenomaan keskitetyn jakeluverkoston puuttuminen. Nyt hybridi ratkaisuun ovat päätyneet jo muun muassa Facebook, NetFlix sekä LinkedIn.

    Miten hybridi sovellusten kyhitys käytännössä tapahtuu?

    Viimeisen vuoden aikana, uusia alustoja joiden avulla ohjelmoijat voivat luoda mobiili-applikaatioita web-teknologioilla, on noussut kuin sieniä sateella. Näistä mainittakoon muun muassa Worklight, PhoneGap, MoSync, Appcelerator sekä suomalainen AppGyver. Olisin halunnut kokeilla AppGyveria (paras nimi koskaan kehitysympäristölle), mutta se on vielä yksityisessä beta testauksessa eikä ehtinyt mukaan tähän blogikirjoitukseen. Valitsin siis nopean googlaamisen perusteella suosituimman, PhoneGapin.

    PhoneGap tukee laajaa kirjoa eri mobiilialustoja (iOS, Android, WP7, BB, Symbian, ...), mutta koska satun omistamaan MacBookin, päätin kokeilla iOS applikaation luomista. PhoneGap asentui helposti OS X Lion ympäristööni ja dokumentointi miten projektin saa aluilleen oli selkeä ja hyvin kuvattu. Minulla ei ole aiempaa kokemusta mobiilisovellusten kehittämisestä ja varsinkin XCode on täysin tuntematon sovellus, mutta onneksi ainoat asiat mitä XCoden puolella tarvitsee tehdä on projektin luonti, sekä iOS simulaattorin ajaminen. Itse HTML5 osuuden voi jokainen koodata omalla lempieditorillaan. XCode projektin sisällä oleva www –hakemisto pitää sisällään HTML sekä Javascript koodit ja tulee olemaan yhteinen applikaation kaikille eri mobiilialustaversioille.

    Lyhyen pohdinnan jälkeen päädyin tekemään demoapplikaation, joka havainnollistaa mobiililaitteen kiihtyvyyspiirien käyttöä. Yksinkertaisuudessaan applikaatio sisältää yhden näkymän, jossa “biljardipallot” poukkoilevat ympräri ruutua, kun puhelinta fyysisesti kääntää kädessä. Ensiksi huomasin, että PhoneGapin mukana ei tule jQuerya , joten lisäsin sen projektiin erikseen. Tämä kävi yhtä helposti kuin missä tahansa web-applikaatiossa. Hetken pohdittua totesin, ettei applikaationi tarvitse suositeltua jQuery Mobile laajennusta, sillä näkymässäni ei ole juurikaan mobiiliappiksista tuttuja graafisia elementtejä.

    Sitten itse koodin ja PhoneGap APIn kimppuun. accelerometer.watchAcceleration –metodilla sain helposti rekisteröityä kuuntelijan kiihtyvyysantureille, johon API sisälsi selkeät esimerkkikoodit. Omassa applikaatiossani laitoin päivitys frekvenssiksi 50ms, minkä pitäisi riittää mainiosti tarkoitukseensa. Ajattelin ensiksi kokeilla puhdasta CSS ratkaisua, jossa muutan absoluuttisesti asetettujen kuvaelementtien sijaintia, mutta pallojen lisääntyessä sulavuus ei ollut mielestäni halutulla tasolla, joten päädyin 3d transformattuun canvakseen. Muutama tunti sekä kirjasta kaivettu fysiikan kaava myöhemmin, käsissä oli toimiva appis (joskaan ei vielä kovin kaunis).

    Phone Gap Test

    Jo parin tunnin testailun jälkeen voin lämpimästi suositella PhoneGapia erinomaiseksi vaihtoehdoksi mobiili web-sovelluksien kehittäjille. Kehitys ei muutamaa välivaihetta lukuun ottamatta eroa juuri normaalin mobiilille optimoidun web-palvelun kehityksestä, mutta hybridi-ratkaisun etuna saat käsiisi paremmat jakelukanavat, oikein suunniteltuna offline käytettävyyden sekä pääsyn suoraan päätelaitteen natiivikomponentteihin. Ainoana miinuksena todettakoon HTML sekä Javascript koodin debuggaus, joka tapahtuu XCode:n konsolin kautta. Google Chrome:n Developer Tools –työkaluun tottuneena, XCode:n käyttö tuntuu mielestäni rajoittuneelta ja kömpelöltä. Lisäksi jokaisen muutoksen jälkeen sovellus pitää kääntää uudelleen, jotta muutokset saadaan näkyviin.

    +139...» Blogin etusivu « Iwa....
  • Aiemmat blogit

    • Rasmus Roiha Ohjelmistoyrittäjät ry:n toimitusjohtajaksi
    • SOSTE:n onnistunut julkinen neuvottelumenettely - lisää tällaisia julkisiin hankintoihin!
    • Growth Hacker - kasvukoodaaja
    • Miksi Ruby on Rails on web-startupillesi paras vaihtoehto
    • Mukautuva verkkosuunnittelu eli responsive web design on tullut jäädäkseen - kutsuu sitä millä nimellä tahansa
    • Huhtikuun löydöt - Firebase, Filepicker.io ja HTML 5 Please
    • Pilvipalveluita maailmalta - julkishallinnon haasteet
    • jQuery Mobile
    • Open Source CMS - varteenotettava vaihtoehto kaupalliselle?
    • Mietteitä pilvipohjaisten verkkosovellusten tietoturvasta
  • Ota yhteyttä!

  • Iwa Labs Oy

    info@iwa.fi
    Ruoholahdenkatu 8
    00180 Helsinki
    Näytä kartalla

    Iwa Labs Oy
    Ruoholahdenkatu 8
    00180 Helsinki

    • Facebook
    • Twitter
    • RSS feed
      Follow @iwalabs
  • Yhteyshenkilöt

    Kare Souru
    0400 577 599
    Skype: karesouru

    Rasmus Roiha, hall. puheenjohtaja
    0400 180 434
    Skype: rasmusroiha

    Lähi-itä
    Tapio Äijälä
    +966 56 9219884
    Skype: tapioaijala

    Sähköpostiosoitteemme ovat muotoa etunimi.sukunimi@iwa.fi

Copyright © Iwa Labs Oy 2012.