Windows Phone 8 Succinctly Introduksjon

Det er et nytt barn i byen

Smarttelefoner og tabletter er uten tvil konger i forbrukermarkedet. Tradisjonelle datamaskiner vil ikke gå vekk når som helst, spesielt i næringslivet, men i mange tilfeller har mobile enheter erstattet det gamle "mus og tastatur" tilnærming med en mer moderne og intuitiv, basert på berørings- og naturlige grensesnitt. For sikkerheten var iPhone av Apple det produktet som tvang alle de andre selskapene til å revurdere mobilopplevelsen: først, med et nytt telefonkonsept, og for det andre, med ideen om applikasjoner og appbutikker. I disse dager er en av de viktigste hensynene når du velger en ny telefon, tilgjengeligheten og kvaliteten på appene, i stedet for bare funksjonene som tilbys av plattformen. Utviklere spiller en viktig rolle i dette.

Microsoft kan ha blitt med på festen litt sent, men det gjorde det med en ny og ny tilnærming. Microsoft utviklet Windows Mobile 7 da det innså at telefonen ikke ville være et tiltalende produkt for forbrukere som begynte å bli vant til iPhone- eller Android-enheter. Så utviklerne droppet prosjektet og startet fra bunnen av til å bygge en helt ny plattform: Windows Phone 7. Resultatet var veldig forskjellig fra de andre konkurrentene: Et nytt brukergrensesnitt, basert på en flat design stil kalt Microsoft Design stil (en gang kjent som Metro); og dyp integrasjon med sosiale nettverk og alle Microsoft-tjenestene, som Office, SkyDrive og Xbox.

Den nåværende versjonen av plattformen (som vil bli dekket i denne serien) er Windows Phone 8; i midten lanserte Microsoft en oppdatering kalt Windows Phone 7.5 som la til mange nye forbrukerfunksjoner, men forbedret utviklingen av utvikleren ved å legge til mange nye APIer.

Windows Phone 8 er en ny start for plattformen: Microsoft har forlatt den gamle stabelen av teknologier som brukes i Windows Phone 7 (Windows Mobile-kjernen, Silverlight, XNA) for å omfavne de nye funksjonene introdusert i Windows 8, som den nye kjernen, den Windows Runtime, og den opprinnelige koden (C ++) -støtten.

Av denne grunn er Windows Phone 8 ikke tilgjengelig som en oppdatering for gamle Windows Phone 7-enheter. For å hjelpe brukerne i overgangen, har Microsoft gitt ut en mellomliggende oppdatering kalt Windows Phone 7.8, som har portet noen av de nye Windows Phone 8-funksjonene (som de nye Tileformatene) til de gamle enhetene.

Siden utgivelsen av Windows Phone 8 har Microsoft utgitt tre oppdateringer:

  • Oppdater 1 (eller GDR1), som ga noen forbedringer i Internet Explorer, Wi-Fi-tilkobling og meldingsopplevelse
  • Oppdater 2 (eller GDR2), som forbedret støtten for Google-kontoer, Xbox Music og Skype, la til FM-radiostøtte og utvidet tilgjengeligheten av Data Sense-applikasjonen for å holde oversikt over datatrafikken
  • Oppdater 3 (eller GDR3), som har lagt til støtte for en ny oppløsning (1080p), kjøremodus, skjermlåsretning og bedre lagringsadministrasjon, og forbedret Bluetooth og Wi-Fi-bunken

Maskinvaren

Å snakke om maskinvaren er viktig fordi den er strengt knyttet til utviklingsopplevelsen og funksjonene du kan bruke mens du utvikler et program. Med Windows Phone har Microsoft introdusert en tilnærming som er en hybrid mellom Apples og Googles.

Som Android kan Windows Phone kjøre på et bredt spekter av enheter, med forskjellige formfaktorer og maskinvarefunksjoner. Imidlertid har Microsoft definert et sett med maskinvareretningslinjer som alle produsenter må følge for å bygge en Windows Phone-enhet. I tillegg kan leverandører ikke tilpasse brukergrensesnittet eller operativsystemet; Alle telefonene, uavhengig av produsenten, tilbyr samme kjente brukeropplevelse.

