Windows Phone 8 Succinctly Introduktion

Det finns en ny Kid i staden

Smartphones och surfplattor är utan tvekan konungen på konsumentmarknaden. Traditionella datorer kommer inte att gå bort när som helst, särskilt i näringslivet, men i många scenarier har mobila enheter ersatt det gamla "mus och tangentbord" -metoden med en mer modern och intuitiv, baserad på beröring och naturliga gränssnitt. Självklart var Apple iPhone den produkt som tvingade alla andra företag att ompröva mobilupplevelsen: först med ett nytt telefonkoncept och för det andra med idéen om applikationer och appbutiker. Idag är en av de viktigaste övervägandena när du väljer en ny telefon tillgängligheten och kvaliteten på appar, snarare än bara de funktioner som plattformen erbjuder. Utvecklare spelar en viktig roll i detta.

Microsoft kanske har gått med på festen lite sent, men det gjorde det med ett nytt och nytt tillvägagångssätt. Microsoft utvecklade Windows Mobile 7 när det insåg att telefonen inte skulle vara en tilltalande produkt för konsumenter som började vänja sig på iPhone eller Android-enheter. Så dess utvecklare släppte projektet och började från början för att bygga en helt ny plattform: Windows Phone 7. Resultatet var väldigt annorlunda från andra konkurrenter: ett nytt användargränssnitt baserat på en platt designstil kallad Microsoft Design-stil (en gång känd som Metro); och djup integration med sociala nätverk och alla Microsoft-tjänster, som Office, SkyDrive och Xbox.

Den nuvarande versionen av plattformen (som kommer att omfattas av denna serie) är Windows Phone 8; i mitten släppte Microsoft en uppdatering kallad Windows Phone 7.5 som lade till många nya konsumentegenskaper men förbättrade framför allt utvecklarens upplevelse genom att lägga till många nya API.

Windows Phone 8 är en ny start för plattformen: Microsoft har övergivit den gamla tekniken som används i Windows Phone 7 (Windows Mobile-kärnan, Silverlight, XNA) för att omfamna de nya funktionerna som introduceras i Windows 8, som den nya kärnan, den Windows Runtime och stöd för inbyggd kod (C ++).

Av denna anledning är Windows Phone 8 inte tillgänglig som en uppdatering för gamla Windows Phone 7-enheter. För att hjälpa användare i övergången har Microsoft släppt en mellanliggande uppdatering som heter Windows Phone 7.8, som har portat några av de nya Windows Phone 8-funktionerna (som de nya plattformarna) till de gamla enheterna.

Sedan utgåvan av Windows Phone 8 har Microsoft släppt tre uppdateringar:

  • Uppdatering 1 (eller GDR1), som lagt till några förbättringar i Internet Explorer, Wi-Fi-anslutning och meddelandeupplevelse
  • Uppdatering 2 (eller GDR2), som förbättrade stödet för Google-konton, Xbox Music och Skype, lade till FM-radiostöd och utvidgade tillgängligheten av Data Sense-applikationen för att hålla reda på datatrafik
  • Uppdatera 3 (eller GDR3), som lagde till stöd för en ny upplösning (1080p), körläge, skärmslåsorientering och bättre lagringshantering och förbättrade Bluetooth och Wi-Fi-stacken

Hårdvaran

Att prata om hårdvaran är viktig eftersom den är strikt kopplad till utvecklingsupplevelsen och de funktioner du kan använda när du utvecklar en applikation. Med Windows Phone har Microsoft infört ett tillvägagångssätt som är en hybrid mellan Apples och Googles.

Liksom Android kan Windows Phone köras på ett brett utbud av enheter, med olika formfaktorer och hårdvarukapacitet. Microsoft har emellertid definierat en uppsättning hårdvaruriktlinjer som alla tillverkare behöver följa för att bygga en Windows Phone-enhet. Dessutom kan leverantörer inte anpassa användargränssnittet eller operativsystemet. alla telefoner, oavsett tillverkare, erbjuder samma kända användarupplevelse.

