On the heels of the launch of our most recent desktop Microsoft Store app, we realized that it would have gone even better if we had changed one thing:
We should have designed it, from top to bottom, for the 1%.
I don’t mean the richest 1%, or redheads, or French speakers. I mean that we should have made it for the 1% of smartphone users who run Windows Mobile.
This 1% (less, actually, if we’re counting only Windows 10 Mobile) — mocked, ignored, and forgotten — holds the keys to making a home-run Microsoft Store app. And it’s not for the reasons you might think.
Guardians of usability
The most common resolution for a full-format Windows 10 device is 1366x768. That’s the same as a 720P phone (like the Lumia 640) in landscape orientation. Only 27% of PCs run at Full HD or better (source).
If you think you should avoid targeting Windows 10 Mobile with your app because it’s too annoying to develop for small resolutions, you’re cutting off a massive (73%!) cohort of Windows 10 desktop as collateral damage.
And that’s if you’re lucky enough to have users run your app run full screen! Think about your own usage patterns: do you run every Store app maximized?
It’s instructive to look back to 2007 to 2010, where mobile browser use skyrocketed. Mobile browsers were saddled with special templates that tucked away all the navigation links under a giant hamburger menu in the corner, confusing countless visitors — still true for many sites today. It wasn’t until web designers considered mobile as their primary target platform that sites began looking and feeling “correct” on both mobile and desktop.
The XAML layout engine is closely related to HTML/CSS, so some of the learnings from mobile web design can be applied literally to app design. The XAML Designer in Visual Studio even tries to nudge you in the right direction by always defaulting to a mobile layout.
So what does this mean in practical terms?
- Avoid using Margin or Padding to absolutely position your UI elements. Instead use them only to add margin outside an element, or, ahem, padding inside an element.
- Avoid using Grid Rows and Columns. This might be tough to swallow, but think of them as the equivalent of <table>-based layouts in HTML. (We use Grids a lot for our apps, but now they’re filled with neat things like StackPanels and VariableSizedWrapGrids instead of Rows and Columns.)
- Let XAML flow and resize your elements whenever possible. If you need to align elements, align parent Grids. Trim your elements from values and members that are not necessary, which is much easier when working in code view.
- About code view: spend more time in the XAML code view and less time in Design view. Use the handy editor keyboard shortcuts like Ctrl+M, Ctrl+M to quickly collapse parts of your XAML for better visibility (Ctrl+M, Ctrl+L to expand).
- If you think your app is just too complex/precious/misunderstood to be simplified to such a degree, consider your users. Wouldn’t they appreciate something easier to use? Do they need to be exposed to all that complexity every time they open your app? You might end up with a better app in the process.
Take a hint from where web design has gone and make your app’s UI mobile-first — it doesn’t just benefit mobile users.
Tell me no lies
If you say your app supports mobile, the reviewers are going to test it on mobile, and reject it if there’s a problem. This shouldn’t come as a surprise. They might even test it on devices you’ve never even heard of, like the aforementioned Acer Iconia W700. This exciting device debuted with Windows 8 in 2012, and can be upgraded to Windows 10 in order to serve out the rest of its life torturing unsuspecting UWP apps at the hands of the Store certification department.
Rejections of this sort have caught more than a few developers off guard, because you have to manually disable your UWP app for mobile. By default, submitted UWP apps will be available on mobile devices unless you specifically disable it on the submission screen:
You can also choose to not include an ARM version of your package, but that may hurt you in the long run, as it seems Windows-On-ARM is a real thing that might be coming later this year.
You have to go to some trouble to prevent your app from being exposed to a new class of users who would welcome you with open arms, as we’ll cover next. There’s also evidence that apps that work on mobile and desktop receive a boost in Store rankings. So do the right thing, and test your app on all the devices you say it works on.
Powerful and tight-knit community
It takes a lot of dedication to stick with a platform that has been abandoned, rebooted, abandoned, and nearly-abandoned again.
Windows Phone users are passionate about their device and its operating system. They’re grateful for new apps that work well, since they can be underserved by the developers doing big releases on iOS and Android. But they’re also quick to turn on carpetbaggers and anyone else who tries to get away with serving them something half-assed.
Treat these folks right, and they’ll reward you with positive reviews, useful feedback, and word-of-mouth marketing. But cross them at your own risk.
The second coming
There is evidence that Windows 10 Mobile might be falling out of favor at Microsoft (in its current form, anyhow).
But all signs point to the second coming: full Windows 10 on mobile, maybe on ARM, maybe something out of Westworld. There’s no way Microsoft is going to cede mobile to Apple and Google again, and Microsoft is investing massively in technologies that will help their eventual “real” mobile effort, like UWP.
Any app that you can get running properly on Windows 10 Mobile, or on low-resolution tablets, desktops, and PCs, is going to run like a dream on whatever the eventual “Surface Phone” is. For a little effort now, you can be perfectly positioned for the launch of this device, instead of scrambling to play catch-up to your competitors.
Windows Phone users: The few, the proud
As a Windows developer, it’s your honor to be able to serve such a passionate and loyal userbase. They’ve kept the faith with the Microsoft platform. Do your part. Take the extra few hours to make sure your app works as well on their phones as it does on their desktops and you’ll be richly rewarded.