På denne måten kan Windows Phone ta det beste fra begge verdener: Et stort utvalg av enheter betyr flere muligheter, fordi Windows Phone kan kjøre seg godt på billige og små enheter på samme måte som det fungerer bra på høyoppløselige, kraftige telefoner. En mer kontrollert maskinvare, i stedet, gjør utviklernes liv mye lettere, fordi de alltid kan stole på funksjoner som sensorer eller GPS.

Her er hovedtrekkene til en Windows Phone 8-enhet:

  • multi-core prosessor støtte (dual core og quad core prosessorer)
  • minst 512 MB RAM (vanligvis 1 GB eller 2 GB på high-end enheter)
  • minst 4 GB lagringsplass (som kan utvides med en Micro SD)
  • kamera
  • bevegelsessensorer (akselerometer, gyroskop, kompass), valgfritt
  • nærhetssensor, valgfritt
  • Wi-Fi og 3G-tilkobling
  • GPS
  • fire støttede oppløsninger: WVGA (480 × 800), WXGA (768 × 1280), 720p (720 × 1280), og 1080p (1080 × 1920)
  • tre maskinvareknapper: Tilbake, Start og Søk

Windows Runtime

Windows Runtime er det nye API-laget som Microsoft introduserte i Windows 8, og det er grunnlaget for en ny og mer moderne tilnærming til å utvikle applikasjoner. Faktisk, i motsetning til .NET-rammen, er det et innfødt lag, noe som betyr bedre ytelse. I tillegg støtter det et bredt spekter av APIer som dekker mange av de nye scenariene som har blitt introdusert de siste årene: geolocation, bevegelsessensorer, NFC og mye mer. Til slutt er den velegnet til asynkron og multi-threading scenarier som er et av de viktigste kravene til mobile applikasjoner; brukergrensesnittet må alltid være responsivt, uansett hvilken operasjon applikasjonen utfører.

Under hetten på operativsystemet har Microsoft introdusert Windows Phone Runtime. Sammenlignet med den opprinnelige Windows Runtime mangler det noen funksjoner (spesielt alle APIene som ikke gir mye mening på en telefon, for eksempel utskrift-APIer), men det legger til flere nye som er spesifikke for plattformen (som hubintegrasjon, kontakter og avtaler tilgang, etc.).

Microsoft møtte en utfordring under utviklingen av Windows Phone 8: det var allerede et stort antall programmer publisert på Windows Phone Store som var basert på "gamle" teknologier som Silverlight og XNA. For å unngå å tvinge utviklere til å skrive sine programmer fra bunnen, introduserte Microsoft tre funksjoner:

  • XAML-stakken er blitt portet direkte fra Windows Phone 7 i stedet for fra Windows 8. Dette betyr at XAML fremdeles administreres og ikke er innfødt, men den er helt justert med den forrige, slik at den for eksempel har funksjoner som atferd, hvilken støtte har bare blitt lagt til i Windows 8.1, er fortsatt tilgjengelig). På denne måten kan du gjenbruke alle XAMLene som er skrevet for Windows Phone 7-programmer uten å måtte endre det eller fikse det.
  • Takket være en funksjon som heter quirks modus, Programmer skrevet for Windows Phone 7 kan kjøre på Windows Phone 8-enheter uten å måtte bruke noen endringer i de fleste tilfeller. Denne modusen kan oversette Windows Phone 7 API-anrop til de relaterte Windows Runtime-ene.
  • Windows Phone Runtime inkluderer et lag som heter .NET for Windows Phone, som er delmengden av APIer som var tilgjengelige i Windows Phone 7. Takket være dette laget, kan du bruke de gamle APIene i et Windows Phone 8-program, selv om de har blitt erstattet av nye APIer i Windows Runtime . På denne måten kan du overføre de gamle programmene til den nye plattformen uten å måtte omskrive all koden.

