Papa docs: Windows phone 8 sovelluskehitys

From: papapapa

To: lukijat

Subject: kuinka koodata Windows Phone 8 sovellus

No terve!

Symbianin kohdalla en koskaan jaksanut kahlata läpi kehitystyökaluja, joita tulisi kehityskoneelle asennettavaksi käsittääkseni vähintään 7-8 erilaista, jotta yksinkertaisen softan olisi voinut kääntää lähdekoodista puhelimelle. Rest in pieces, Symbian.On uuden avoimemman aikakauden vuoro. Nokian kohdalla riippuminen Symbianissa saattoi olla yksi keskeisiä syitä, miksi muutamat kilpailijat painoivat ohi ja lujaa. Mutta peli ei suinkaan ole vielä kokonaan pelattu.

Mietin, että asioita opetellessani tekisin 3- tai 4-osaisen kirjoitussarjan Windows Phone -kehityksestä. Julkaisun aikataulu on vielä kysymysmerkki, ja erityisesti tuo 2. osan ilmestyminen on varmaankin se isompi haaste. Nyt tässä ensimmäisessä osassa käyn läpi hieman WP8 taustoja ja erityisesti sitä lähtökohtaa, jolta itse ponnistan asian suhteen. Huom! En kirjoita tätä artikkelisarjaa asiantuntija-näkökulmasta, vaan nimenomaan uteliaana amatöörinä. Jos löydät asiavirheitä tai parannettavaa, pistä ihmeessä joko kommentti blogiin tai suoraan sähköpostia.

Windows Phone on mennyt mielestäni Symbianiin verrattuna hyvään suuntaan; nyt tuo oma pieni sovellusprojekti vaikuttaa jo “doable” -tasolta. Toisaalta ohjelmointitaustassani on jonkin verran (ei-natiivi) Windows koodaamista, lähinnä VisualBasic:lla, joten osa Windows Phonen sisältämistä teknologioista ovat tuttuja. Samoin ylläpitäjänä monet Microsoftin konseptit ovat tulleet vuosien mittaan kohtuullisen tutuiksi.

Kirjastosta löytyi varsin kelpo opas, Moonsoftin ohjelmistokonsultin Jani Järvisen (junassa kirjoittama!) uusi “Windows Phone 8 sovelluskehitys”. Painelin sitä eteenpäin ensi-istumalta 40 sivua. Innostuin aihepiiristä aika lailla, ja uskon, että tässä on se kipinä, joka johtaa lopulta ihka oikean WP8 sovelluksen valmistumiseen. Mutta eipä nuolaista aivan vielä.

Järvisen opas lähtee reippaasti käyntiin, jonka jälkeen jumitutaan hieman aikaa Microsoftin muiden tuotteiden ja lisenssoinnin parissa, mutta ko. firman kohdalla näistä on hyvä / pakollista tietää vaikka haluaisikin “vain” kehittää mobiilisoftaa. Lyhyesti sanottuna on hyvä tietää, että ainakaan tällä hetkellä WP8 alustalle ei ole mahdollista kehittää ilmaiseksi ohjelmia. Kehittäjälisenssi maksaa 99 USD per vuosi, ja sen saa Microsoftin Windows Phone Developer -sivulta. Kannattaa lukea aika tarkkaan kehittäjälisenssiin liittyvät julkaisuehdot ja kehittäjän vastuu ohjelmansa hyväntahtoisuudesta sekä kriittisten virheiden käsittely.

Ohjelmoinnissahan on mielenkiintoinen paradoksi historian valossa: ennen se oli helpompaa! Kun aloittelin itse ohjelmoinnin vuonna 1983, riitti, kun kirjoitin pari riviä (tai vain yhden rivin), ja sen jälkeen ajoin ohjelman RUN -komennolla. Tulos oli välitöntä, ja prosessi oli hyvin yksinkertainen. Koko hela hoito tapahtui pikkuriikkisessä muistimäärässä, hyvin heppoisilla resursseilla, armoitetun Commodore 64 -kotitietokoneen uumenissa.  Nykypäivänä edelleen on olemassa teknologioita, joissa pääsee hyvin nopeasti käyntiin ja kokeilemaan (mieleen tulevat erityisesti web-kehityksessä suosituksi noussut Javascript ja monet Linux/Unix maailman kielet kuten Perl, PHP ja Python). Toisessa päässä on sitten tällainen “raskas” sovelluskehitys, johon Windows Phone 8 -kehitys lukeutuu myös.
Microsoftin kohdallahan kehitystyökalujen pino on usein hyvin määritelty (“well defined”), mutta vastapainoksi se on aika proprietary
ja hinnakas (Järvisen kirjassa olevien suositusten mukaan peruskokoonpano jolla kehitystyötä voi tehdä maksaisi kone mukaanlukien
suurinpiirtein tuossa 1300-1500 euron tienoilla – jos mukaan laitetaan yksi Windows-palvelin, hinta noussee jonnekin 3000 euron tienoille). Microsoft on muuttunut vuosien mittaan hyvinkin paljon avoimemman ohjelmistokehitysmallin suuntaan. Silti koska kyseessä on suhteellisen perinteisellä liiketoimintamallilla toimiva yritys, se ei voi antaa kaikkea ulos ilmaiseksi.

Tuotteet on usein nivelletty keskenään “sopivasti” niin että Järvinenkin mainitsee kirjassaan, että vaikka kyse on puhelinkoodin
kehittämisestä, yllättäen kuitenkin mm. Office-, Azure-, jne palvelut tulevat usein käytännössä vastaan ja niiden osaamisesta
on hyötyä. Hieman MS-pakkosyöttöä toisin sanoen tiedossa, mutta en ole varma, onko tuo aivan absoluuttinen vaatimus vai nice-to-know. Käyn tulevissa osissa läpi erityisesti myös näitä, sikäli kun katson että kehittäjälle niistä on hyötyä. Toistaiseksi en voi sanoa juuta enkä jaata asian suhteen, kokemattomuuttani.

Microsoft tuntee sen, miten opittuja asioita kannattaa kierrättää järkevästi uusissa asiayhteyksissä. Toisaalta firma on myös tunnettu toisinaan varsin karskeista epäjatkuvuuskohdista, esimerkiksi nyt WP7 ja WP8 käyttöjärjestelmiin ei kannata haaveilla vanhan .NET koodin kääntämisestä. Asialla on myös hyviä puolia. Yllättäen nimittäin kun perheeseemme tulia Lumia 920 -puhelin, etsin melkein ensimmäisten asennettavien ohjelmien joukossa virusturvaa. Kävi ilmi, että virusten elosta tällä alustalla on tehty hyvin vaikeaa. Ensinnäkin jokainen puhelimessa ajettava app elää omassa eristetyssä hiekkalaatikossaan (‘sandboxing‘) ja lisäksi jokainen markkinoille hyväksyttävä ohjelma käy läpi Microsoftin testauksen.

Seuraavassa osassa: ensimmäinen toimiva ohjelma!

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: