Mobile development & photo blog

In 1985 Microsoft introduced Windows 1.0. It wasn’t a big success at that time and there were far better offerings from Atari, Commodore and of course then also Apple. Their Atari ST, Amiga and the Apple Macintosh were true multitasking operating systems with a graphical user interface while Windows was still relying on MSDOS and nothing more than a graphic shell with limited options. But Windows came out victorious eventually. How did Microsoft become the dominant operating system despite starting with an inferior product? Microsoft had the most important areas covered for making a successful platform: content, hardware, distribution and focus on companies, the main buyers of pc’s. Nowadays Microsoft has a problem on the smartphone and tablet market. The products they offer aren’t really selling well. They even had to write off 900 million dollar on Windows RT tablet stock. Now let’s look into the area’s Microsoft must cover to be successful in the smartphone and tablet business.

Content

The Apple AppStore and Google Play have about one million app titles available. Both offer also music, video and books through their stores. The Microsoft store for Windows Phone offers 160K app titles and Windows 8/RT offer only 80K. This still seems like a large number but you must realize that only half of the top 100 iOS apps are available for Windows Phone. Windows Phone users are missing a lot of really great apps. Another issue the quality of the apps. A lot of Windows Phone apps are written by students and inexperienced developers after financial incentives and competitions from Microsoft. Then there is the factor of a large loyal developer community. How does Microsoft treat their developer community? Well not that good. When Windows Phone 8 was released developers got it two days before consumers got it. Giving them no time to update their apps. Another issue is development tools. Microsoft offers some development tools for free but if you want professional tools you have to pay a lot of money for them. Apple and Google are providing their developer community with professional tools for free. It is clear Microsoft has a big problem attracting developers. License fees dropped from $99 to $15 per year and Microsoft’s piece of the cake from 30% to 20%. Apple and Google still take 30%. So looking at the content part the situation for Microsoft does not look good.

Hardware

Microsoft always relied on partners like HP, IBM, Lenovo, Acer, Asus, etc. to make great hardware for running Windows. But these partners are nowadays less loyal to Microsoft than in the past. The pc market is shrinking and for the tablet market they have in Android a free (except for patent license costs they must pay Microsoft) operating system which customers want. If they use a Microsoft operating system for tablet or smartphone they must pay license costs which makes the entire package more expensive. And being more expensive is not good in a highly competitive market which is flooded by cheap Android devices from China. Another issue hardware partners have with Windows is the rate of innovation. Their hardware evolves much faster than Windows can cope with. And lastly, Microsoft started building their own devices. So Microsoft becomes a competitor instead of a partner. Looking on the hardware side the situation for Microsoft is not good. Partners have better and cheaper operating system options for their devices. And they also see Microsoft as a competitor.

Buyers

Nowadays consumers and not companies are buying the most PC’s, tablets and smartphones. And those consumers are shifting from unfriendly PC’s to more user friendly tablets. Furthermore consumers are the main buyers of smartphones. Look at trends like BYOD (bring your own device) where consumers use their personal devices in a corporate environment. How do consumers think of Windows? Are they happy with it? Well my guess is that most users use it because it came pre-installed on their pc and they can run their favorite programs on it. But for most users Windows remains a difficult hard to manage operating system, most people use it but don’t love it and for sure don’t want it on their smartphone. So looking at buyers it’s not looking good either. Microsoft failed to make Windows more user friendly in the last decennium and buyers associate the newer Windows RT and Windows Phone products with it.

Distribution

Tablets and PC’s are distributed through retail stores. A channel where not Microsoft and its hardware partners are well established. Android tablets and iPads are also and more abundant available through the retail channel. For smartphones the major channels are telecom providers. In most countries they sell the phones with a subscription for voice and data. And there is problem, telecom providers have an issue with Microsoft: Skype. Telecom providers aren’t promoting Windows Phone a lot, only large sponsoring from Microsoft helps promoting Windows Phone smartphones for a short time. So looking at distribution we can conclude that for tablets Microsoft is not lagging behind. But for smartphones, a new channel for Microsoft, they have a large problem.

Looking into the future