På detta sätt kan Windows Phone ta det bästa av båda världarna: ett brett spektrum av enheter betyder fler möjligheter, eftersom Windows Phone kan fungera bra på billiga och små enheter på samma sätt som det fungerar bra på högupplösta, kraftfulla telefoner. En mer kontrollerad maskinvara gör istället utvecklarens liv mycket enklare eftersom de alltid kan räkna med funktioner som sensorer eller GPS.

Här är viktiga funktioner i en Windows Phone 8-enhet:

  • multi-core processor support (dual core och quad core processorer)
  • minst 512 MB RAM (vanligtvis 1 GB eller 2 GB på avancerade enheter)
  • minst 4 GB lagring (som kan utökas med en Micro SD)
  • kamera
  • rörelse sensorer (accelerometer, gyroskop, kompass), valfritt
  • närhetssensor, valfritt
  • Wi-Fi och 3G-anslutning
  • GPS
  • fyra stödda resolutioner: WVGA (480 × 800), WXGA (768 × 1280), 720p (720 × 1280) och 1080p (1080 × 1920)
  • tre hårdvaruknappar: Tillbaka, Start och Sök

Windows Runtime

Windows Runtime är det nya API-lagret som Microsoft introducerade i Windows 8, och det är grunden till ett nytt och mer modernt sätt att utveckla applikationer. I själva verket är det, i motsats till .NET-ramverket, ett inbyggt lager, vilket innebär bättre prestanda. Dessutom stödjer det ett brett utbud av API som täcker många av de nya scenarier som har introducerats de senaste åren: geolocation, rörelsessensorer, NFC och mycket mer. I slutändan är den väl lämpad för asynkrona och multi-threading scenarier som är en av de viktigaste kraven för mobila applikationer. användargränssnittet måste alltid vara responsivt, oavsett vilken operation applikationen utför.

Under kåpan i operativsystemet har Microsoft introducerat Windows Phone Runtime. Jämfört med den ursprungliga Windows Runtime saknar det några funktioner (specifikt alla API-skivor som inte har stor betydelse i en telefon, till exempel utskrift API), men det lägger till flera nya specifika för plattformen (som nav-integration, kontakter och tillträde till möten etc.).

Microsoft mötte en utmaning under utvecklingen av Windows Phone 8: det var redan ett stort antal applikationer som publicerades i Windows Phone Store som baserades på "gamla" teknologier som Silverlight och XNA. För att undvika att tvinga utvecklare att skriva sina appar från början, introducerade Microsoft tre funktioner:

  • XAML-stacken har portat direkt från Windows Phone 7 istället för från Windows 8. Det betyder att XAML fortfarande hanteras och inte är inbyggd, men den är helt inriktad på den föregående så att den till exempel har funktioner som beteenden, vilket stöd har bara lagts till i Windows 8.1, finns fortfarande tillgängliga). På så sätt kan du återanvända alla XAML skrivna för Windows Phone 7-program utan att behöva ändra det eller fixa det.
  • Tack vare en funktion som heter quirks läge, Program som är skrivna för Windows Phone 7 kan köras på Windows Phone 8-enheter utan att behöva tillämpa någon ändring i de flesta fall. Det här läget kan översätta Windows Phone 7 API-samtal till de relaterade Windows Runtime-enheterna.
  • Windows Phone Runtime innehåller ett lager som heter .NET för Windows Phone, vilket är delmängden av API-skivor som var tillgängliga i Windows Phone 7. Tack vare det här laget kan du använda de gamla API-erna i en Windows Phone 8-applikation, även om de har ersatts av nya API i Windows Runtime . På så sätt kan du migrera dina gamla applikationer till den nya plattformen utan att behöva skriva om hela koden.

