WP7 Tutorial: Maps App (del 5)

BLOG: I denne guide vil vi se nærmere på hvor nemt det er at integrer Bing Maps i en Windows Phone 7 applikation og hvordan man tilføjer nye lag til kortet
Skrevet i Stud.blog


Publiceret d. 8. april 2011 kl. 14.19


 
ANNONCE:
Dette er en forsættelse af del1, kan læses her:
http://www.computerworld.dk/ (...)

Og del 2, som kan læses her:
http://www.computerworld.dk/ (...)

Og del 3, som kan læses her:
http://www.computerworld.dk/ (...)

Og del 4, som kan læses her:
http://www.computerworld.dk/ (...)

... det er næsten en hel bog... så mangler vi bare filmen ;)

Hurtig opsummering af del 4:
I del fire tilføjede vi kort data i for af Map Layers og muligheden for at tilføje og fjerne lag fra kortet fra en dedikeret Map Settings side.

Alt i alt tilføjede vi den ønskede funktionalitet til Kort App'en, men der er stadig lidt vej igen til at den kan komme i gennem certificeringsprocessen.

Så lad os få fixet de sidste små ting ;)

Hvad ville der ske hvis vi bare "submittede" appen nu?
Tja... hvis vi lige ser bort fra den store overskrift "page name" som pryder forsiden og bestemt ikke ville gøre det nemmere at få den certificeret. Så ville den blive afvist!

Hvorfor og på hvilket grundlag?
Det kan man svare ret præcist på, ved at submitte app'en og se på den fine tet rapport man får retur!

Hent hele testrapporten her:


Uddrag fra testrapporten:
Requirements Expected Result
Your application must provide in-application
settings that allow the user to enable and disable
your application's access to and use of location
from the location service API.


Applikationen fejler fordi den ikke giver brugeren mulighed for at slå GPS til og fra.

Så det skal vi da bare ha fixet ;)

AppSettingsPage.xaml
Den nemmeste måde at opfylde GPS certificeringskravet på er ved at oprette en "settings page" med tilhørende properties i MainViewModel.cs (EnableGPS) hvor vi kan gemme brugerens indstillinger.

Så i MainViewModel tilføjes en ny property:
private bool _enableGPS = false;
public bool EnableGPS {
get {
return _enableGPS;
}
set {
if (value != _enableGPS) {
_enableGPS = value;
AppSettingsHelper.EnableGPS = value;
NotifyPropertyChanged("EnableGPS");
}
}
}


Bemærk at der i "set" er lavet et ekstra kald til AppSettingsHelper klassen.

AppSettingsHelper klassen sørger for at gemme brugerens valg på tværs af "application runs".
Det er ikke et decideret krav, men klart noget brugeren vil forvente, så derfor er det taget med :)

Så mangler vi bare at respektere brugerens valg for brugen af GPS'en, det gøres nemmest i metoden MainPage_Loaded, med følgende kode stump:

if (App.ViewModel.EnableGPS) {
gps.Start();
}


Metoden MainPage_Loaded, køres hver gang vores side loades og køres derfor hver gang vi returnerer fra AppSettingsPage.xaml. Så ved en ændring til EnableGPS vil vores applikation respekterer den ændring.

Aktiver tracking knappen:
Men hvad nu hvis brugeren trykker på "track me" knappen?
Så skal vi sikre os at vi må bruge GPS'en!
Det kan gøres ved at tilføje følgende kodestump til ApplicationBarIconButton_Click metoden:

if (!App.ViewModel.EnableGPS) {
// settings menu item
NavigationService.Navigate(new Uri("/Pages/AppSettingsPage.xaml", UriKind.Relative));
return;
}


Hvis brugeren ikke har givet adgang til GPS'en, så prompter vi brugeren med AppSettingsPage.xaml siden. På den måde kan brugeren ændre det valg.
Enkelt og konsistent.

