I am a long time supporter of Microsoft and Windows. I have been using Windows, Windows Mobile and Windows Phone for many years, and I just purchase my first Android device, the 2013 Nexus 7, couple days ago. I have not migrated all my “e-life” to Android (and do not have that intention at the moment), so I will not be able to give a thorough review or perspective on Android. Moreover, I am not talking about the app gap here because I have to admit that the app is so obvious. I am also not talking about disconnection of Modern and desktop or how difficult it is to use Store app; in my humble opinion, that disconnection is hard to solve and Microsoft is going to right way to make people feel better, and I really do not feel using Store apps is harder than using Android apps at all.
But there are much more that Microsoft should (or even must) learn from Android and ironically from their previous version of Windows as well. Most of what I am comparing here is from my experience using Android and Windows 8.1 on tablets.
1. Notification Center
This is so obvious already. I am a huge supporters for live tiles, and I use it to keep me updated on so many things, but every technology has its own limitation. I know that I can have a glance check at the last Skype message, or the last 3 emails or my last Facebook notification, but what about one that is much more important to me that happen before that.
The current live tile architecture also gives less power to the user in checking their own notifications. I know that live notification can be stacked on one tile, and they will keep cycling on the tile, but there is no way for users to force it to happen other than wait for a certain interval, and there is no way to prevent it from switching while you are reading a long notification, either. Would be very nice if we can swipe through tile notification or temporarily expand a tile to see all notifications in the stack for example.
There is more, but there are already so many articles on how a notification center would benefit mobile devices, so I will not write more about this here. And Windows Phone 8.1 is going to have a very good notification center, where notifications can be added, deleted and even groups by the app itself; I wonder when this feature will come to Windows eventually, considering that Window Store app (Blue) and Windows Phone app (Blue) are so much similar now.
2. App Crash Experience
What happens when an app is crashed on Android: a beautifully made popup appears telling you that the app has problem and allow you to send the developers details and additional messages.
What happens when an Windows Store app is crashed: it just closed and the Start Screen appears. That Store app experience is even worse than on Windows Desktop, when you have a popup to tell you that the software has crashed.
This is bad because developers have to implement their own way to collect very limited amount of information on the bug, and this is very bad because users will be confused if the app is lousy or the operating system sucks. In fact, Windows does randomly collect crash dump in the background, but showing a nice looking popup and let people choose if they want to help the developers by sending not only the crash dump but also some context information is much much better.
3. The Store Itself
Both Windows Store and Windows Phone Store have a big limitation that I can never understand: you cannot open installed apps or uninstall them directly from the Store. Just like Bill Buxton said in one of his presentation: it’s all about the flow. And I believe Windows Store has a broken flow right there. After searching for an app in the Store, realizing that you have already install the app, you will have to go back to the Start Screen (or open Search charm) and search AGAIN. The same thing happens when you install a new app: you cannot open the app from the Store except from tapping a toast notification that only show up for some seconds and vanish completely (yes the problem of notification center).
Another improvable function of the Store is the auto-update function. It is great to turn that option on by default, which make it easier for developer to phrasing out support for old versions or pushing out important updates. However, I believe this function should be less silent: just updated app should be showed up in some ways (as an overlay on app tiles or as a sort order in the app list). Showing so encourages users to return to the app to seek new features or bug fixes, and I believe app developers will also more happy when their updates are surfaced more apparently.
Installing apps is very slow as well. I am not talking about the time to download or extracting the app packages the app to the system. Usually those are done in the background, so people are more tolerant for them. However, the time from when you press the Install button until you can go back and discover some other apps is so slow. Even worse, it sometimes takes minutes and failed! This waiting time really discourages me from trying out a bunch of apps and then uninstall what ever I do not want; in other words, people like me will be reluctant to discover the Store by trying the app itself. Windows Phone Store did have the same problem in the past, but it is so much better now.
There are even more to say about the Store that really upset developers like me: no reply to review, no introduction video. The recommendation system is also not very useful now: it keeps recommend me apps that I have installed or similar to (but worse than) what I have installed. I think the way Play Store asking users to rate one app and then recommend accordingly is just brilliant: it’s extremely easy and convenient for users; it could recommend according to the apps that the users actually used, and it could help to gather a significant number of rating as well.
4. Integration and the Power of App Developers
I am still freaking out by the fact that Android apps could send SMS without users’ consent. People would argue that users have to approve that permission, but is it just one time approval and how can I review and revoke that permission? However, other than those scary rights, what Android provides to developers is amazing. I have almost no experience with Android development (yet), but looking at what Android apps can do, I cannot help being amazed!
The image above is a notification popup from Any.do. It looks so beautiful that I am even considering switch to Android to manage my tasks. In Windows Store the most you can do is to show a toast notification that will stay there for a short period of time. If your app is chosen to be the Alert app, you can show the toast with an optional button to dismiss and another to snooze. Developers cannot add custom buttons (just to launch a deep link Uri or trigger background task for example), or make it stay until the users deliberately dismiss. And you should read that notification fast, because once it goes out of the screen, you will not be able to see it again!
There are also many other integrations that Android has done very well including the Intent model. Windows Store have similar idea with the Contract and URI and extension handler, but they need more improvement to widen the possible uses of app-to-app communication.
5. Browsers
It is funny that Microsoft allows Firefox and Google to have a Modern version, but force users to make that browser as default before being able to open it as a Modern app is annoying. Microsoft should remember that Internet Explorer does not support so many things such as multiple profiles (because I have multiple Microsoft Account and do not want to sign in and out so many time), does not have a reliable tab restoration, are not able to pin tabs, and lacks of so many other things. I use Internet Explorer (Desktop) and Firefox (Desktop) every day on my laptop, and I also wish to be able to use the modern version of both on my tablet.
Just like Windows 8 (Modern) and Windows Phone, IE11 is fast and snappy and good enough to use, but lack of so many features comparing to other competitors.
6. Overlay Windows
Snapping apps is one of the best features of Windows 8 comparing to other platforms. I have try to use iPad 4 and the Nexus 7, and I always feel annoying when I have to stop watching videos just to open Twitter or Facebook. However, this problem is going away when Android starts supporting floating app (Skype has already use this capability for their video call). I totally agree that snapping is easy and looks much cleaner than overlaying, and I actually snap apps a lot, but there are many cases that do not need to occupy the whole column, but need to stay on the screen for a long time: watching videos and making video calls. I think at least Microsoft should look into solving those particular cases.
7. Background Processing
I think there could be a big discussion in Microsoft on allowing apps to run in the background or not. At the current level of optimization of the WinRT platform (which is not very high, I think), I am happy that apps cannot run constantly in the background because otherwise, all the low power tablets (but with a hefty price tag) that is launched some time before (before the Dell Venue Pro and its kind) would die trying to support both the foreground and background apps.
However, as the optimization get better (already much better with Windows 8.1 and the upcoming update), and the devices are more powerful, Microsoft should really look into removing some of the limitation. For example, sharing targets, especial should be able to run in the background for an extended period of time. On Android, I can share a big file, choose OneDrive and let it handle everything in the background. On Windows 8, if you dismiss a sharing app, the app is stopped (almost) immediately, and you cannot tap anywhere out of the sharing target because it is light dismissible.
And once again, if we have a background task running, how can we know its progress without a notification center?
Conclusion
As WinRT becomes the common core of both Windows and Windows Phone, it is even more important for Microsoft to improve and evolve their APIs and designs much faster to make both OS relevant in the market. There are many good features and even better UX design on Microsoft platforms in some particular cases, but if they do not go fast and react more quickly to users’ desires and reaction to their operating system, they will not be able to win this time.