Som den fulla Windows Runtime har Windows Phone 8 lagt till stöd för C++ som ett programmeringsspråk, medan WinJS-lager, vilket är ett bibliotek som tillåter utvecklare att skapa Windows Store-appar med HTML och JavaScript, saknas. Om du vill utveckla Windows Phone-program med webbteknik måste du lita på Webbläsare kontroll (som innebär en webbvy i programmet) och utnyttja funktioner som tillhandahålls av ramar som PhoneGap.

Denna serie kommer att täcka utvecklingen med C # som ett programmeringsspråk och XAML som användargränssnitt. Vi kommer inte prata om C ++ eller VB.NET (de tillgängliga API-erna är desamma, så det är lätt att återanvända kunskapen som förvärvats genom att läsa den här serien). Dessutom, eftersom den här serien handlar om Windows Phone 8, täcker jag bara Windows Runtime API. I de områden där API: erna dupliceras (vilket betyder att det finns både Windows Runtime och .NET för Windows Phone APIs för att utföra samma uppgift, som lagring eller sensorer), kommer jag bara att täcka Windows Runtime-enheterna.

Utvecklingsverktygen

Den officiella plattformen för att utveckla Windows Phone-applikationer är Visual Studio 2012, även om stöd har också lagts till i Visual Studio 2013 kommersiella versioner. Den stora skillnaden är att Visual Studio 2012 fortfarande tillåter dig att öppna och skapa Windows Phone 7-projekt, Visual Studio 2013 kan bara användas för att utveckla Windows Phone 8-applikationer.

Det finns ingen skillnad mellan de två versionerna när vi pratar om utveckling av Windows Phone: eftersom SDK är densamma får du samma funktioner i båda miljöerna, så vi använder Visual Studio 2012 som referens för denna serie.

För att starta måste du hämta Windows Phone 8 SDK från den officiella utvecklarportalen. Denna nedladdning är lämplig för både nya utvecklare och Microsoft-utvecklare som redan har en kommersiell version av Visual Studio 2012. Om du inte redan har Visual Studio installerat installeras installationen av den fria Express-versionen. annars kommer det helt enkelt att installera SDK och emulatorn och lägga till dem i din befintliga Visual Studio-installation.

Installationen kommer också att installeras Blanda för Windows Phone, ett verktyg som tillverkats av Microsoft specifikt för designers. Det är en XAML visuell redigerare som gör det enklare att skapa ett användargränssnitt för en Windows Phone-applikation. Om du är en utvecklare brukar du förmodligen spendera det mesta av XAML manuellt i Visual Studio-redigeraren, men det kan vara en giltig följeslagare när det gäller mer komplexa saker som att skapa animeringar eller hantera visuella tillstånd av en kontroll.

För att installera Windows Phone 8 SDK behöver du en dator med Windows 8 Pro eller Windows 8 Enterprise 64-bitars. Detta krävs eftersom emulatorn är baserad på Hyper-V, vilken är Microsoft virtualiseringsteknik som endast är tillgänglig i professionella versioner av Windows. Dessutom finns det ett krav på hårdvara: din CPU behöver stödja den andra nivåns adress-översättning (SPJÄLA), vilket är en CPU-funktion som krävs för att Hyper-V ska kunna köras korrekt. Om du har en nyare dator behöver du inte oroa dig. i princip alla arkitekturer från Intel i5 och stödjer den vidare. Annars kan du fortfarande installera och använda SDK, men du behöver en riktig enhet för att testa och felsöka.

Du kan använda ett gratis verktyg som kallas Machine SLAT Status Kontrollera om din CPU uppfyller SLAT-kravet.

Emulatorn

Testa och felsöka en Windows Phone-app på en enhet innan du skickar den till Windows Phone Store är ett krav. bara på en riktig telefon kan du testa den verkliga prestandan i applikationen. Under den dagliga utvecklingen kan användningen av enheten sakta ner dig. Det här är när emulatorn är användbar, särskilt för att du enkelt kan testa olika förhållanden (som olika upplösningar, förlust av anslutning etc.).