Som den fulle Windows Runtime har Windows Phone 8 lagt til støtte for C++ som et programmeringsspråk, mens WinJS-lag, som er et bibliotek som lar utviklere lage Windows Store-apper ved hjelp av HTML og JavaScript, mangler. Hvis du vil utvikle Windows Phone-applikasjoner ved hjelp av webteknologi, må du stole på Nettleser kontroll (som innebærer en webvisning i programmet) og utnytte funksjoner som er gitt av rammer som PhoneGap.

Denne serien vil dekke utviklingen ved hjelp av C # som et programmeringsspråk og XAML som brukergrensesnitt. Vi snakker ikke om C ++ eller VB.NET (tilgjengelige APIer er de samme, så det blir enkelt å gjenbruke kunnskapen som er oppnådd ved å lese denne serien). I tillegg, siden denne serien handler om Windows Phone 8, vil jeg bare dekke Windows Runtime APIs. I de områdene hvor APIer er duplisert (som betyr at det er både Windows Runtime og .NET for Windows Phone APIs for å utføre samme oppgave, som lagring eller sensorer), vil jeg dekke kun Windows Runtime-ene.

Utviklingsverktøyene

Den offisielle plattformen for å utvikle Windows Phone applikasjoner er Visual Studio 2012, Selv om støtte også er lagt til i Visual Studio 2013 kommersielle versjoner. Den største forskjellen er at mens Visual Studio 2012 fortsatt lar deg åpne og lage Windows Phone 7-prosjekter, kan Visual Studio 2013 kun brukes til å utvikle Windows Phone 8-applikasjoner.

Det er ingen forskjeller mellom de to versjonene når vi snakker om utvikling av Windows Phone: siden SDK er det samme, får du de samme funksjonene i begge miljøer, så vi bruker Visual Studio 2012 som referanse for denne serien.

For å starte, må du laste ned Windows Phone 8 SDK fra den offisielle utviklerportalen. Denne nedlastingen er egnet for både nye utviklere og Microsoft-utviklere som allerede har en kommersiell versjon av Visual Studio 2012. Hvis du ikke allerede har Visual Studio installert, installerer installasjonen den gratis Express-versjonen. Ellers vil det bare installere SDK og emulatoren og legge dem til din eksisterende Visual Studio-installasjon.

Oppsettet vil også installere Blend for Windows Phone, et verktøy laget av Microsoft spesielt for designere. Det er en XAML visuell editor som gjør det enklere å lage et brukergrensesnitt for et Windows Phone-program. Hvis du er en utvikler, vil du nok mesteparten av tiden manuelt skrive XAML i Visual Studio-editoren, men det kan være en gyldig følgesvenn når det gjelder mer komplekse ting som å lage animasjoner eller administrere visuelle tilstander til en kontroll.

For å installere Windows Phone 8 SDK trenger du en datamaskin med Windows 8 Pro eller Windows 8 Enterprise 64-bit. Dette kreves siden emulatoren er basert på Hyper-V, som er Microsoft virtualiseringsteknologi som bare er tilgjengelig i profesjonelle versjoner av Windows. I tillegg er det et maskinvarebehov: CPUen din trenger å støtte Second Level Address Translation (SLAT), som er en CPU-funksjon som trengs for at Hyper-V skal kunne kjøre. Hvis du har en nyere datamaskin, trenger du ikke å bekymre deg; i utgangspunktet alle arkitekturer fra Intel i5 og videre støtter den. Ellers vil du fortsatt kunne installere og bruke SDK, men du trenger en ekte enhet for testing og feilsøking.

Du kan bruke et gratis verktøy som kalles Machine SLAT Status Kontroller for å finne ut om CPU-en tilfredsstiller SLAT-kravet.

Emulatoren

Testing og feilsøking av en Windows Phone-app på en enhet før du sender den til Windows Phone Store er et krav; bare på en ekte telefon vil du kunne teste den sanne ytelsen til applikasjonen. Under daglig utvikling kan bruk av enheten redusere deg. Dette er når emulatoren er nyttig, spesielt fordi du enkelt kan teste forskjellige forhold (som forskjellige oppløsninger, tap av tilkobling, etc.).

