Jarno Montonen 27.3.2011

Windows phone 7 -sovelluskehitys

 

 

Tämä seminaarityö käsittelee sovelluskehitystä Windows Phone 7 –käyttöjärjestelmälle ja esittelee sitä sovelluskehittäjän näkökulmasta. Työssä esitellään pääasialliset sovelluskehitysteknologiat ja –työkalut sekä Windows Phone 7 –käyttöjärjestelmän erityispiirteitä sovelluskehittäjän näkökulmasta. Lopuksi käydään vielä pääpiirteissään läpi sovelluksen julkaisu Windows Phone Marketplaceen ja esitellään tärkeimpiä lähteitä Windows Phone 7 –sovelluksehittäjille.

SISÄLLYS

1          JOHDANTO.. 3

1.1      Mobiilisovellukset ja sovelluskaupat 3

1.2      Windows Phone 7. 4

2          SOVELLUSKEHITYS WINDOWS PHONE 7:LLE.. 5

2.1      Teknologiat 5

2.1.1  Silverlight 6

2.1.2  XNA Game Studio. 7

2.2      Työkalut 7

2.2.1  Visual Studio 2010. 8

2.2.2  Experssion Blend.. 9

2.2.3  Windows Phone Emulator. 9

2.3      Erityispiirteitä. 10

2.3.1  Isolated Storage. 10

2.3.2  Tombstoning. 12

2.3.3  Launchers & Choosers. 14

2.3.4  Live Tiles. 15

2.3.5  Application Bar. 16

2.3.6  On Device Debugging. 17

2.3.7  Laitevaatimukset 18

2.3.8  pubCenter & Advertising SDK for Windows Phone 7. 18

2.3.9  Hubs. 19

2.4      Sovelluksen julkaisu.. 20

3          YHTEENVETO.. 22

LÄHTEET.. 23



1              JOHDANTO