Emulatorn är en virtuell maskin som drivs av Hyper-V som kan interagera med hårdvaran på din dator. Om du har en pekskärm kan du simulera telefonens pekskärm. Om du har en mikrofon kan du simulera telefonmikrofonen etc. Dessutom kommer emulatorn med en uppsättning extra verktyg som är till hjälp för att testa vissa scenarier som skulle kräva en fysisk enhet, till exempel med hjälp av accelerometern eller GPS-sensorn.

Du kommer att kunna starta emulatorn direkt från Visual Studio. Det finns olika versioner av emulatorn som matchar de olika upplösningarna och minnesstorlekarna som finns tillgängliga på marknaden.

Utvecklarupplevelsen

Windows Phone-program publiceras i Windows Phone Store, vilket är det primära sättet för utvecklare att distribuera sina applikationer. Det finns emellertid två undantag: företagsföretag och utvecklare för teständamål.

För att börja publicera applikationer behöver du ett utvecklarkonto, som kan köpas från den officiella portalen. Avgiften är 19 dollar per år och tillåter dig att publicera ett obegränsat antal betalade appar och högst 100 gratis appar. Nyligen har Microsoft slagit samman utvecklaren för sina två huvudplattformar. Det innebär att med utvecklarkontot kan du också publicera Windows Store-appar för Windows 8 i Windows Store.

Utvecklarkontot är också kopplat till testning. Faktum är att telefoner är låsta, och det enda sättet att installera program från tredje part är via Windows Phone Store. Alla utvecklare kan låsa upp telefoner gratis, även om de inte har ett betalt konto. Skillnaden är att med ett gratis konto kan endast en telefon låsas upp och endast två program kan laddas i telefonen. Med ett betald konto kan utvecklarna låsa upp upp till tre telefoner och kan ladda upp till 10 program på vardera.

Appdistributionen kan utföras direkt från Visual Studio eller genom att använda ett verktyg som är installerat med den SDK som heter Application Deployment.

För att låsa upp din telefon behöver du ett annat verktyg som levereras med SDK-namnet Windows Phone Developer Registration. Du måste ansluta telefonen till datorn och logga in med samma Microsoft-konto som du har använt för att registrera utvecklarkontot.

Ansökan som ska publiceras i Windows Phone Store måste vara certifierad. Certifieringsprocessen (där både automatiska och manuella test utförs) ser till att din app är acceptabel från en teknisk (appen kraschar inte, användarupplevelsen är inte förvirrande etc.) och innehåll (ingen pornografi, nej överdriven våld) synvinkel.

Vi kommer att täcka mer information om publiceringsprocessen i den senaste artikeln i den här serien.

Förhandsgranska för utvecklare

Microsoft har infört ett nytt program för utvecklare att ge tidig tillgång till nya Windows Phone-uppdateringar. På så sätt kan utvecklare testa sina appar mot de senaste operativsystemen innan de distribueras till användarna.

För att prenumerera på programmet måste du:

  • äger en utvecklad upplåst telefon
  • ha ett betalt utvecklare konto eller ett gratis konto på App Studio, webbverktyget skapat av Microsoft för att enkelt skapa Windows Phone apps utan programmeringsförmåga

När du har uppfyllt dessa krav kan du hämta programmet Preview for Developers från Store.

Efter installationen måste du köra den och aktivera förhandsgranskningsprogrammet genom att acceptera villkoren. När du har slutfört processen kommer förhandsgranskningsuppdateringar att levereras som vanliga uppdateringar: du måste gå till uppdateringar del av inställningar sida och kolla efter nya uppdateringar. I skrivande stund levererar Microsoft GDR3 med detta förhandsgranskningsprogram.

Kom bara ihåg att beroende på tillverkaren kan installationen av en förhandsgranskning avbryta telefonens garanti. Det är ett säkert förfarande, men om något går fel kan din tillverkare kanske inte stödja dig.