Taking all this into account it looks like Microsoft has a really big challenge to make it on the smartphone and tablet market. They have a better product than Windows 1.0 in the past. But the important areas for becoming a large platform are now more difficult than ever. They must improve on their image and marketing. But also on their relation with hardware producers, developers and telecom providers. And that will not be easy since the competition, iOS and Android, have better products and a huge advantage on all important areas. Does it mean Microsoft is doomed? No of course not. They still have an excellent portfolio of business products, the most popular pc operating system, Azure, Office and lots more. But they will be more enterprise focused and probably have to leave the smartphone and tablet market to Google and Apple. The monopoly of Microsoft for personal computing is gone and will not come back again.

After using the iPad for more than year as my mainstream tablet for daily use, I’m now giving the Surface Pro a go for the next few months. In this blog I will share my frustrations and likes. How will it perform? Is it really a productive tablet or just a fancy ultrabook?

Both tablets are not usable in sun.

I’ve been using my iPad for a lot of tasks: email, taking notes during meetings (no paper for me anymore), surfing the web, reading books, reading news via Flipboard, listen to Spotify, checking my social networks, see the weather, watch tv, presenting slides, testing apps, playing games, etc. Now let’s see how the Surface Pro does all this. These are my experiences after using it for a couple of weeks.

The positives

Office on a tablet is really nice

Great screen, I like high resolutions

Visual Studio and other development tools always available

Keyboard cover (not touch version) is great for typing

Re-use of my apple VGA cable for presentations

Fast and responsive

Closing an application with swipe is nice, after you found out how it works!

The negatives

Desktop is not suited for touch interface, my fingers are just too big

Almost no apps for touch interface

Limited battery life, only half of my iPad

Heavy, it’s much heavier compared to the iPad and weighs a ton compared to my favorite tablet, the iPad mini

Pen is nice but prone to loosing or forgetting

Missing a mouse often and the touch pad of the keyboard cover is only for emergencies

In laptop mode with the keyboard, viewing angle is fixed (not great for outdoors)

Not the same level of connectivity in corporations available, iPad is better supported (mail, wifi, apps)

In desktop mode and using it as a real tablet (no keyboard attached) is hard, my fingers are too big for touching small things and you must bring up the on screen keyboard manually for every input box

Would I consider using a Surface with Windows RT for the better battery life? NO thanks! The choice of apps for this platform is so limited and you can’t run ‘legacy’ windows software except office.

These are my experiences after the first weeks with the Surface Pro. So far it has been a mixed experience. I didn’t fall in love with it but I also didn’t have the urge to throw it out of the window. Keep coming back the next months to see if my feelings towards the Surface Pro change.

What have Google, Facebook, Twitter and Amazon in common? They provide a platform on which others can build their services. Apps and websites can integrate functionality offered by the platform into their own services. But how do they provide secure access to their platform from web and apps? It seems there is an open standard supported by all major platforms: OAuth. I think governments should pay close attention to these developments and learn from it. Most governments remain closed except for some open data. Maybe they are more inclined to open up if it can be secured in a safe way.

What is OAuth?

OAuth is an open standard for authorizing apps or websites access to your data from a provider using the authentication from that provider. In other words OAuth enables a safe way, for you the user, to grant apps or websites access to your data on another website of service. For example you can give an app permission to use your Twitter information and even tweet messages on behalf of you.

How does it work?

OAuth relies on your app or website sending a signature with each request to the provider. With the signature the provider can see from which app and user the request comes. The signature is based on the content of request and the token the provider supplied. How does the app get that token so it can sign the requests for the provider?

Well first the app needs to register and obtain a consumer key. This is the part which identifies the app. Next, the user goes to provider with the consumer key and authenticates. After successful authentication the user gets the option to grant access to the app or website. When the user grants access the app receives a token. This token can be used to obtain a more permanent token which can be stored for later use. Also temporarily tokens can be used instead of a permanent one.

This of course a high level description but under the hood is a really nice security framework.

Why is it better than traditional username and password?