Kosketusnäyttöjen myötä älypuhelinkäyttöjärjestelmät ovat kokeneet viimevuosina lähestulkoon samanlaisen mullistuksen, kun siirtyminen aikanaan komentoriviltä graafisiin käyttöliittymiin. Samaan aikaan laitteiden myynti on ollut räjähdysmäisessä kasvussa ja tällä hetkellä voidaankin puhua eräästä voimakkaimmin kilpaillusta alasta modernin yritystoiminnan historiassa (21.2.2011: http://www.gartner.com/it/page.jsp?id=1466313).

Älypuhelinkäyttöjärjestelmien kehityksessä keskeisenä tekijänä on ollut miellyttävän käyttäjäkokemuksen luominen, jopa toiminnallisuuksien kustannuksella. On ollut tyypillistä, että uuden käyttöjärjestelmän ilmaantuessa perinteisiä käyttöjärjestelmien ominaisuuksia, kuten moniajo, multimediaviestien tuki tai tekstin kopiointi ja liittäminen ovat puuttuneet. Ominaisuuslistan kasvattamisen sijasta on panostettu käyttöliittymään ja kokonaisvaltaiseen käyttäjäkokemukseen.

1.1       Mobiilisovellukset ja sovelluskaupat

Käyttäjäkokemuksen lisäksi tärkeä osa moderneja mobiilikäyttöjärjestelmiä on ollut laaja sovellusvalikoima. Näinpä jokaisella merkittävällä älypuhelinkäyttöjärjestelmällä, useilla laitevalmistajilla ja myös operaattoreilla on olemassa sovelluskauppa, josta loppukäyttäjät voivat helposti asentaa sovelluksia mobiililaitteelleen, ja jossa sovelluskehittäjät voivat joko ilmaiseksi tai edullisesti julkaista heille tarjotuilla välineillä kehittämiään sovelluksia.

On ruvettu puhumaan ns. ekosysteemistä, joka kehittyy sovelluskaupan ympärille, ja pitää sisällään niin käyttöjärjestelmän ja sovelluskehitystyökalujen kehittäjän ja sovellusten levittäjän, kuin myös laitevalmistajat, sovelluskehittäjät ja laitteiden käyttäjät. Vaikkakin ”standardiksi” on muodostunut, että sovelluskaupan ylläpitäjä saa sovellusten myyntituloista 30 prosenttia, lienee päämotiivi sovelluskauppojen ylläpitämiselle asiakasarvon kasvattaminen. Googlen tekemän tutkimuksen mukaan 60 % älypuhelinasiakkaista huomioi laitteelle tarjolla olevat sovellukset ostopäätöstä tehdessään (21.2.2011: http://www.infoworld.com/d/mobilize/inside-the-heads-smartphone-shoppers-863).

Sovelluskehittäjille nämä sovelluskaupat tarjoavat ennenäkemättömän tilaisuuden saada tuotoksensa laajan asiakaskunnan ulottuville. Sovelluskaupat ovatkin saaneet houkuteltua valtavan määrän kehittäjiä ja sovelluksia ekosysteemeihinsä. (21.2.2011: http://www.telecoms.com/11685/building-a-mobile-app-ecosystem-to-drive-mobile-usage)

1.2       Windows Phone 7

Windows Phone 7 (WP7) on Microsoftin vastaus älypuhelinten käyttöjärjestelmien viimevuosien nopeaan kehitykseen. Vaikkakin numero seitsemän WP7:n nimessä antaa ymmärtää käyttöjärjestelmän olevan jo seitsemännessä versiossaan, on se itse asiassa lähes täysin uusi tuotos. WP7:n nimi juontaa juurensa Microsoftin edellisestä älypuhelinkäyttöjärjestelmästä nimeltään Windows Mobile 6.5. Yhteistä tämän kanssa WP7:llä on kuitenkin vain hyvin vähän (lähinnä kernel), eivätkä Windows Mobilelle tehdyt sovellukset toimi WP7:lla.

Microsoftin mukaan oli tärkeää tehdä selkeä ero Windows Mobileen parhaan mahdollisen käyttäjä- ja kehittäjäkokemuksen takaamiseksi, ja tästä syystä tuki vanhoille sovelluksille jätettiin pois. Päätöstä selittää myös käyttöliittymän radikaali muutos, sovelluskehitysteknologian vaihtuminen Silverlightiin ja XNA:han. Lisäksi jotkin Windows Mobile sovellukset olivat suunniteltu käytettäväksi styluksella, jonka käyttöä WP7:n kapasitiivinen näyttö ei mahdollista. Yleisen trendin mukaisesti myös WP7:n ensimmäisessä versiossa on keskitytty käyttäjäkokemukseen jättäen mm. kolmannen osapuolen sovellusten moniajo ja tekstin kopiointi ja liittäminen tuleviin päivityksiin. (21.2.2011: http://blogs.msdn.com/b/ckindel/archive/2010/03/04/different-means-better-with-the-new-windows-phone-developer-experience.aspx, 21.2.2011: http://en.wikipedia.org/wiki/Windows_Phone_7)

Käyttöjärjestelmää esiteltiin ensimmäisen kerran helmikuussa 2010 Mobile World Congress –nimisessä mobiilialan tapahtumassa. Ensimmäiset laitteet tulivat markkinoille saman vuoden lopulla ja ensimmäisen kuuden viikon aikana laitevalmistajat olivat myyneet niitä 1.5 miljoonaa kappaletta (21.2.2011: http://www.microsoft.com/Presspass/Features/2010/dec10/12-21AchimBergQA.mspx). Lisäksi 11.2 2011 Microsoft ja Nokia tiedottivat laajasta strategisesta yhteistyöstä, johon liittyen Nokia ottaa Windows Phonen pääasialliseksi älypuhelinkäyttöjärjestelmäkseen seuraavien kahden vuoden aikana (21.2.2011: http://www.microsoft.com/presspass/press/2011/feb11/02-11partnership.mspx).

2              SOVELLUSKEHITYS WINDOWS PHONE 7:LLE

Kilpailijoiden tapaan, myös Microsoft on panostanut voimakkaasti Windows Phonen sovelluskehitysmahdollisuuksiin. Teknologiavaihtoehtoja on kaksi täyttämään erilaiset tarpeet ja työkalut ovat ilmaisia. Sovelluksia voi toki tehdä myös Microsoftin sovelluskehitystyökalujen maksullisilla versioilla. Tässä luvussa katsomme tarkemmin tarjolla oleviin teknologioihin, työkaluihin ja WP7:n erityispiirteisiin sovelluskehittäjän näkökulmasta.

Teknologioiden ja työkalujen lisäksi tarjolla on sovelluskauppa, jossa sovelluskehittäjät voivat sovelluksiaan julkaista. Aliluku 2.4 tarkastelee sovelluskaupan ominaisuuksia ja piirteitä ja selittää, kuinka sovelluksen julkaisu pääpiirteissään tapahtuu.

2.1       Teknologiat

Windows Phonelle on mahdollista tehdä sovelluksia kahdella eri teknologialla: Silverlightilla ja XNA:lla. Silverlight on näistä se tavallinen tapa ja soveltuu useimpien sovellusten tekemiseen. XNA:ta käytetään lähinnä grafiikkaintensiivisissä sovelluksissa, kuten peleissä. Lisäksi Silverlight sovellukseen voi yhdistää XNA:lla tehtyjä osia ja käyttämällä WebBrowser-komponenttia, voi sovellukseensa sisällyttää myös HTML:ää ja JavaScriptiä. Alla oleva kuva (Kuva 1) kuvaa WP7-sovelluskehittäjän käytössä olevat kirjastot ja sovelluskehykset kokonaisuudessaan.

Kuva 1. WP7 kirjastot ja sovelluskehykset (27.3.2011: http://msdn.microsoft.com/en-us/library/ff402531(v=vs.92).aspx)

2.1.1   Silverlight

Silverlight on Microsoftin vuonna 2007 julkaisema RIA-teknologia (Rich Internet Application), joka on nimensä mukaisesti tarkoitettu rikkaiden internet-sovellusten tekemiseen. Silverlight on sittemmin suuntautunut myös mobiilisovelluskehitykseen Symbian 1 versiollaan ja toimii nyt versollaan 4 Windows Phone 7:n tukijalkana.

Silverlightin kantavana ajatuksena on käyttöliittymän luonti XML-tyyppisellä XAML-merkkauskielellä ja sovelluksen toimintalogiikan kirjoittaminen käyttäen .NET:n karsittua versiota. XAML:n luomiseen on olemassa Visual Studioon integroitu visuaalinen editori sekä oma Expression Blend –sovelluksensa ja valmis Silverlight-ohjelma muodostaa XAP-tiedoston, joka ajetaan Silverlight runtimellä.

Tavallisesti Silverlight-sovelluksen toimintalogiikan voi kirjoittaa millä tahansa .NET kielellä, mutta ilmaiset Windows Phone Developer Tools:t tukevat tällä hetkellä vain C#:ia. Myös Visual Basic –tuki on olemassa, mutta se vaatii Visual Studio 2010 Pro:n tai paremman, eikä näin ollen toimi ilmaisella Visual Studioon versiolla.

Windows Phonelle Silverlight sisältää valmiita käyttöliittymäkomponentteja, kuten nappi ja tekstikenttä, mutta myös erityisempiä, kuten web-näkymä tai pohjat Pivot ja Panorama -sovelluksille. Huomionarvoista on myös, että Silverlight sovellukset ovat tapahtumapohjaisia. (25.2.2011: http://en.wikipedia.org/wiki/Microsoft_Silverlight, 25.2.2011: http://create.msdn.com/en-us/home/getting_started)

2.1.2   XNA Game Studio

XNA Game Studio on Microsoftin vuonna 2004 julkaisema pelikehitykseen suunnattu ilmainen Visual Studioon integroitava ohjelmointiympäristö. XNA Game Studioon sisältyy XNA Framework ja XNA Content Pipeline. XNA Framework on joukko kirjastoja päivityssilmukkaan (Game Loop) perustuvien interaktiivisten multimediaohjelmien tekemiseen. Päivityssilmukka on ohjelman tilan päivittämisen sekä ruudulle piirtämisen sisältävä silmukka joka suoritetaan ideaalitilanteessa noin 30 kertaa sekunnissa. XNA Content Pipeline on puolestaan kirjasto, joka helpottaa multimediasisältöpohjaisten ohjelmien, komponenttien tai elementtien tekemistä. (25.2.2011: http://msdn.microsoft.com/en-us/library/bb200104(v=XNAGameStudio.40).aspx)

WP7-sovelluskehityksessä XNA Game Studio:ta käytetään lähinnä pelien ja muiden grafiikkaintensiivisten kokoruutusovellusten tekemiseen, mutta lisäksi joitain puhelimen ominaisuuksia, kuten äänitystä, on käytettävä XNA Framwerok:n kautta. Tällaisissa tapauksissa on mahdollista liittää XNA:lla toteutettu toiminnallisuus Silverlight sovellukseen. On kuitenkin hyvä huomata, että Windows Phone Marketplace:n hyväksymisehdoista (25.2.2011: http://download.microsoft.com/download/1/2/D/12D67308-29EE-463D-A442-142F6982AECE/Windows%20Phone%207%20Application%20Certification%20Requirements.pdf) löytyy seuraava teksti:

4.2.5 The application must not call any APIs in the Microsoft.Xna.Framework.Game assembly or the Microsoft.Xna.Framework.Graphics assembly when using any methods from the System.Windows.Controls namespace.

Käytännössä tämä tarkoittaa sitä, että tiettyjä XNA Frameworkin luokkia, kuten äänenkäsittelyyn liittyviä voi käyttää Silverlight sovelluksessa, mutta XNA-peliin ei voi sisällyttää esimerkiksi Silverlight-käyttöliittymää.

Kaikissa WP7–laitteissa on Direct3D tuen omaava näytönohjain, jonka käyttöön XNA antaa hyvät mahdollisuudet.  XNA mahdollistaa myös kolmiulotteisten mallien näyttämisen ruudulla ja siten kolmiulotteisten pelien luomisen. Lisäksi WP7-puhelimet tukevat XNA pelien laitteistopohjaista grafiikan skaalausta pienempään resoluutioon. XNA:lle ei kuitenkaan ole virallisesti olemassa valmiita käyttöliittymäkomponentteja vaan kehittäjän täytyy tehdä kaikki itse. (25.2.2011: http://msdn.microsoft.com/en-us/library/gg490774.aspx, 25.2.2011: http://msdn.microsoft.com/en-us/library/ff402528(VS.92).aspx, 25.2.2011: http://create.msdn.com/en-US/education/catalog/article/which_product_for_windows_phone)

2.2       Työkalut

Windows Phone sovelluskehitykseen on olemassa ilmaiset työkalut, jotka sisältävät Visual Studio sovelluskehitysympäristön (IDE/Integrated Development Environment), Expression Blend -käyttöliittymätyökalun ja Windows Phone –emulaattorin. Työkalut ovat saatavissa yhtenä asennuspakettina osoitteesta: http://create.msdn.com/en-us/home/getting_started.

Asennuspaketti asentaa joko Visual Studio 2010:n ilmaisen version (Visual Studio 2010 for Windows Phone) tai Windows Phone –komponentit koneelta jo löytyvään Visual Studio 2010:en. Samoin se asentaa Expression Blend:n ilmaisen version (Expression Blend for Windows Phone), mikäli Expression Blendiä ei koneelta jo löydy. Lisäksi asennuspaketti asentaa Windows Phone –emulaattorin käytettäväksi sekä Expression Blendistä että Visual Studiosta.

2.2.1   Visual Studio 2010

Visual Studio on Microsoftin kehittämä IDE erityisesti .NET sovellusten kehittämiseen. Visual Studiosta on olemassa monia versioita ilmaisista Express-versioista, kuten Windows Phone -soveluskehitykseen tarkoitetusta, kaiken sisältävään Ultimate-versioon asti.

Express-versiosta on karsittu monia koodin uudelleenorganisointiin (refactoring), virheenkorjaukseen, vianmääritykseen, testaukseen, tietokantakehitykseen sekä tiimin ja projektin hallintaan liittyviä ominaisuuksia. Niihin ei voi myöskään asentaa kolmannen osapuolen lisäosia. Visual Studio 2010 for Windows Phone sisältää kuitenkin mm. sekä C# että XAML -koodin automaattisen täydentämisen ja värjäämisen, visuaalisen XAML-editorin, askeltavan virheenjäljitystyökalun (Debugger) ja velhoja (Wizard) erilaisten sovellus ja projekti –pohjien luomiseksi. (25.2.2011: http://www.microsoft.com/visualstudio/fi-fi/products, 25.2.2011: http://en.wikipedia.org/wiki/Microsoft_Visual_Studio_Express)

Kuva 2. Visual Studio 2010 (Ultimate-versio)

2.2.2   Experssion Blend

Expression Blend on Microsoftin visuaalinen XAML-editori, joka on tätä kirjoittaessa versiossa 4. Sen päätarkoituksena on toimia käyttöliittymän suunnittelun ja toteutuksen apuvälineenä Silverlight ja WPF –sovelluksia kehitettäessä. Se sisältää mm. mahdollisuuden lisätä käyttöliittymäelementteihin toimintoja, kuten hiirellä liikuttelun, vedä-ja-pudota (drag-and-drop) tyylisesti, visuaalisen käyttöliittymän tilojen hallinnan sekä valmiita siirtymäefektejä. (25.2.2011: http://www.microsoft.com/expression/products/Blend_WhatIsExpressionBlend.aspx)

Expression Blend:n ilmainen Expression Blend for Windows Phone –versio sallii ainoastaan Windows Phone –sovellusten tekemisen mutta ei muilla tavoin eroa maksullisesta versiosta. Samoin, kuin maksullinen versio, toimii se yhdessä Visual Studion kanssa niin, että molemmissa voi olla sama projekti auki yhtä aikaa. Kun projektiin tekee muutoksia toisessa, päivittyvät ne myös toiseen automaattisesti.

Kuva 3. Expression Blend for Windows Phone

2.2.3   Windows Phone Emulator

Windows Phone Emulator emuloi Windows Phone laitetta. Se tarjoaa virtualisoidun ympäristön Windows Phone applikaatioiden testaamiseen ja debuggaukseen. Sen on tarkoitus antaa mahdollisimman todenmukainen kuva siitä, kuinka sovellus toimisi oikealla Windows Phone laitteella, ja itse asiassa se ajaakin koko Windows Phone 7 -käyttöjärjestelmää. Se emuloi prosessorin, muistien, näytönohjaimen ja oheislaitteiden toimintaa laitteenomaisella suorituskyvyllä. Myös verkkotoiminnot ja Isolated Storage on tarjolla emulaattorin kautta, mutta emuloidun laitteen ”muisti” pyyhkiytyy aina emulaattorin sulkemisen yhteydessä. Emulaattoria ei kuitenkaan tarvitse sammuttaa emulointisessioiden välillä. Mediaformaateista emulaattori tukee VC-1 –formaattia videolla ja .wma –formaattia äänelle. H.264 –formaatti ei ole tuettuna Windows Developer Toolsien mukana tulevassa emulaattorissa.  (28.2.2011: http://msdn.microsoft.com/en-us/library/ff402563(v=vs.92).aspx)

 

Kuva 4. Windows Phone Emulator

2.3       Erityispiirteitä

2.3.1   Isolated Storage

Isolated Storage on Windows Phone -sovellusten tiedostojärjestelmäkonsepti. Jokaisella sovelluksella on oma eristetty tilansa käyttöjärjestelmän tiedostojärjestelmässä eikä niillä ole suoraa pääsyä tilansa ulkopuolelle. Järjestelyn tarkoituksena on parantaa järjestelmän turvallisuutta, estää luvaton pääsy tiedostoihin ja ehkäistä tiedostojen korruptoitumisia.  (28.2.2011: http://msdn.microsoft.com/en-us/library/ff402541(v=vs.92).aspx)

Alla on kuvattu (Kuva 4) sovelluksen käyttöön saaman alueen looginen rakenne. Sovelluksella voi olla paikallisia asetuksia, joita kehittäjä voi hallita System.IO.IsolatedStorage.IsolatedStorageSettings –luokkaa käyttäen sekä vapaamuotoinen ja -kokoinen tiedostorakenne, jota kehittäjä hallitsee System.IO.IsolatedStorage.IsolatedStorageFile –luokkaa käyttäen. Näitä luokkia voisi käyttää esimerkiksi seuraavasti:

 

// Ota käyttöön IsolatedStorage -nimiavaruus

using System.IO.IsolatedStorage;

// Hae sovelluksen IsolatedStorageSettings -olio

IsolatedStorageSettings sovAs = IsolatedStorageSettings.ApplicationSettings;

// Lisää asetus nimeltä munAsetus ja anna sille arvo "munArvo"

sovAs.Add("munAsetus", "munArvo");

// Hae asetuksen munAsetus arvo

var munAsetus = sovAs["munAsetus"];

// Hae sovelluksen IsolatedStorageFile -olio

IsolatedStorageFile sovTal = IsolatedStorageFile.GetUserStoreForApplication();

// Luo sovelluksen käyttöön uusi tiedosto

IsolatedStorageFileStream munTiedosto = sovTal.CreateFile("munTiedostonimi");

// Kirjoita tiedostoon

// Avaa tiedosto myöhemmin lukemista varten

IsolatedStorageFileStream munTiedosto = sovTal.OpenFile("munTiedostonimi", System.IO.FileMode.Open);

 

Kuva 5. Looginen kansiorakenne (28.2.2011: http://msdn.microsoft.com/en-us/library/ff402541(v=vs.92).aspx)

2.3.2   Tombstoning

WP7 ei salli kolmannen osapuolen sovellusten moniajoa ja lopettaa kaikki tällaiset taustalle laitetut sovellukset, mutta säilyttää niiden tilan myöhempää käyttöä varten. Tätä kutsutaan nimellä Tombstoning. Sovellus saa vanhan tilansa uudestaan käyttöön, kun siihen palataan, esimerkiksi Back-napin painalluksella mutta ei silloin kun se käynnistetään uudestaan.

Alla on kuvattu (Kuva 5) WP7-sovelluksen suoritussykli eli perustilat, joihin sovellus voi joutua. Käyttäjän käynnistettyä sovelluksen sen Launching-tapahtumakäsittelijä saa kutsun. Tästä sovelluskehittäjä tietää sovelluksen käynnistetyn. Vastaavasti Closing-tapahtumankäsittelijä saa kutsun, kun sovellus suljetaan, esimerkiksi kun käyttäjä poistuu siitä Back-napin painalluksella. Tässä tapauksessa Tombstoning:ia ei tapahdu. Jos sovellus kuitenkin joutuu taustalle, esimerkiksi kun käyttäjä kuitenkin poistuu sovelluksesta Start-napin painalluksella, kutsutaan sovelluksen Deactivated ja aktiivisen sovellussivun (PhoneApplicationPage) OnNavigatedFrom-tapahtumankäsittelijöitä. Näissä tapahtumankäsittelijöissä sovelluskehittäjän tulee tallentaa sovelluksen sen hetkinen tila PhoneApplicationService.State ja PhoneApplicationPage.State –olioihin, jos se ei niissä jo ole. Tämän jälkeen sovellus suljetaan, mutta käyttöjärjestelmä pitää huolen, että jos siihen palataan, esimerkiksi Back-napin painalluksella, saa sovellus käyttöönsä vastaavat edellä mainitut oliot. Lisäksi tällaisessa tapauksessa kutsutaan sovelluksen Activated –tapahtumankäsittelijää, jossa sovelluskehittäjän tulee ladata sovelluksen tila em. olioista. (28.2.2011: http://msdn.microsoft.com/en-us/library/ff817008(v=vs.92).aspx)

 

Kuva 6. WP7 -sovelluksen suoritussykli (28.2.2011: http://msdn.microsoft.com/en-us/library/ff817008(v=vs.92).aspx)

2.3.3   Launchers & Choosers

Launcherit ja Chooserit ovat ohjelmointirajapintoja jotka mahdollistavat toimintojen, kuten puhelun soittamisen (PhoneCallTask) tai puhelimella olevan kuvan valinnan (PhotoChooserTask) käynnistämisen kolmannen osapuolen sovelluksesta. Käytännössä nämä ovat kutsuja jotka käynnistävät puhelimella olevan sovelluksen ja antavat tälle parametreja, kuten puhelinnumeron johon soitetaan tai lähetettävän tekstiviestin sisällön. (21.3.2011: http://msdn.microsoft.com/en-us/library/ff769542(v=vs.92).aspx)

Launcherit ja Chooserit eroavat siten, että Launcherit käynnistävät sovelluksen, mutta eivät palauta mitään käynnistäneeseen sovellukseen. Chooserit taasen voivat myös palautta dataa, kuten käyttäjän valitseman kuvan tiedot. Launchereita on tällä hetkellä kymmenen (Tauluakko 1) ja esimerkkejä niiden käytöstä löytyy osoitteesta: http://msdn.microsoft.com/en-us/library/ff769550(v=vs.92).aspx. Choosereita taasen on kuusi (Taulukko 2) ja esimerkkejä niiden käytöstä löytyy osoitteesta: http://msdn.microsoft.com/en-us/library/ff769543(v=vs.92).aspx. Omien Launchereiden tai Choosereiden tekeminen ei ainakaan tällä hetkellä ole mahdollista. (21.3.2011: http://msdn.microsoft.com/en-us/library/ff769542(v=vs.92).aspx)

 

Launcher

Toiminta

EmailComposeTask

Käynnistää sähköpostisovelluksen joka näyttää uuden viestin. Launcherille voi määrittää vastaanottajat, viestin otsikon ja sisällön. Viesti lähetetään vasta kun käyttäjä clikkaa lähetä-nappia

MarketplaceDetailTask

Käynnistää Marketplace-sovelluksen joka näyttää joko kutsuvan tai erikseen määritetyn sovelluksen sivun.

MarketplaceHubTask

Käynnistää Marketplace-sovelluksen joka näyttää määritellyn tyypin sisältöä.

MarketplaceReviewTask

Käynnistää Marketplace-sovelluksen joka näyttää kutsuvan sovelluksen arvostelusivun

MarketplaceSearchTask

Käynnistää Marketplace-sovelluksen joka näyttää määritellyn hakutermin mukaisen sisällön.

MediaPlayerLauncher

Käynnistää mediasoitinsovelluksen ja toistaa määritellyn mediatiedoston. Voit myös määrittää mitä soittimen toimintoja käyttäjä näkee.

PhoneCallTask

Käynnistää puhelinsovelluksen joka näyttää määritellyn puhelinnumeron ja henkilön nimen. Puhelu tehdään vasta kun käyttäjä painaa soita-nappia.

SearchTask

Käynnistää etsimissovelluksen ja suorittaa haun määritellyllä hakutermillä.

SmsComposeTask

Käynnistää viestisovelluksen joka näyttää uuden tekstiviestin. Voit määrittää vastaanottajat ja viestin sisällön. Viesti lähetetään vasta kun käyttäjä painaa lähetä-nappia.

WebBrowserTask

Käynnistää web-selaimen ja näyttää määrittelemäsi sivuston.

Taulukko 1. Windows Phone 7 -Launcherit (21.3.2011: http://msdn.microsoft.com/en-us/library/ff769550(v=vs.92).aspx)

Chooser

Toiminta

CameraCaptureTask

Käynnistää kamerasovelluksen. Jos käyttäjä ottaa kuvan, palauttaa sen tiedot Completed-tapahtuman parametrina.

EmailAddressChooserTask

Käynnistää yhteystiedot-sovelluksen. Jos käyttäjä valitsee yhteystiedon, palauttaa yhteystiedon sähköpostiosoitteen Completed-tapahtuman parametrina.

PhoneNumberChooserTask

Sama kuin edellinen, mutta palauttaa yhteystiedon puhelinnumeron.

PhotoChooserTask

Käynnistää kuvanvalintasovelluksen. Jos käyttäjä valitsee kuvan, palauttaa kuvan Completed-tapahtuman parametrina.

SaveEmailAddressTask

Tallentaa määritellyn sähköpostiosoitteen yhteystietoihin. Completed-tapahtuman parametrina palautetaan tieto tallentamisen onnistumisesta.

SavePhoneNumberTask

Sama kuin edellinen, mutta tallentaa puhelinnumeron.

Taulukko 2. Windows Phone 7 -Chooserit (21.3.2011: http://msdn.microsoft.com/en-us/library/ff769543(v=vs.92).aspx)

2.3.4   Live Tiles

Windows Phone:ssa on kaksi päänäkymää. Toinen koostuu Live Tileistä ja toinen on listaus puhelimeen asennetuista sovelluksista. Live Tile on yksinkertaisimmillaan vain pikakuvake tai linkki mutta voi myös näyttää esimerkiksi lukemattomien viestien määrän tai osakkeen pörssikurssin. Yleensä Live Tilet ovat neliönmuotoisia ja kaikki samankokoisia, mutta joillain käyttöjärjestelmän sovelluksilla on isompia suorakulmion muotoisia Live Tilejä. Käyttöjärjestelmän sovellusten ruudut voivat myös olla animoituja, mutta kolmannen osapuolen sovellusten Live Tilet eivät. Sovelluksella voi olla maksimissaan yksi Live Tile ja sovellus voi päivittää sitä tietyin ehdoin.

”Tilen” voi päivittää kahdella tapaa: joko serverin lähettämällä viestillä (Push-notification) tai käyttämällä ajastettua päivitystä (Tile Schedule). Ensimmäisen toteuttaminen on selitetty osoitteessa: http://msdn.microsoft.com/en-us/library/ff402558(v=VS.92).aspx ja jälkimmäisen osoitteessa: http://msdn.microsoft.com/en-us/library/ff769548(v=VS.92).aspx.

Kuva 7. WP7 Live Tilet (28.2.2011: http://tech.uk.msn.com/microsoft/windows-phone/photos.aspx?cp-documentid=155113920&page=1)

2.3.5   Application Bar

Application Bar on näytön reunassa näkyvä paneeli, jossa voi olla yhdestä neljään ikonia kuvaamassa sovelluksen erilaisia toimintoja (Kuva 7). Lisäksi paneelin voi avata sormella vetämällä, jolloin paljastuvat toimintojen nimet sekä rajoittamattoman pitkä tekstuaalinen lista toimintoja, mikäli sellaisia on Application Bar:iin lisätty (Kuvat 8 ja 10). Application Bar näkyy aina laitteen takaisin (Back), aloitus (Start) ja etsi (Search) –näppäinten puoleisessa näytön reunassa, mutta kun laitteen kääntää vaakatasoon, kääntyvät ikonit ja mahdollinen tekstuaalinen toimintolista automaattisesti oikeinpäin (Kuvat 9 ja 10).  Lisäksi Application Bar:n taustan väriä voi muuttaa, tai sen voi tehdä täysin läpinäkyväksi. (28.2.2011: http://msdn.microsoft.com/en-us/library/ff431813(v=vs.92).aspx)

Sovelluskehittäjä voi lisätä Application Bar:n sovellukseensa joko XAML:ssa tai C#-koodissa. Molemmat tavat on selitetty osoitteessa: http://msdn.microsoft.com/en-us/library/ff431786(v=vs.92).aspx.

 

Kuva 8. Application Bar 1

Kuva 9. Application Bar 2

 

Kuva 10. Application Bar 3

Kuva 11. Application Bar 4

2.3.6   On Device Debugging

On Device Debugging (ODD) tarkoittaa sovelluksen ajamista laitteella niin, että ohjelman suoritusta voi seurata IDE:n Debugger-työkalulla ja mm. pysäytyspisteitä (breakpoints) voi asettaa normaalisti. Vaikkakin tämä on varsin tavallinen ominaisuus moderneissa mobiilisovelluskehitystyökaluissa, voi se olla mobiilikehityksestä tietämättömille uusi asia.

Windows Phone sovelluksen saaminen laitteelle, muuten kuin Marketplace:n kautta, vaatii laitteen rekisteröimisen kehittäjälaitteeksi (Develeper Device) ja tämä taasen vaatii App Hub –jäsenyyden, jonka hankkiminen selitetään kohdassa 2.4 Sovelluksen julkaisu. Laitteen rekisteröimiseksi Windows Phone Developer Tools -asennuspaketti asentaa Windows Phone Developer Registration –ohjelman, johon kehittäjä syöttää Windows Live ID:n, jolla on App Hub:iin rekisteröitynyt. Lisäksi ilmaisen Zune-ohjelman tulee olla asennettuna ja käynnissä ja laiteen liitettynä tietokoneeseen USB-johdolla.

Rekisteröinnin jälkeen sovellusten ajaminen laitteella onnistuu valitsemalla Visual Studioon Build Target –valinnaksi Windows Phone 7 Device (Kuva 11). Tämän jälkeen Debug/Build suoritetaan laitteella. Saman voi tehdä myös Expression Blend:llä valitsemalla Device-välilehden Preview on –valinnaksi Windows Phone 7 Device ja ajamalla sovelluksen (Kuva 12). Lisäksi laitteen tulee olla kytkettynä tietokoneeseen samoin kuin sitä rekisteröitäessä.

 

Kuva 12. Build Target -valinta Visual Studio 2010:ssa

Kuva 13. Preview on -valinta Expression Blendissä

2.3.7   Laitevaatimukset

Windows Phone 7:n laitteille on asetettu vaatimuksia, jotka kaikkien WP7-laitteiden tulee täyttää. Vaatimukset takaavat vertailukelpoisen käyttäjäkokemuksen kaikilla myytävillä laitteilla. Sovelluskehittäjän tulee varmistua siitä, että sovellus toimii kiitettävästi kaikilla olemassa olevilla vaihtoehdoilla. Vaatimukset on listattu alla (28.2.2011: http://www.silverlightshow.net/items/WP7-Hardware-requirements-for-Windows-Phone-7-Part-1.aspx, 28.2.2011: http://www.silverlightshow.net/items/WP7-Hardware-requirements-for-Windows-Phone-7-Part-2.aspx):

·         Fyysiset näppäimet:

o   Äänenvoimakkuuden säätö, virta päälle/pois ja kameran laukaisu

o   Takaisin (Back), aloitus (Start) ja etsintä (Search) -näppäimet

·         Kapasitiivinen 4-pisteen kosketusnäyttö

o   Kaksi resoluutiovaihtoehtoa

§  480x800 (WVGA)

§  320x480 (HVGA)

·         1 GHz ARM v7 "Cortex/Scorpion" tai parempi prosessori

·          5Mpix tai parempi kamera

·         Keskusmuistia 256 MB tai enemmän

·         Flash-muistia 8 GB tai enemmän

·         DirectX 9 –tuki, kiihtyvyysanturi kompassilla, valoisuusanturi, läheisyysanturi, FM-vastaanotin ja A-GPS

2.3.8   pubCenter & Advertising SDK for Windows Phone 7

pubCenter on Microsoftin palvelu mainosrahoitteisten web ja Windows Phone –sovellusten tekemiseen. Perusajatus on, että kehittäjä rekisteröityy ja rekisteröi sovelluksensa osoitteessa https://pubcenter.microsoft.com, sisällyttää sovellukseensa mainoskomponentin ja saa rahaa sen näyttämistä mainoksista. Mainoksista tosin maksetaan tällä hetkellä vain Yhdysvaltalaisille kehittäjille.

WP7-sovellukseen mainoskomponentin saa asentamalla ilmaisen Advertising SDK for Windows Phone 7:n. Mainoskomponentilla on muutama eri kokovaihtoehto ja sijainnin kehittäjä saa päättää itse. Sovellusta rekisteröitäessä voi valita parametreja, joiden mukaan näytetyt mainokset valitaan, kuten vaikka mainoskategoria tai sovellusta ajavan laitteen sijainti, mutta viimekädessä Microsoft päättää, mitä mainoksia näytetään. Alla on kuvattu esimerkkimainos WP7-sovelluksessa (Kuva 13). (28.2.2011: http://advertising.microsoft.com/mobile-apps, 28.2.2011: http://create.msdn.com/en-US/home/faq)

Kuva 14. Esimerkkimainos (28.2.2011: Mukailtu lähteestä  http://community.microsoftadvertising.com/blogs/pubcenter/archive/2010/12/08/monetizing-windows-phone-7-gaming-apps-with-advertising.aspx)

2.3.9   Hubs

Hubit (Hubs) ovat laajennettavia Windows Phone -sovelluksia, jotka kokoavat yhteen näkymään jonkin alueen sisältöä, sovelluksia ja palveluita.  Windows Phone 7 sisältää kuusi valmista hubia, jotka ovat nimeltään: henkilöt (People), kuvat (Pictures), pelit (Games) (Kuva 14), musiikki ja video (Music + Video), sovelluskauppa (Marketplace) ja toimisto (Office) –hubit.

Henkilöt-hubi kokoaa yhteen puhelimen käyttäjän ystäväpiiriin liittyvää sisältöä, kuten viestejä, tilapäivityksiä ja kuvia erilaisista sosiaalisista yhteisöistä. Kuvat-hubi kokoaa yhteen puhelimen ja verkon kuva ja video -sisältöä ja tekee helpoksi niiden jakamisen verkkoyhteisöiden kautta. Pelit-hubi tuo Xbox LIVE:n WP7-puhelimeen. Sieltä löytyy mm. puhelimen käyttäjän Xbox LIVE Game Avatar, saavutukset (Achievements) ja pelaajaprofiili. Musiikki ja video -hubi kokoaa yhteen paikkaan puhelimen saavutettavissa olevan mediasisällön sen kuuntelua ja katselemista varten ja sisältää mm. FM-radion.  Sovelluskauppa-hubi mahdollistaa sovellusten ja pelien etsimisen, lataamisen ja päivittämisen. Toimisto-hubi sisältää Microsoft Word:n, Excel:n, OneNote:n ja SharePoint:n mobiiliversiot ja mahdollistaa näiden tiedostojen luomisen, editoimisen, lukemisen ja jakamisen. On kuitenkin hyvä huomata, että Marketplace ja Xbox LIVE eivät ole tällä hetkellä käytettävissä Suomesta. (28.2.2011: http://www.microsoft.com/presspass/press/2010/feb10/02-15mwc10pr.mspx)

Sovelluskehittäjät voivat luoda omia hubejaan tai integroida sovelluksiaan olemassa oleviin hubeihin erityisten rajapintojen avulla. Musiikkisovellus voisi esimerkiksi integroitua musiikki ja video –hubiin niin, että sillä viimeksi toistetut musiikkikappaleet näkyvät hubin History-sivulla. Osoitteesta: http://msdn.microsoft.com/en-us/library/ff769558(v=vs.92).aspx löytyy esimerkki tällaisesta integraatiosta.

Kuva 15. Windows Phone pelit (Games) -hub (28.2.2011: http://www.microsoft.com/presspass/presskits/windowsphone/images/Gameshub_US_web.jpg)

2.4       Sovelluksen julkaisu

Windows Phone sovelluksille on olemassa oma kauppapaikkansa nimeltään Windows Phone Marketplace, joka löytyy osoitteesta: http://www.microsoft.com/windowsphone/en-us/apps/default.aspx. Sovelluksen julkaisu tapahtuu App Hub:ssa, joka taasen löytyy osoitteesta: http://create.msdn.com. App Hub toimii julkaisuväylänä myös Xbox LIVE Marketplace:en.

Sovelluksen julkaisemiseen tarvitsee ilmaisen Windows Live ID:n ja App Hub jäsenyyden, joka maksaa $99 per vuosi, mutta opiskelijat voivat saada sen ilmaiseksi tunnistautumalla DreamSpark-opiskelijoiksi osoitteessa: https://www.dreamspark.com. Julkaistu sovellus voi olla ilmainen tai maksullinen, siinä voi olla mainoksia ja se voi tarjota ilmaisen kokeiluversion. Ilmaisten sovellusten määrä on rajoitettu sataan lähetettyyn per vuosi ja myös hylätyt lähetykset lasketaan. Ilmaisia voi lähettää tämänkin jälkeen, mutta ne maksavat $19.99 per lähetys. Maksullisen sovelluksen hinta voi olla $0.99 - $499.99 USD ja kehittäjä saa myyntituotoista 70%, mutta on vastuussa verojen maksamisesta. Maksu suoritetaan sähköisesti kehittäjän tilille, kun kehittäjän sovelluksia on myyty vähintään $200 arvosta.

Sovelluskaupasta ei ole vielä olemassa suomenkielistä versiota, mutta sitä voi käyttää englanninkielisenä kun asettaa Windows Live –profiilinsa maaksi esimerkiksi Iso-Britannia. (28.2.2011: http://create.msdn.com/en-us/home/faq)

 

3              YHTEENVETO

Windows Phone 7 on nopeasti kehittyvän mobiilimaailman uusi tulokas. Se eroaa radikaalisti edeltäjästään, Windows Mobile 6.5:stä, ja nojaa voimakkasti Microsoftin olemassa oleviin teknologioihin kuten Silverlightiin ja XNA:han. Sen sovelluskehitykseen on olemassa sekä ilmaisia, että maksullisia välineitä, mutta sovelluskehitys on mahdollista ainoastaan Windows Vista ja Windows 7 –käyttöjärjestelmillä. WP7:sta löytyy muutamia erityispiirteitä jotka sovelluskehittäjän on otettava huomioon tai jotka helpottavat sovelluskehittäjän työtä. Oikeus julkaista sovelluksia maksaa 99$ per vuosi, mutta opiskelijat saavat sen ilmaiseksi. Lisäksi kehittäjä saa sovelluksen myyntituloista perinteiset 70% ja myös mainosrahoitteiset sovellukset tekevät tuloaan.

Oppimismateriaalia ja dokumentaatiota WP7-sovelluskehittäjälle on tarjolla runsaasti. Microsoftin kehittäjäverkoston (Microsoft Developer Network / MSDN) Phone Platform –pääsivu löytyy osoitteesta: http://msdn.microsoft.com/en-us/ff380145.aspx ja dokumentaatiokirjaston pääsivu osoittesta: http://msdn.microsoft.com/en-us/library. Microsoftin ”virallinen” WP7-kehityskurssi taasen löytyy osoitteesta: http://msdn.microsoft.com/fi-fi/WP7TrainingCourse ja lyhyitä videoita miten tehdä tietty asia Windows Phone:lla osoitteesta: http://msdn.microsoft.com/fi-fi/gg243438. MSDN:n lisäksi materiaalia löytyy myös msdev.com-sivustolta (http://www.msdev.com). Tarjolla on mm. videosarja ”Windows Phone 7 for Android Developers” (26.3.2011: http://www.msdev.com/Directory/SeriesDescription.aspx?CourseId=169).

Lisäksi Microsoftin Channel 9 -sivustolta (http://channel9.msdn.com) löytyy sekalaisia videoita liittyen kaikkiin Microsoftin teknologioihin. Windows Phone –aiheiset videot löytää etsimällä Windows Phone –tagilla varustetut esimerkiksi seuraavasti: http://channel9.msdn.com/Tags/windows+phone. WP7-kehittäjälle oleellisia sivustoja ovat myös AppHub osoittessa: http://create.msdn.com, Marketpalcen web-versio osoitteessa: http://www.microsoft.com/windowsphone/en-us/apps/default.aspx ja Microsoftin virallinen Windows Phone –blogi osoitteessa: http://windowsteamblog.com/windows_phone.

LÄHTEET

http://advertising.microsoft.com

http://blogs.msdn.com

http://channel9.msdn.com

http://community.microsoftadvertising.com

http://create.msdn.com

http://en.wikipedia.org

http://msdn.microsoft.com

http://pubcenter.microsoft.com

http://windowsteamblog.com

http://www.dreamspark.com

http://www.gartner.com

http://www.infoworld.com

http://www.microsoft.com

http://www.msdev.com

http://www.silverlightshow.net

http://www.telecoms.com