Applikationstilstand:
Udover GPS indstillinger har jeg også tilføjet lidt kræs ;) Applikationen husker nu Map Zoom Level og kortes sidste center position, så applikationen altid starter med udgangspunkt i "sidste tilstand".

Igen, dette er ikke noget krav, men bestemt et plus for brugeren!

Grafik og ikoner:
Applikationen kommer heller ikke igennem certificeringen med standardikonerne, så de skal også skiftes/opdateres.

Faktisk kan man ikke lave en submission uden en masse grafik klar, så her havde jeg snydt lidt med den forrige submission...

Jeg har lavet grafik til ikoner, baggrund, startskærm og så lidt ekstra ;)

Startskærmen ser nu således ud:


Jeg er udvikler og ikke grafikker:
Og det kan jo være at du har det på samme måde, så hvad gør en klog? Det ved jeg ikke, men for at lave grafikken til denne applikation har jeg brugt en kombination af... hold nu fast! ... "Clip Art" og det fantastiske program Paint.net, et must!
hent det her: http://getpaint.net

Så for at få logoet har jeg bare søgt efter "Maps Denmark" og fundet følgende:


Og lavet det til sort/hvis i paint.net, sådan... og så uden yderligere reflektering konkluderet at det er flot ;)

... andre ville nok vælge en designer :)

Grafikken kan findes i folderen "submission details" i zip filen.

Hent koden til del 5 her (Maps Starter Kit):


Vi er klar til submission:
Ja vi skal lige ændre "page name" til noget mere fornuftigt. Jeg har tænkt på to muligheder, slette teksten helt og give mere plads til kortet eller vi kan tilføje en reklame banner ;)

Så næste gang tilføjer vi en reklamebanner, vi skal jo tjene penge, og så kører vi submission processen igennem og krydser fingre! for at den går igennem syn ;)

... og hvis der er penge i det, så gir' jeg en øl et sted i cph ;)

Go' Weekend
\martin

Kommentarer til blogindlæg



Kommentér
Ytringer på debatten er afsenders eget ansvar - læs debatreglerne

Mere fra Stud.blog


Nu kan du hente en beta af næste version af Windows Phone Developer Tools, nemlig version 7.1 Beta!!!
24. maj 2011 kl. 21.56 | læs »



TechTalk: Research in Software Engineering by Nikolaj Bjorner, Senior Researcher, Microsoft Research
27. maj 2011 09:00 - 10.30
12. maj 2011 kl. 08.53 | læs »



På den konkurrerende "kanal" version2 har de taget initiativ til en konference om Mobil App. udvikling.
3. maj 2011 kl. 08.25 | læs »



I dag er det national hjemmearbejdsdag, http://www.hjemmearbejdsdagen.dk, så arbejder du hjemme i dag eller er det bare en dag som alle andre?
2. maj 2011 kl. 13.57 | læs »



Hvis du er iPhone (iOS) udvikler og godt kunne tænke dig at udvikle apps til WP7, så er det lige blevet lidt nemmere!
2. maj 2011 kl. 11.31 | læs »









Mest læste seneste uge

Kan gratis sikkerhedssoftware virkelig beskytte din pc? Svaret er ja, hvis du vælger det rette produkt. Læs her en test af de mest pålidelige gratis sikkerhedsprogrammer.

Næsten 200 IBM-ansatte får med få timers varsel sidste arbejdsdag i dag. Ingen var orienteret forud for dagens massefyring, som effektueres øjeblikkeligt.

Flyselskabet SAS har brugt op mod trekvart milliarder kroner og seks år på at udskifte sit bookingsystem. Undervejs har der været flere projekt-udfordringer, som kulminerede en vinternat med en big bang-migrering.

Her er forklaringen på, at IBM Danmark med direktør Lars Mikkelgaard-Jensen i spidsen fyrer 170 medarbejdere.

IBM Danmark lader hovederne rulle.