First some context on whatwe’vedoneDemo:ReseguidenRixFM och BanditLänsförsäkringarRicoh
Howmanyareused to workingwith Blend?The Blend code has beenmergedinto VS.But Blend still has someadvantages,one is workingwithresources.
Design and UI is reallyimportant for Windows 8 apps.Important to be able to workwith design fluently.Unlike WP and earlier XAML versions, the Data tab in Blend is missing cannot use XML data for view models.
What we like to do is:In code, set view model in ctorviewModel.Init in OnNavigatedToDataContext is inherited to child elements
What we like to do is:Design view model on pageInherits from real VM – sets data as needed in design time
Appbar inherits binding from ancestors.If a separate DataContext is needed, it cannot be set on the AppBar itself, will not apply.
Krav för godkännande…sanning med modifikation
Bakom gardinerna…För den här kontrollen ska vänstermarginalen vara 10 isf 20. För den här kollektionen vill jag använda en listview isf gridview.
Simulator doesn’t care about manifest settings concerning rotation
Rememberthat in fillview the usermighthave a hard timereachingwithboththumbs
The anatomyof an appNavigation functionality in the Frameclass
An app stores itsstate in a dictionaryheld by the suspension manager helperclassprovided by VS. What has this to do with navigation? Whenresuming from terminatedstate, wewant to restore page navigation state
Alsousefulifyouwant to save filled in user data during navigation (not necessaryifsavingstate in SaveStatemethod)
Just works.Have to learnmoredetails forGamesCustomcontrols
No separate events for mouse, pen, touch – all the same.Raw events areavailable – buteasier APIs exist (gestures).
Trackeachindividual fingerCode for mouse-specificEvent-history
Gestures like zoom, rotation and movement
Also supportsinertia – like slowing downWorks beautifullywithrender transform
Demo-app for FlatFrogsurface table
New problems compared to regularscreenNo up or downEveryoneshould be able to reacheverytningDuplicate elements
Problems withonestaticgesture eventPointerPressed – manypopups (hand on table)Hold – onlyone at a timeDoubleClick – betterTrick: grid inside canvas – to capturerouted events and route to canvasAllowedmultipleconcurrent events
Hard to get transform rightBest result:Usecomposite transform and Cumulativevalues from manipulationRepeatButtondoes not handleconcurrentusages
Show windows store liveCreateapp – reservename
Great tool, checks all kinds of things.Leave machine alone while it runs!Probably runs as step 1 of the certification process you have to pass. (we’ll get back to that...)
Everything done via live account.Often you publish as a customer – tell them to create a separate live account and forward the email.Really tedious to have to ask for confirmation codes and have them (not) tell you when an email has arrived.Clicking ’remember me’ saves you a lot of hassle.Checklist:Create accountReserveappname
Company: must be identical to papers.Abbreviations cause delays.E.g. MTG Radio ABWe have always gone for age 12+, to be on the safe side.E.g. radio streams could contain anything...
Not agent like windows phone, but an element in the app that prevents suspend = the app continues to run.But... The WACK does not understand this. We had to disable autoplay for MTG Apps
Can be done.Reserve new nameChange name everywhere in appPublish updateOld name can now be removed
Apps cannot be removed!What you can do is to publish an update that is not available in any countries!Will cause the app to disappear from the Store, but get an update on the machines that it has been installed on.You can never force-delete an app on all machines that it’s installed on.
Windows Store apps - Lessons Learned
Windows Store appslessons learned@andyhammar - email@example.com@chribben - firstname.lastname@example.org
Windows StoreView statesStoreWhat we’ve doneNavigationBlendTouch
Your app must support a snapped layout.In landscape orientation, your app’sfunctions must be fully accessible when theapp’s display size is 1024 x 768. Your appmust remain functional when the customersnaps and unsnaps the app.