Emulatoren er en virtuell maskin drevet av Hyper-V som kan interagere med maskinvaren på datamaskinen din. Hvis du har en berøringsskjerm, kan du simulere telefonens berøringsskjerm. hvis du har en mikrofon, kan du simulere telefonmikrofonen osv. I tillegg kommer emulatoren med et sett med tilleggsverktøy som er nyttige for å teste noen scenarier som krever en fysisk enhet, for eksempel ved å bruke akselerometer eller GPS-sensor.

Du kan starte emulatoren direkte fra Visual Studio. Det finnes forskjellige versjoner av emulatoren som passer til de forskjellige resolusjonene og minnestørrelsene som er tilgjengelige på markedet.

Utvikleropplevelsen

Windows Phone-applikasjoner publiseres i Windows Phone Store, som er den primære måten for utviklere å distribuere sine applikasjoner. Det er imidlertid to unntak: bedriftsselskaper og utviklere for testformål.

For å begynne å publisere programmer, trenger du en utviklerkonto, som kan kjøpes fra den offisielle portalen. Gebyret er $ 19 per år, og lar deg publisere et ubegrenset antall betalte apper og maksimalt 100 gratis apper. Nylig har Microsoft slått sammen utvikleropplevelsen for sine to hovedplattformer. Dette betyr at med utviklerkontoen kan du også publisere Windows Store-apper for Windows 8 i Windows Store.

Utviklerkontoen er også knyttet til testing. Faktisk er telefonene som standard låst, og den eneste måten å installere tredjepartsapps på er via Windows Phone Store. Alle utviklere kan låse opp telefoner gratis, selv om de ikke har en betalt konto; Forskjellen er at med en gratis konto kan bare én telefon låses opp og bare to programmer kan lastes inn på telefonen. Med en betalt konto kan utviklere låse opptil tre telefoner og kan laste opp opptil 10 programmer på hver.

App-distribusjonen kan utføres direkte fra Visual Studio eller ved hjelp av et verktøy installert med SDK-kalt Programdistribusjon.

For å låse opp telefonen din trenger du et annet verktøy som følger med SDK-kalt Windows Phone Developer Registration. Du må koble telefonen til datamaskinen og logge på med den samme Microsoft-kontoen du har brukt til å registrere utviklerkontoen.

Søknaden som skal publiseres i Windows Phone Store må være sertifisert. Sertifiseringsprosessen (der både automatiske og manuelle tester utføres) sørger for at appen din er akseptabel fra en teknisk (appen ikke krasjer, brukeropplevelsen er ikke forvirrende, etc.) og innhold (ingen pornografi, nei overdreven vold) synspunkt.

Vi vil dekke flere detaljer om publiseringsprosessen i den siste artikkelen i denne serien.

Forhåndsvisning for utviklere

Microsoft har introdusert et nytt program for utviklere for å gi tidlig tilgang til nye Windows Phone oppdateringer. På den måten kan utviklere teste sine apper mot de nyeste OS-utgivelsene før de distribueres til brukere.

For å abonnere på programmet må du:

  • eie en utvikler ulåst telefon
  • har en betalt utvikler konto eller en gratis konto på App Studio, nettverktøyet som er opprettet av Microsoft for å enkelt lage Windows Phone apps uten programmeringsevner

Når du har oppfylt disse kravene, kan du laste ned Preview for Developers-programmet fra butikken.

Etter at du har installert det, må du kjøre det og aktivere forhåndsvisningsprogrammet ved å godta vilkårene. Når du har fullført prosessen, vil forhåndsoppdateringer leveres som vanlige oppdateringer: du må gå til oppdateringer delen av innstillinger side og se etter nye oppdateringer. På tidspunktet for skriving leverer Microsoft GDR3 med dette forhåndsvisningsprogrammet.

Bare husk at installering av en forhåndsvisning avhengig av produsenten kan ødelegge telefonens garanti. Det er en sikker prosedyre, men hvis noe går galt, kan produsenten kanskje ikke støtte deg.

Det første prosjektet

Utgangspunktet for alle Windows Phone-applikasjoner er Visual Studio 2012. La oss se hvordan du lager et prosjekt og hvordan det er strukturert.

