//Build talk "From 4 to 40 inches" (with sample LayoutRules code)

[Update 4/6/2014: I uploaded a newer and better sample; see the end of the post for a link]

Thanks to everyone who made it to my talk, which is now available online (so if you didn't make it, you can watch it now!). Also, thanks to everyone who has provided feedback so far! If you saw the session and haven't evaluated it yet, please do (and all the other sessions you see, too!). This helps us make these events better in the future.

One person mentioned that the "40 inches" in the title was a bit misleading since I didn't discuss the Perspective Pixel devices (aka PPI).

Firstly, THANK YOU (whoever you are ;-) ) for providing the feedback!

Secondly, it's true that apps explicitly designed for the PPI devices benefit from specialized UX that is tailored to the usage pattern of those devices, and unfortunately I could not cover that in the talk. It's also a statement could apply to all specialized use-cases (any app could benefit from specialized UX on phones, tablets, PCs, etc. although it is not required). But in a general sense, all the concepts in the talk apply. The "small" PPI device is 55" diagonally, has a raw density of 40 dpi, and a physical resolution of 1920 x 1080 pixels. It has a scale factor of 1.0 and an effective resolution of 1920 x 1080. That means that for general apps, the PPI is no different than a standard 24" 1920 x 1080 monitor. It has the same effective resolution, the same scale factor, and would run apps exactly the same way. This is why the talk really focuses on ignoring the physical aspects of the device (size, DPI, etc.) and focusing on the effective resolution.

But there will always be an opportunity for developers to go further and tailor their apps for specific use-cases. In this example, if you wanted a special UX for the PPI, you could check if the DisplayInformation.RawDpiX property was <= 40, and that the effective resolution (ActualWidth and ActualHeight in XAML) was >= 1920 x 1080, and if so infer that you were running on a really big display.

Also, I wanted to give you an early look at the LayoutRules helper code I wrote for automatically switching between visual states in XAML. Eventually there should be an official post on the Windows Phone Blog, but in the mean time I put together a quick Universal Project showing how to use it (the original sample, which wasn't as good, can be found here). Enjoy!

LayoutRulesTestApp.zip