Det första projektet

Utgångspunkten för varje Windows Phone-applikation är Visual Studio 2012. Låt oss se hur du skapar ett projekt och hur det är strukturerat.

Det första steget är att öppna Visual Studio 2012 och klicka på Nytt projekt. I de tillgängliga installerade mallarna hittar du Windows-telefon avsnitt som innehåller alla mallar relaterade till utveckling av Windows Phone.

Vi ska använda den enklaste, Windows Phone app, som bara innehåller en startsida. Ge det ett namn och klicka ok. Du kommer att bli frågad vilken plattform du ska stödja. Eftersom vi täcker Windows Phone 8-utveckling väljer du Windows Phone 8.0. Designern laddar automatiskt startsidan och, i Lösningsutforskare fönster, ser du projektets struktur. Låt oss titta på det i detalj:

App.xaml

De App.xaml filen är utgångspunkten för alla Windows Phone-program: det tar hand om att initiera programmet och ramen som innehåller sidorna. Plus, sedan en instans av App klass (som definieras i App.xaml.cs filen) hålls alltid levande under programkörningen, det används också för att definiera alla globala inställningar. Till exempel kan du fånga upp livscykelhändelsen som vi kommer att täcka senare i den här serien, eller du kan definiera globala XAML-stilar och resurser som kommer att användas över hela applikationen.

MainPage.xaml

Detta är huvudsidan för programmet som startas efter att appen har initierats. Det är standard som ingår i ett projekt, men du kan lägga till så många sidor som du vill ha i ditt projekt. Varje sida har samma struktur: Den består av en fil med förlängningen .XAML, som definierar användargränssnittet och en fil med tillägg .cs, vilken är kod bakom som definierar logiken för att interagera med användargränssnittet. Varje sida ärver från en klass som heter PhoneApplicationPage som erbjuder inbyggt stöd för egenskaper och händelser som är kopplade till sidans livscykel, t.ex. navigeringshändelser, orientering, hantering av systemfältet och mer.

Tillgångar

De Tillgångar mappen innehåller programmets grafiska tillgångar. Standardprojektet innehåller vissa standardikoner och bilder för de olika Tile-storlekarna och mallarna.

Medel

De Medel mappen innehåller alla filer som behövs för att hantera lokalisering. Som standard hittar du bara en fil som heter AppResources.resx, som innehåller grundspråket (vanligtvis engelska, men du kan välja en annan). Alla andra språk stöds genom att lägga till en ny AppResources-fil. De LocalizedStrings.cs filen läggs som standard i projektets rot, och det är den klass som vi ska använda för att hantera lokalisering. Vi kommer att täcka det här djupt senare i denna serie.

Den manifesterande filen

Inuti Egenskaper mapp hittar du en fil som heter WMAppManifest.xml. Det här är en mycket viktig fil. Den kallas manifest eftersom den används för att deklarera alla funktioner och funktioner i applikationen. Dess roll är avgörande under certifieringsprocessen. Tack vare den här filen kan den automatiska processen extrahera all nödvändig information om programmet, till exempel dess titel, stödda resolutioner, funktioner som används etc.

Visual Studio 2012 ger en visuell redaktör för manifestfilen; dubbelklicka på filen för att öppna den. Det är viktigt att notera att inte alla användarfallsscenarier stöds av visuell redaktör. Ibland måste vi manuellt redigera XML för att utöka vår applikation.