Det første trinnet er å åpne Visual Studio 2012 og klikke på Nytt prosjekt. I de tilgjengelige installerte mallene finner du Windows telefon seksjon som inneholder alle maler relatert til Windows Phone utvikling.

Vi skal bruke den enkleste, Windows Phone app, som bare inneholder en startside. Gi det et navn og klikk OK. Du blir spurt hvilken plattform du skal støtte. Siden vi dekker Windows Phone 8-utvikling, velger du Windows Phone 8.0. Designeren vil automatisk laste startsiden og, i Solution Explorer vindu, vil du se prosjektets struktur. La oss se på det i detalj:

App.xaml

De App.xaml filen er utgangspunktet for hvert Windows Phone-program: det tar seg av å initialisere applikasjonen og rammen som vil inneholde sidene. I tillegg, siden en forekomst av app klasse (som er definert i App.xaml.cs fil) holdes alltid i live under programutførelsen, brukes den også til å definere alle de globale innstillingene. For eksempel kan du fange opp livssyklusarrangementet vi vil dekke senere i denne serien, eller du kan definere globale XAML-stiler og ressurser som vil bli brukt over hele applikasjonen.

MainPage.xaml

Dette er hovedsiden til programmet som startes etter at appen er initialisert. Det er standardinnstillingen som er inkludert i et prosjekt, men du kan legge til så mange sider som du vil ha i prosjektet ditt. Hver side har samme struktur: Den består av en fil med utvidelsen .XAML, som definerer brukergrensesnittet, og en fil med utvidelse .cs, hvilken er den kode bak som definerer logikken for å samhandle med brukergrensesnittet. Hver side arver fra en klasse som kalles PhoneApplicationPage som tilbyr innebygd støtte for egenskaper og hendelser som er knyttet til sidens livssyklus, for eksempel navigeringshendelser, orientering, systemstatusbehandling og mer.

Eiendeler

De Eiendeler mappen inneholder de grafiske ressursene i programmet. Standardprosjektet inneholder noen standard ikoner og bilder for de ulike flisestørrelsene og maler.

ressurser

De ressurser mappen inneholder alle filene som trengs for å håndtere lokalisering. Som standard finner du bare én fil som heter AppResources.resx, som inneholder basisspråket (vanligvis engelsk, men du kan velge en annen). Hvert annet språk støttes ved å legge til en ny AppResources-fil. De LocalizedStrings.cs filen legges som standard i prosjektets rot, og det er klassen som vi skal bruke til å håndtere lokalisering. Vi vil dekke dette dypere senere i denne serien.

Den mest åpenbare filen

Inne i Eiendommer mappe finner du en fil som heter WMAppManifest.xml. Dette er en veldig viktig fil. Det kalles manifest fordi det er vant til å erklære alle funksjonene og funksjonene i applikasjonen. Dens rolle er avgjørende i sertifiseringsprosessen; Takket være denne filen kan den automatiske prosessen trekke ut all nødvendig informasjon om programmet, som tittelen, støttede oppløsninger, funksjoner som brukes, osv..

Visual Studio 2012 gir en visuell editor for manifestfilen; bare dobbeltklikk på filen for å åpne den. Det er viktig å merke seg at ikke alle bruksscenarier støttes av den visuelle redaktøren. Noen ganger må vi manuelt redigere XML for å utvide programmet vårt.

Redaktøren er delt inn i fire forskjellige seksjoner:

  • Applikasjonsgrensesnitt: Fungerer all informasjon om utseendet på programmet når det er installert på telefonen, for eksempel tittelen, støttede oppløsninger, mal og standardbilder som skal brukes som hovedfilm.
  • Capabilities: Viser alle maskinvare- og programvarefunksjonene applikasjonen kan bruke, for eksempel kameraet, geolokaliseringstjenester, nettverk, etc. I de fleste tilfeller vil bruk av en funksjon som de spesifikke egenskapene ikke er erklært føre til et unntak når programmet utføres . I denne serien vil jeg merke hver gang vi bruker en funksjon som krever en bestemt evne.
  • Krav: Viser spesifikke maskinvarefunksjoner som kan brukes av appen din, som kameraet eller NFC. Hvis du stiller krav, kan ikke folk som eier telefoner uten disse spesifikke maskinvarefunksjonene laste ned appen.
  • emballasje: Definerer funksjonene til pakken som vil bli publisert i butikken, som forfatter, utgiver, standard språk og støttede språk.

