Smartphones en tablets zijn zonder enige twijfel de koningen van de consumentenmarkt. Traditionele computers zullen niet snel verdwijnen, vooral in het bedrijfsleven, maar in veel scenario's hebben mobiele apparaten de oude 'muis en toetsenbord'-benadering vervangen door een modernere en intuïtievere benadering, gebaseerd op aanraking en natuurlijke interfaces. Natuurlijk was de iPhone van Apple het product dat alle andere bedrijven dwong om de mobiele ervaring opnieuw te bekijken: ten eerste met een nieuw telefoonconcept en ten tweede met het idee van toepassingen en app stores. Tegenwoordig is een van de belangrijkste overwegingen bij het kiezen van een nieuwe telefoon de beschikbaarheid en kwaliteit van de apps in plaats van alleen de functies die het platform biedt. Ontwikkelaars spelen hierin een belangrijke rol.
Microsoft is misschien wat later lid geworden van de partij, maar heeft dit met een frisse en nieuwe aanpak gedaan. Microsoft ontwikkelde Windows Mobile 7 toen het besefte dat de telefoon geen aantrekkelijk product zou zijn voor consumenten die wensten te wennen aan iPhone- of Android-apparaten. Dus de ontwikkelaars hebben het project laten vallen en zijn van nul begonnen om een volledig nieuw platform te bouwen: Windows Phone 7. Het resultaat was heel anders dan de andere concurrenten: een nieuwe gebruikersinterface, gebaseerd op een platte ontwerpstijl genaamd Microsoft Design-stijl (ooit bekend als Metro); en diepe integratie met sociale netwerken en alle Microsoft-services, zoals Office, SkyDrive en Xbox.
De huidige versie van het platform (die in deze serie wordt behandeld) is Windows Phone 8; in het midden heeft Microsoft een update uitgebracht met de naam Windows Phone 7.5 die veel nieuwe consumentenfuncties heeft toegevoegd, maar vooral de ontwikkelaarervaring heeft verbeterd door veel nieuwe API's toe te voegen.
Windows Phone 8 is een nieuwe start voor het platform: Microsoft heeft de oude stapel technologieën die wordt gebruikt in Windows Phone 7 (de Windows Mobile-kernel, Silverlight, XNA) verlaten om de nieuwe functies te omarmen die in Windows 8 zijn geïntroduceerd, zoals de nieuwe kernel, de Windows Runtime en ondersteuning voor native code (C ++).
Om deze reden is Windows Phone 8 niet beschikbaar als een update voor oude Windows Phone 7-apparaten. Om gebruikers bij de overgang te helpen, heeft Microsoft een tussenliggende update uitgebracht, Windows Phone 7.8 genaamd, die enkele van de nieuwe Windows Phone 8-functies (zoals de nieuwe Tile-formaten) naar de oude apparaten heeft geport..
Sinds de release van Windows Phone 8 heeft Microsoft drie updates uitgebracht:
Praten over de hardware is belangrijk omdat het strikt verbonden is met de ontwikkelervaring en de functies die u kunt gebruiken bij het ontwikkelen van een applicatie. Met Windows Phone heeft Microsoft een aanpak geïntroduceerd die een hybride is tussen die van Apple en Google.
Net als Android kan Windows Phone op een groot aantal apparaten worden uitgevoerd, met verschillende vormfactoren en hardwaremogelijkheden. Microsoft heeft echter een reeks hardwarerichtlijnen gedefinieerd die alle fabrikanten moeten volgen om een Windows Phone-apparaat te bouwen. Bovendien kunnen leveranciers de gebruikersinterface of het besturingssysteem niet aanpassen; alle telefoons, ongeacht de producent, bieden dezelfde vertrouwde gebruikerservaring.
Op deze manier kan Windows Phone het beste uit beide werelden halen: een breed scala aan apparaten betekent meer kansen, omdat Windows Phone goed kan draaien op goedkope en kleine apparaten, net zoals het werkt op krachtige telefoons met een hoge resolutie. In plaats daarvan maakt een meer gecontroleerde hardware het leven van ontwikkelaars een stuk eenvoudiger, omdat ze altijd kunnen rekenen op functies zoals sensoren of GPS.
Dit zijn de belangrijkste kenmerken van een Windows Phone 8-apparaat:
De Windows Runtime is de nieuwe API-laag die Microsoft heeft geïntroduceerd in Windows 8 en vormt de basis voor een nieuwe en modernere benadering van het ontwikkelen van applicaties. In feite is het, in tegenstelling tot het .NET-framework, een native laag, wat betere prestaties betekent. Bovendien ondersteunt het een breed scala aan API's die veel van de nieuwe scenario's dekken die de afgelopen jaren zijn geïntroduceerd: geolocatie, bewegingssensoren, NFC en nog veel meer. Uiteindelijk is het uitermate geschikt voor asynchrone en multithreading-scenario's die een van de belangrijkste vereisten zijn voor mobiele toepassingen; de gebruikersinterface moet altijd responsief zijn, ongeacht de werking van de applicatie.
Onder de motorkap van het besturingssysteem heeft Microsoft de Windows Phone Runtime. In vergelijking met de originele Windows Runtime ontbreken er enkele functies (met name alle API's die niet veel zin hebben op een telefoon, zoals het afdrukken van API's), maar het voegt verschillende nieuwe toe die specifiek zijn voor het platform (zoals hub-integratie, contacten en toegang tot afspraken, etc.).
Microsoft stond voor een uitdaging tijdens de ontwikkeling van Windows Phone 8: er was al een groot aantal applicaties gepubliceerd in de Windows Phone Store die waren gebaseerd op de "oude" technologieën zoals Silverlight en XNA. Om te voorkomen dat ontwikkelaars gedwongen worden hun apps helemaal opnieuw te schrijven, introduceerde Microsoft drie functies:
Net als de volledige Windows Runtime heeft Windows Phone 8 ondersteuning toegevoegd C++ als een programmeertaal, terwijl de WinJS-laag, dat is een bibliotheek die ontwikkelaars toelaat om Windows Store-apps te maken met HTML en JavaScript, ontbreekt. Als u Windows Phone-applicaties wilt ontwikkelen met behulp van webtechnologieën, moet u vertrouwen op de Webbrowser controle (die een webweergave insluit in de toepassing) en gebruik maken van functies die worden geboden door frameworks zoals PhoneGap.
Deze serie behandelt de ontwikkeling met C # als een programmeertaal en XAML als een taal voor de gebruikersinterface. We zullen niet praten over C ++ of VB.NET (de beschikbare API's zijn hetzelfde, dus het zal gemakkelijk zijn om de kennis die door het lezen van deze serie is verworven opnieuw te gebruiken). En aangezien deze serie over Windows Phone 8 gaat, zal ik alleen de Windows Runtime-API's behandelen. In de gebieden waar API's worden gedupliceerd (wat inhoudt dat er zowel Windows Runtime- als .NET voor Windows Phone API's zijn om dezelfde taak uit te voeren, zoals opslag of sensoren), zal ik alleen de Windows Runtime-versies behandelen.
Het officiële platform voor het ontwikkelen van Windows Phone-applicaties is Visual Studio 2012, hoewel er ook ondersteuning is toegevoegd aan de commerciële versies van Visual Studio 2013. Het grote verschil is dat terwijl Visual Studio 2012 u nog steeds in staat stelt om Windows Phone 7-projecten te openen en te maken, Visual Studio 2013 alleen kan worden gebruikt om Windows Phone 8-toepassingen te ontwikkelen.
Er zijn geen verschillen tussen de twee versies wanneer we het hebben over de ontwikkeling van Windows Phone: aangezien de SDK hetzelfde is, krijgt u dezelfde functies in beide omgevingen, dus gebruiken we Visual Studio 2012 als een referentie voor deze serie.
Om te beginnen moet u de Windows Phone 8 SDK downloaden van de officiële ontwikkelaarportal. Deze download is geschikt voor zowel nieuwe ontwikkelaars als Microsoft-ontwikkelaars die al een commerciële versie van Visual Studio 2012 hebben. Als u Visual Studio nog niet hebt geïnstalleerd, installeert de installatie de gratis Express-versie; anders installeert u eenvoudig de SDK en de emulator en voegt u deze toe aan uw bestaande Visual Studio-installatie.
De installatie zal ook worden geïnstalleerd Blend voor Windows Phone, een tool gemaakt door Microsoft specifiek voor ontwerpers. Het is een XAML-visuele editor die het gemakkelijker maakt om een gebruikersinterface te maken voor een Windows Phone-toepassing. Als u een ontwikkelaar bent, besteedt u waarschijnlijk het grootste deel van de tijd handmatig met het schrijven van XAML in de Visual Studio-editor, maar het kan een geldige aanvulling zijn als het gaat om complexere zaken zoals het maken van animaties of het beheren van de visuele status van een besturingselement.
Om de Windows Phone 8 SDK te installeren, hebt u een computer met Windows 8 Pro of Windows 8 Enterprise 64-bit. Dit is vereist omdat de emulator is gebaseerd op Hyper-V, wat de Microsoft-virtualisatietechnologie is die alleen beschikbaar is in professionele versies van Windows. Bovendien is er een hardwarevereiste: uw CPU moet de tweedelijns adresvertaling ondersteunen (SLAT), wat een CPU-functie is die nodig is om Hyper-V correct te laten werken. Als u een nieuwere computer heeft, hoeft u zich geen zorgen te maken; eigenlijk alle architecturen van Intel i5 en ondersteunen het verder. Anders kunt u de SDK nog steeds installeren en gebruiken, maar heeft u een echt apparaat nodig voor testen en debuggen..
U kunt een gratis tool met de naam Machine SLAT Status Check gebruiken om te achterhalen of uw CPU aan de SLAT-vereisten voldoet.
Het testen en debuggen van een Windows Phone-app op een apparaat voordat deze wordt ingediend bij de Windows Phone Store is een vereiste; alleen op een echte telefoon kunt u de echte prestaties van de toepassing testen. Tijdens de dagelijkse ontwikkeling kan het gebruik van het apparaat u vertragen. Dit is wanneer de emulator nuttig is, vooral omdat je gemakkelijk verschillende condities kunt testen (zoals verschillende resoluties, het verlies van connectiviteit, etc.).
De emulator is een virtuele machine aangedreven door Hyper-V die in staat is om te communiceren met de hardware van uw computer. Als u een aanraakmonitor hebt, kunt u het aanraakscherm van de telefoon simuleren; als u een microfoon hebt, kunt u de telefoonmicrofoon enz. simuleren. Daarnaast wordt de emulator geleverd met een reeks extra hulpmiddelen die nuttig zijn voor het testen van enkele scenario's waarvoor een fysiek apparaat nodig is, zoals het gebruik van de accelerometer of de GPS-sensor.
U kunt de emulator rechtstreeks vanuit Visual Studio starten. Er zijn verschillende versies van de emulator die overeenkomen met de verschillende resoluties en geheugenmaten die op de markt beschikbaar zijn.
Windows Phone-applicaties worden gepubliceerd in de Windows Phone Store, wat de belangrijkste manier is waarop ontwikkelaars hun applicaties kunnen distribueren. Er zijn echter twee uitzonderingen: zakelijke bedrijven en ontwikkelaars voor testdoeleinden.
Als u wilt beginnen met het publiceren van toepassingen, heeft u een ontwikkelaarsaccount nodig, dat u kunt aanschaffen via de officiële portal. De kosten zijn $ 19 per jaar en u kunt een onbeperkt aantal betaalde apps en maximaal 100 gratis apps publiceren. Onlangs heeft Microsoft de ontwikkelaarervaring samengevoegd voor de twee belangrijkste platforms. Dit betekent dat u met het ontwikkelaarsaccount ook Windows Store-apps voor Windows 8 in de Windows Store kunt publiceren.
Het ontwikkelaarsaccount is ook verbonden met testen. In feite zijn telefoons standaard vergrendeld en is de enige manier om apps van derden te installeren via de Windows Phone Store. Alle ontwikkelaars kunnen telefoons gratis ontgrendelen, zelfs als ze geen betaald account hebben; het verschil is dat met een gratis account slechts één telefoon kan worden ontgrendeld en er slechts twee toepassingen op de telefoon kunnen worden geladen. Met een betaald account kunnen ontwikkelaars maximaal drie telefoons ontgrendelen en kunnen ze elk tien applicaties laden.
De app-implementatie kan rechtstreeks vanuit Visual Studio worden uitgevoerd of met behulp van een tool die is geïnstalleerd met de SDK die is genoemd Application deployment.
Als je je telefoon wilt ontgrendelen, heb je een ander hulpprogramma nodig dat wordt meegeleverd met de SDK Windows Phone-ontwikkelaarsregistratie. U moet uw telefoon verbinden met de computer en inloggen met hetzelfde Microsoft-account dat u hebt gebruikt om het ontwikkelaarsaccount te registreren.
De toepassing die moet worden gepubliceerd in de Windows Phone Store moet worden gecertificeerd. Het certificeringsproces (waarbij zowel automatische als handmatige tests worden uitgevoerd) zorgt ervoor dat uw app acceptabel is van een technische (de app crasht niet, de gebruikerservaring is niet verwarrend, enz.) En de inhoud (geen pornografie, geen buitensporig geweld) oogpunt.
We zullen meer informatie geven over het publicatieproces in het laatste artikel van deze serie.
Microsoft heeft een nieuw programma geïntroduceerd voor ontwikkelaars om vroege toegang tot nieuwe Windows Phone-updates te verlenen. Op deze manier kunnen ontwikkelaars hun apps testen met de nieuwste OS-releases voordat ze worden gedistribueerd naar gebruikers.
Om je te abonneren op het programma moet je:
Zodra u aan deze vereisten hebt voldaan, kunt u de toepassing Voorvertoning voor ontwikkelaars downloaden vanuit de Store.
Na het installeren, moet u het uitvoeren en het preview-programma inschakelen door de algemene voorwaarden te accepteren. Nadat u het proces hebt voltooid, worden voorbeeldupdates als gewone updates geleverd: u moet naar de updates deel van de instellingen pagina en controleer op nieuwe updates. Op het moment van schrijven levert Microsoft GDR3 met dit preview-programma.
Houd er rekening mee dat, afhankelijk van de fabrikant, het installeren van een voorbeeldversie de garantie van de telefoon kan schenden. Het is een veilige procedure, maar als er iets misgaat, kan uw fabrikant u mogelijk niet ondersteunen.
Het startpunt van elke Windows Phone-applicatie is Visual Studio 2012. Laten we kijken hoe een project kan worden gemaakt en hoe het is gestructureerd.
De eerste stap is om Visual Studio 2012 te openen en op te klikken Nieuw project. In de beschikbare geïnstalleerde sjablonen vindt u de Windows telefoon sectie die alle sjablonen bevat die gerelateerd zijn aan Windows Phone-ontwikkeling.
We gaan de eenvoudigste gebruiken, Windows Phone-app, die alleen een startpagina bevat. Geef het een naam en klik OK. U wordt gevraagd welk platform u gaat ondersteunen. Aangezien we de ontwikkeling van Windows Phone 8 behandelen, kiest u Windows Phone 8.0. De ontwerper laadt automatisch de startpagina en, in de Solution Explorer venster, ziet u de structuur van het project. Laten we het in detail bekijken:
De App.xaml
bestand is het startpunt van elke Windows Phone-applicatie: het zorgt voor de initialisatie van de applicatie en het frame dat de pagina's bevat. Plus, sinds een instantie van de App
klasse (die is gedefinieerd in de App.xaml.cs
bestand) wordt altijd in leven gehouden tijdens de uitvoering van de toepassing, het wordt ook gebruikt om alle algemene instellingen te definiëren. U kunt bijvoorbeeld de levenscyclusgebeurtenis onderscheppen die we verderop in deze serie behandelen, of u kunt globale XAML-stijlen en -bronnen definiëren die in de hele toepassing worden gebruikt..
Dit is de hoofdpagina van de toepassing die wordt gestart nadat de app is geïnitialiseerd. Het is de standaard die is opgenomen in een project, maar u kunt zoveel pagina's toevoegen als u wilt in uw project. Elke pagina heeft dezelfde structuur: het is samengesteld uit een bestand met de extensie .XAML
, die de gebruikersinterface definieert, en een bestand met extensie .cs
, welke is de code achter dat definieert de logica voor interactie met de gebruikersinterface. Elke pagina erft van een klasse genaamd PhoneApplicationPage
die ingebouwde ondersteuning biedt voor eigenschappen en gebeurtenissen die zijn gekoppeld aan de levenscyclus van de pagina, zoals navigatie-evenementen, oriëntatie, beheer van systeemladen en meer.
De Middelen map bevat de grafische elementen van de applicatie. Het standaardproject bevat enkele standaardpictogrammen en afbeeldingen voor de verschillende Tile-groottes en sjablonen.
De Middelen map bevat alle bestanden die nodig zijn om de lokalisatie te beheren. Standaard vindt u slechts één bestand met de naam AppResources.resx
, die de basistaal bevat (meestal Engels, maar u kunt een andere taal selecteren). Elke andere taal wordt ondersteund door een nieuw AppResources-bestand toe te voegen. De LocalizedStrings.cs
bestand wordt standaard toegevoegd in de root van het project en het is de klasse die we zullen gebruiken om de lokalisatie te beheren. We zullen dit later in deze serie bespreken.
Binnen in de eigenschappen map vindt u een bestand genaamd WMAppManifest.xml
. Dit is een heel belangrijk bestand. Het wordt manifest genoemd omdat het wordt gebruikt om alle mogelijkheden en functies van de toepassing te declareren. Zijn rol is cruciaal tijdens het certificeringsproces; dankzij dit bestand kan het automatische proces alle benodigde informatie over de toepassing extraheren, zoals de titel, ondersteunde resoluties, functies die worden gebruikt, enz..
Visual Studio 2012 biedt een visuele editor voor het manifestbestand; dubbelklik eenvoudig op het bestand om het te openen. Het is belangrijk om te weten dat niet alle scenario's voor use-case worden ondersteund door de visuele editor. Soms moeten we de XML handmatig bewerken om onze applicatie uit te breiden.
De editor is opgesplitst in vier verschillende secties:
Als u al apps voor Windows Phone 7 hebt ontwikkeld, moet u bekend zijn met het startscherm. Het is een statische afbeelding die onmiddellijk wordt weergegeven wanneer de app wordt geopend en verdwijnt wanneer de app volledig is geladen en klaar is om te worden gebruikt.
Het opstartscherm was onderdeel van de standaard Visual Studio-sjabloon voor Windows Phone 7-projecten, maar is verwijderd in Windows Phone 8-projecten. Vanwege de prestatieverbeteringen die in Windows Runtime zijn geïntroduceerd, beginnen apps nu veel sneller, dus meestal is een splash-scherm niet nodig.
Als je een startscherm nodig hebt, moet je het handmatig toevoegen aan het project volgens een specifieke naamgevingsconventie: het moet in JPG-indeling zijn, de bestandsnaam moet SplashScreenImage.jpg
, en de vereiste resolutie is 768 × 1280. Op deze manier wordt de afbeelding automatisch aangepast aan de resolutie van het apparaat. Als u volledige controle wilt over de resolutie van het apparaat, kunt u drie verschillende afbeeldingen toevoegen, één voor elke ondersteunde resolutie. In dit geval is de naamgevingsconventie die volgt:
SplashScreenImage.screen-WVGA.jpg
voor 480 × 800-apparaten.SplashScreenImage.screen-WXGA.jpg
voor 768 × 1280 apparaten.SplashScreenImage.screen-720p.jpg
voor 720 × 1280 apparaten.De 1080p-resolutie vanuit het beeldverhoudingsstandpunt gedraagt zich als 720p: als uw toepassing wordt gestart op een 1080p-apparaat, wordt het 720p-opstartscherm gebruikt als er een beschikbaar is.
Wanneer u klaar bent om uw toepassing te testen, kunt u deze rechtstreeks vanuit Visual Studio op een apparaat of in de emulator distribueren. In het werkbalkgebied vindt u wat lijkt op een afspeelknop, samen met een beschrijving van een implementatiedoel. Je kunt kiezen uit vijf verschillende doelen: een echt apparaat, twee versies van de WVGA-emulator (een met 512 MB RAM en een met 1 GB RAM), een WXGA-emulator en een 720p-emulator. Van tijd tot tijd kan de lijst langer zijn omdat Microsoft periodiek SDK-updates vrijgeeft om nieuwe emulators toe te voegen die overeenkomen met de nieuwe versie van het besturingssysteem. Microsoft heeft bijvoorbeeld al een SDK-update uitgebracht die de emulatorafbeeldingen op één lijn brengt met de GDR2-release.
Wanneer de toepassing in de foutopsporingsmodus wordt uitgevoerd, worden automatisch twee functies ingeschakeld om u te helpen werken:
In dit eerste artikel zijn we begonnen ons op ons gemak te voelen met enkele belangrijke concepten waar elke Windows Phone-ontwikkelaar bekend mee zou moeten zijn:
Deze tutorial staat voor een hoofdstuk uit Windows Phone 8 Shortlyly, een gratis eBoek van het team van Syncfusion.