2. What is a universal app?
• You can build an app that targets
Windows and Windows Phone
• It is not (currently):
– A single binary
– A non-Windows binary (Xamarin) application
• Targeting iOS
• Targeting Android
– An HTML/JavaScript (Cordova) application
3. What does it mean to be universal?
The consumer promise
• Similar theme
• Common experience
• Shared authentication
• Shared data/profile
• Single app purchase
• Single IAP purchase
5. What does it mean to be universal?
The Windows Store perspective
• Shared package full name
• Single app purchase
• Single IAP purchase
• Roaming data
• Shared notification channel
6. What does it mean to be universal?
The Visual Studio perspective
• Shared project-type
– A new feature or bug in one
project, everything is updated
• Still possible to tailor
• Reusing code is meaningful
because of unified APIs
9. Consider…
• Linked files
– It’s all manual
• Shared projects
– Basically MSBuild
• Portable class libraries
– Lowest common denominator
10. Rules of thumb
• Compilation directives
– Can make code difficult to read
– Solves small, quick-hit platform problems
• Partial classes
– Makes it easy to isolate platform code
– Difficult to see the entirety of your code
• Base classes
– Familiar concept to most programmers
– Partial and abstract methods are options
11. Three XAML strategies
Solution 'App1'
App1_Phone81
App1_Windows81
LoginPage.xaml
References
App1_Shared
References
App1_Shared
App1_Shared
Solving styles
Faking themes
Adaptive nirvana
Most reuse, least likely
Solution 'App1'
App1_Phone81
App1_Windows81
References
App1_Shared
References
App1_Shared
MainPage.xaml
MainPage.xaml
Device-specific
Least friction, most likely
LoginPage.xaml
App1_Shared
MainPage.xaml
Solution 'App1'
App1_Phone81
App1_Windows81
LoginPage.xaml
References
App1_Shared
References
App1_Shared
App1_Shared
MainPage.xaml
Dictionary.xaml
Dictionary.xaml
16. Windows
• Print contract
• New window
• Search Box
• App Bar
Phone
• Call dialog
• Back button
• Status Bar
• Pivot control
Platform-specific capabilities
18. What if the user…?
The emulator is sufficient
for flow verification.
Follow standard
approaches with controls
19. What if the device is…?
40”
30”
24”
18”
14”
10”
8”
6”
4”
The emulator is insufficient
for asset verification.
Avoid adding additional
scaling to your own assets.
Don’t overthink it. If it
looks good, you’re done.
It’s up to you to set the
expected size of assets.