OAuth is more than just authentication, it also provides authorization features. So the main goal of the protocol is to give the user the ability to authorize an app or website after authenticating with the provider. The authentication is always done through a (mobile) web page from the provider. So the app or website doesn’t need to know the users credentials. Apps often store credentials for a more user friendly experience, login using a small keyboard is not really easy for most users. Instead of storing the username and password the application stores a token to connect to the service of the provider. Since only this application can use the token it is much safer then storing the user’s password.

Not only safe storage of credentials is solved for users. It also gives them the option to see what an app can do on behalf of them. And most providers have the page where users can revoke tokens to deny the app or website access.

How secure the authentication process is will be determined by the provider. If you look at Google for example, their two-factor authentication is fully supported with OAuth when you first time login.

What about my SSL check?

You can trust websites by validating the SSL certificate of a website. It ensures you who is on the server end and that your data gets encrypted. For apps there is no such thing. Of course you can rely on Apple or Microsoft to validate the apps and check it for evil functionality but Google doesn’t exercise the same rigorous control over their store. In the Play store everyone is welcome. The authorization model of OAuth provides a nice way for establishing some trust in apps. When you register your app for services from a provider, you must provide the name of your app, the app icon and the publisher name. These are typically the items a user sees when downloading an app from the store. These items are also unique for an app in the stores. This way the user can identify that he/she grants access to data to the correct app. Of course there is an option for evil apps to register but the provider can disconnect them ensuring the app has no access to the user’s data. Additional trust in apps is created when providers like Facebook and Twitter list apps that use their services in a correct and safe way.

Dutch government and apps

In the Netherlands most communication with the government requires authentication with DigiD. DigiD is a web based authentication provider relying on the SSL lock in the browser. You can inspect the certificate and see who is on the server side and all communication is encrypted. But the world is changing fast and on mobile devices you don’t always have the possibility to validate the certificate. Or even worse you cannot even see the SSL lock. Apps are also able to emulate the communication of a browser and can use DigiD. In a world moving towards mobile and apps the government needs to take some action. The confidence a citizen can have in the SSL certificate for websites must also be established for apps. How can they do that for the current situation with DigiD and how to do that for the future? Well that’s quite easy. For the short term only two measures are really needed. First enable citizens to validate the app they downloaded, e.g. a list of published or certified apps on a secure website so citizens can validate apps in that list as genuine. Second measure is to start monitoring the app stores on evil rogue apps and ensure those apps are removed as soon as possible and warn people as soon as possible. For the long term DigiD might implement OAuth to support websites and apps. That way the government gets more control on which apps and web sites uses their services. And the Dutch citizens not only get a more secure solution but also a more user friendly way of authenticating. This is also a first step for the government to be a platform with open API’s on which the government itself and third parties can offer services in the form of websites and apps. So after open standards, open source and open data hopefully the next step towards open API’s will be taken.

More, mostly technical, information on OAuth can be found on the developer web sites of Google and Twitter.

For app developers market share of operating systems and devices is important information. A lot of Dutch developers want to target the Dutch market. However the numbers published by the big firms are usually worldwide or U.S. only. Luckily you can make quite good predictions for the Dutch market based on telecom providers and phone shops. The phones they heavily promote and advertise are more likely to be sold. Also for tablets it is possible to obtain numbers because large online retailers publish lists of best sold tablets. Based on the prediction which phones are sold the market share of sold devices can be determined. Mind you that’s not the actual market share of devices owned by people. For that figure I need to build a least a history of two years. Since some manufactures of popular devices like Apple have a limited range of devices these numbers are corrected to obtain a better view on the Dutch market.

Another nice thing about this approach is that fact that i’m able to make a device recommendation for testing your apps. Of course it necessary to build history here too for a complete picture. Remember you have to support the devices people buy today for about two years and for tablets maybe even longer. On this site I will publish my market watch and device recommendation each quarter. The list of devices is created based on a mix of operation system, os version, screen size, processor speed and manufacturer. The list will give a good coverage of those aspects to ensure your app will work on most devices. The list not only shows which devices you need but also how long you should keep them alive for testing. For some operating system like Apple you need make sure that the devices contain the operating systems you want to support.