Redaktören är uppdelad i fyra olika avsnitt:

  • Application UI: Innehåller all information om applikationens utseende när den är installerad på telefonen, som titeln, stödsupplösningar, mall och standardbilder som ska användas som huvudkakel.
  • Förmågor: Visar alla maskinvaru- och programvaruegenskaper som applikationen kan använda, till exempel kameran, geolokaliseringstjänster, nätverk etc. I de flesta fall kan det medföra ett undantag när programmet körs med hjälp av en funktion för vilken de specifika funktionerna inte har deklarerats. . I denna serie kommer jag att notera varje gång vi använder en funktion som kräver en specifik förmåga.
  • Krav: Visar specifika hårdvarufunktioner som kan användas av din app, som kameran eller NFC. Om du ställer in krav kan inte personer som äger telefoner utan dessa specifika hårdvarufunktioner ladda ner appen.
  • Förpackning: Definierar funktionerna i paketet som kommer att publiceras i affären, som författare, utgivare, standardspråk och språk som stöds.

Splash-skärmen

Om du redan har utvecklat appar för Windows Phone 7 ska du vara bekant med stänkskärmen. Det är en statisk bild som visas omedelbart när appen öppnas och försvinner när appen är fulladdat och redo att användas.

Stänkskärmen var en del av den vanliga Visual Studio-mallen för Windows Phone 7-projekt, men den har tagits bort i Windows Phone 8-projekt. På grund av de förbättringar av prestanda som introducerades i Windows Runtime startar apperna nu mycket snabbare, så vanligtvis behövs ingen stänkskärm.

Om du behöver en stänkskärm måste du manuellt lägga till den i projektet enligt en specifik namnkonvention: den måste vara i JPG-format, filnamnet måste vara SplashScreenImage.jpg, och den önskade upplösningen är 768 × 1280. På så sätt anpassas bilden automatiskt till enhetens upplösning. Om du vill ha full kontroll över enhetens upplösning kan du lägga till tre olika bilder, en för varje upplösning som stöds. I detta fall är namngivningskonventionen att följa:

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

1080p-upplösningen, från en bildförhållande, uppför sig som 720p: om din applikation lanseras på en 1080p-enhet, kommer 720p-skärmen att användas om en finns.

Testa applikationen

När du är redo att testa din ansökan kan du distribuera den på en enhet eller i emulatorn direkt från Visual Studio. I verktygsfältet hittar du det som ser ut som en spellknapp, tillsammans med en beskrivning av ett implementeringsmål. Du kan välja mellan fem olika mål: en riktig enhet, två versioner av WVGA-emulatorn (en med 512 MB RAM och en med 1 GB RAM), en WXGA-emulator och en 720p-emulator. Från tid till annan kan listan vara längre eftersom Microsoft periodiskt släpper ut SDK-uppdateringar för att lägga till nya emulatorer som matchar den nya versionen av operativsystemet. Till exempel har Microsoft redan släppt en SDK-uppdatering som lägger till emulatorns bilder i linje med GDR2-utgåvan.

När programmet körs i debug-läge aktiveras två funktioner automatiskt för att hjälpa dig att arbeta:

  • På höger sida av skärmen visas prestandomätare som antalet bilder per sekund eller minnesanvändningen. De hjälper dig att identifiera potentiella prestationsproblem med din app (se bilden nedan för mer detaljerad information).
  • Telefonen eller emulatorn kommer aldrig att stängas av - funktionen "auto-lås" som stänger av skärmen när den inte används är vanligtvis aktiverad på enheter, men i felsökningsläget är den här funktionen inaktiverad.

En snabb återställning

I den här första artikeln har vi börjat bli bekväma med några viktiga begrepp som varje Windows Phone-utvecklare ska vara bekant med:

  • Vi har lärt oss de viktigaste mjukvarufunktionerna på plattformen som utvecklare kan dra nytta av.
  • Vi diskuterade Windows Runtime som är kärnan i den senaste Microsoft-tekniken, som Windows 8 och Windows Phone 8.
  • Vi har sett hur du börjar arbeta med Windows Phone: vilka verktyg som ska hämtas och installeras, hur man skapar det första projektet och strukturen i ett Windows Phone-program.

Denna handledning representerar ett kapitel från Windows Phone 8 Succinctly, en gratis eBook från laget vid Syncfusion.