Splash-skjermen

Hvis du allerede har utviklet apper til Windows Phone 7, bør du være kjent med stedsskjermbildet. Det er et statisk bilde som umiddelbart vises når appen er åpnet og forsvinner når appen er fullastet og klar til bruk.

Skjermbildet var en del av den vanlige Visual Studio-malen for Windows Phone 7-prosjekter, men den har blitt fjernet i Windows Phone 8-prosjekter. På grunn av ytelsesforbedringene som ble introdusert i Windows Runtime, starter appene nå mye raskere, så vanligvis er det ikke nødvendig med en splash-skjerm.

Hvis du trenger en splash-skjerm, må du manuelt legge den til prosjektet etter en bestemt navngivningskonvensjon: den må være i JPG-format, filnavnet må være SplashScreenImage.jpg, og den nødvendige oppløsningen er 768 × 1280. På denne måten blir bildet automatisk tilpasset oppløsningen til enheten. Hvis du vil ha full kontroll over enhetens oppløsning, kan du legge til tre forskjellige bilder, en for hver støttet oppløsning. I dette tilfellet er navngivningskonvensjonen å følge:

  • SplashScreenImage.screen-WVGA.jpg for 480 × 800 enheter.
  • SplashScreenImage.screen-WXGA.jpg for 768 × 1280 enheter.
  • SplashScreenImage.screen-720p.jpg for 720 × 1280 enheter.

1080p-oppløsningen, fra et aspektforholdssynspunkt, oppfører seg som 720p: Hvis applikasjonen din blir lansert på en 1080p-enhet, vil 720p-skjermen bli brukt hvis det finnes en.

Teste applikasjonen

Når du er klar til å teste programmet, kan du distribuere det på en enhet eller i emulatoren direkte fra Visual Studio. I verktøylinjeområdet finner du det som ser ut som en spilleknapp, sammen med en beskrivelse av et distribusjonsmål. Du kan velge mellom fem forskjellige mål: en ekte enhet, to versjoner av WVGA-emulatoren (en med 512 MB RAM og en med 1 GB RAM), en WXGA-emulator og en 720p-emulator. Fra tid til annen kan listen være lengre fordi Microsoft periodisk utgiver SDK-oppdateringer for å legge til nye emulatorer som samsvarer med den nye versjonen av operativsystemet. For eksempel har Microsoft allerede gitt ut en SDK-oppdatering som legger til emulatorbildene i samsvar med GDR2-utgivelsen.

Når programmet kjører i feilsøkingsmodus, blir to funksjoner automatisk aktivert for å hjelpe deg med å arbeide:

  • På høyre side av skjermen vises ytelsesteller som antall bilder per sekund eller minnebruk. De vil hjelpe deg med å identifisere potensielle ytelsesproblemer med appen din (se bildet nedenfor for mer detaljert informasjon).
  • Telefonen eller emulatoren vil aldri bli suspendert - funksjonen "auto lås" som slår av skjermen etter at den ikke er brukt, er vanligvis aktivert på enheter, men i feilsøkingsmodus er denne funksjonen deaktivert.

En rask oppskrift

I denne første artikkelen har vi begynt å trives med noen viktige konsepter at hver Windows Phone-utvikler burde være kjent med:

  • Vi har lært de viktigste programvare- og maskinvarefunksjonene til plattformen som utviklere kan dra nytte av.
  • Vi diskuterte Windows Runtime som er kjernen i den nyeste Microsoft-teknologien, som Windows 8 og Windows Phone 8.
  • Vi har sett hvordan du begynner å jobbe med Windows Phone: hvilke verktøy du kan laste ned og installere, hvordan du oppretter det første prosjektet og strukturen i en Windows Phone-applikasjon.

Denne opplæringen representerer et kapittel fra Windows Phone 8 Succinctly, en gratis eBook fra teamet ved Syncfusion.