Why You Should Forget About Windows Store and Microsoft App Ecosystem

Update on 03/29/2018: I didn’t expect this post to receive this many views and comments. Since I published it, Microsoft has made many radical changes under Nadella’s leadership. Although Windows 10, Microsoft Store and UWP still don’t live up to my expectations (Personally, I’m using Apple devices & Google services), I think the company is going in the right direction. I’ll keep the Windows platform on my radar as many problems mentioned in the following post have been addressed, and hopefully, Microsoft will continue to improve its platform steadily in the future.

My Story

I have developed apps for Windows for more than two years.

It first started when I participated in a Microsoft Hackathon in Vietnam. At that time, thanks to Nokia brand, Windows Phone was a big thing in the country, and it took nearly 25% of the smartphone market. I only knew basic web programming and knew nothing about creating mobile apps. But as a young boy passionate about technology, I was totally excited as it was my first time participating in a hackathon.

There, I created a basic news reader app using WinJS, an official Javascript library from Microsoft, which allowed developers to create web app with native-like user interface. Even though the app was minimal, ugly and did not win the contest; it intrigued me about the potentials of the platform: Unlike Android or iOS, Windows allowed me to build web apps with excellent performance and access to all native APIs.

Me (white shirt) at Microsoft //publish/ Hackathon (Saigon, Vietnam, 05–2014).

Three months later, I released 5translate, a simple Google Translate client for Windows Phone 8.1. I have never expected it to be so well-received by the community. In just a few months, it received hundred thousands of downloads while I kept updating the app continuously with new features. When I started thinking about improving the app’s branding and renamed it to Modern Translator, it had already included almost every feature Google offered on Android and iOS.

Modern Translator’s changes.

Additionally, during the time, DVLUP together with the gifts Microsoft gave me was wonderful and made me feel how well the company treated its developers. Nevertheless, in other aspects, Microsoft kept disappointing me (and as I assumed, other developers) again and again.

It began when I asked a Microsoft community evangelist to feature my app. Because at the moment, as I believed, it was the only translation app designed specifically for Windows Phone 8.1 while Microsoft had already featured another similar app which had not been updated for months. Then, the Microsoft guy told me my app was not approved because it used Google Translate and competed directly to their in-house product, Microsoft Translator. The answer was unacceptable for me not only because Microsoft failed to compete fairly with its developers but also failed to explain why an inferior app was still being featured.


Windows 10 came out. As usual, I was excited. So even though Microsoft failed their promise to upgrade all Windows Phone 8.1 devices to Windows 10, I decided to take my money to buy a new Lumia. At that time, Windows Phone (or Windows Mobile 10 as Microsoft had renamed their platform again) had lost their market share significantly. Nobody wanted a smartphone without apps. But with their Universal Windows Platform (UWP) and my not-so-bad app revenues, I still continued my app development.

Microsoft released the new version of their Javascript library, WinJS 4 together with Windows 10. They open-sourced the library, added React support, and I was entirely convinced. I rewrote Modern Translator completely using React and WinJS 4. It worked flawlessly, and my users loved the update. But again, Microsoft screwed me up with this announcement:

Right now, Microsoft plans to maintain WinJS’s existing features — this means responding to Issues and Pull Requests on a regular basis. We’re committed to making sure that WinJS continues to run well. At this time, we don’t have plans to invest in new features or feature requests; this also means that we’re not planning a new feature release.

Google messed up their messaging platforms with Google Talks, then Hangouts, then Allo, then RCS. And similarly, with Microsoft, they screwed up with their development platforms: Silverlight, then C# + WinJS, then C#. When it happened, I decided to move away from Microsoft like many Microsoft fans did: bough an iPhone, a MacBook; replaced Microsoft services with Google services. And everything worked much better, and I suddenly realized how much I missed in the years I used Windows Phone.


But of course, there were still thousands of users using the app monthly, and Surface lines seemed to be successful. So I decided to keep most of the logic code, remove WinJS, rebuild the user interface with Material Design. The app no longer followed Microsoft’s design guidelines; but at least, I could ensure the library would not be abandoned again by Microsoft. Surprisingly, excepting a small number of users who complained about the degrading in performance, most of them liked the new design. And without relying on Microsoft’s libraries, I easily ported the app to macOS.

Modern Translator 6 on macOS.

The app had reached its maturity, and it seemed to be a good passive income source for me — a college student. I would not mind leaving macOS, booting Windows 10 a few times a month to keep the app bug-free and up-to-date. Until…

The Last Hit

On February 14th, Valentine day, I was not sure if Cupid had interfered with Windows Store and my app or not, but Modern Translator started losing its store traffic.

Modern Translator’s Acquisition Graph. Source: Windows Dev Center.

Before the day, the number of downloads had already decreased significantly when Windows Phone lost its traction. But I had increased the price of the app from being free to 1 USD, then 5 USD and it helped me to keep the small revenue. Additionally, I managed to run an ad campaign from January 3rd, 2017 to February 07th which increased downloads by 200%.

Naturally, I assumed that my store traffic would go back to the level before the ad campaign after February 07th. But the traffic only went down one week later, and it was much worse.

Modern Translator’s Store Traffic Graph. Source: Windows Dev Center.

On February 18th, my app had jumped from Top 150 Education apps to Top 300. I started questioning myself if the ad campaign had influenced the app ranking or not. But how could the ranking drop when the number of downloads remained stable when the campaign had ended?

Modern Translator’s App Ranking Graph. Source: AppAnnie.

So I thought it might be because of Windows Store’s discovery functionalities. And soon, I realized what was wrong: Windows Store’s search results displayed unsupported Windows Phone 8.1 apps on top of working, designed-for-Windows 10 UWP apps.

For example, when you search for “translator” on Windows Store, this is what you receive as the result:

Windows Store’s search result for “translator.”

And excepting Microsoft Translator, the following apps are designed for Windows Phone 8 and only work on Windows Phone 8/Windows Mobile 10.

“This app will not work on your device.”

There are plenty of UWP translation apps, including Modern Translator. There are also good Windows 8 apps which work on Windows 10. Why doesn’t Microsoft show these apps instead?

I do not have any screenshots to prove but as I remembered, Modern Translator used to place next to Microsoft Translator. It made sense because there were just a few translation UWP apps. But now, everything changes. I am not even sure if this is intentional or just a bug. Is Microsoft thinking: “Let show the users Microsoft Translator, following by non-working apps, so we can dominate!”?

Conclusion

To Microsoft, feel free to fill your developers’ website with articles about Bash on Windows, about Visual Studio 2017. But we, developers, not only need great tools but also need to make money. You give us great tools, and we try to create useful apps for your ecosystem but if you treat us like this, how can we stay loyal?

To developers, if you are thinking about making Windows app as a fun project or a college homework, it is fine. Developing Modern Translator helped me to learn so many things from Node.js, React.js to product design and marketing. I even got job offers thanks to my experiences. But to make something serious, I am sorry, but at least in my opinion, I would say no.

To my users, don’t worry. Modern Translator will continue to work, and I will try to keep it working properly as long as possible. But if Microsoft does not change the situation, no matter how many reviews or emails you send me asking for more features or new apps, my answer is no. It’s time for me to move on.