As far back as I can remember the differences between the full version of Windows 8 and the tablet version, now dubbed Windows RT, were made pretty clear. Whilst the Modern UI section of them was going to be essentially identical the full version of Windows wasn’t going to run on anything that wasn’t x86 compatible and RT would be the version that could run on low power systems like ARM. This, logically, came with some draw backs the largest of which is the omission of the desktop environment on Windows RT devices. In all honesty this didn’t bother me as Microsoft is making a version of their Surface tablet (and I’m sure others will as well) that would run the full desktop anyway.
The delineation also made a lot of sense due to the different markets that both versions were targeting. The full version is squarely aimed at the desktop/laptop space whilst the RT version is strictly for mobile computing. In terms of functionality there’s a lot of crossover between these two spaces but the separation essentially meant that you had your desktop with its oodles of backwards compatibility that Microsoft is known for whilst also getting that nice, highly focused tablet environment should you want it.
However as it turns out Windows RT is far more full featured that I first thought and is capable of running Win32 applications:
Thanks one intrepid user, Clrokr, over at XDA Developers it has been found out that Microsoft actually included full Win32 compatibility in Windows RT devices that run on the ARM architecture. Whilst this doesn’t mean you can straight up run those executables on said platform it does mean that any Windows application that you have the source of can be recompiled to run, without issue, on Windows RT devices. The above screenshot is from another user, peterdn, who has recompiled PuTTy to run on ARM and it appears to be functioning quite fine. Other applications have also been tested as well and shown to work as you’d expect.
Thinking about it more clearly this shouldn’t have come as a surprise as the architecture diagram for Windows 8 clearly shows that C/C++/C# are fully supported on both platforms and the inclusion of the desktop on Windows RT devices (again something I wasn’t aware of) would have you thinking everything was there to support this. As it turns out the only thing that was stopping this from working in the first place was runtime authentication level that was hard coded to only allow Microsoft signed applications to run in such an environment. The jailbreak that Clrokr details in this post is simply an in memory overwrite of this value which will allow any application to run. From there you just need to recompile your application and you’re golden.
The reasons for the lock out make sense from a business point of view: Microsoft was trying to create a pristine tablet environment that was tightly controlled in order to create a better experience. However at the same time porting all of the underlying architecture to ARM would have required quite a bit of effort and locking this functionality away from people seems like a strange idea. Whilst I’m not going to say they should unlock it for everyone having it as a configurable option would have meant that most users wouldn’t know about it but power users, like the ones who discovered this, could take advantage of it. I haven’t seen if Microsoft has made an official response to this yet or not but I’m sure they’d win more than a couple fans if they did this and it doesn’t look like it would be that hard to implement.
I was genuinely surprised by this as I hadn’t caught on pretty much all of Windows, including everything that makes it tick under the hood, had been ported across to the ARM architecture. I had believed that it was just a port of the core functionality required to support the WinRT framework but as the above screenshots prove Windows RT devices are pretty much fully fledged copies of Windows, they just need their applications recompiled in order to work. Of course questions of how those applications fair vs their modernized counterparts in a tablet environment remains to be seen but it’s interesting that the option is there and that Microsoft has gone to such lengths to keep people from fiddling with it.
If you were to believe what some games industry big wigs were saying you’d be lead to believe that Windows 8 was the beginning of the rapture for games on the Microsoft platform. At first it was just a couple developers, big ones in their own right (like Notch), but when someone like Gabe Newell chimes in you start to take notice as distributing games on the Windows platform is his bread and butter and he doesn’t say things like this lightly. However as someone who’s grown up on the Microsoft platform, from the old MS-DOS days until today where I’m running Windows 8 full time on my home PC, and has made his career on their products I still can’t help but feel that their concerns are misplaced as they seem to hinge on a fundamental miscalculation about Microsoft’s overall product strategy.
Those concerns are laid out in lengthy detail by Casey Muratori in his latest instalment of Critical Detail: The Next Twenty Years. In there he lays out the future of the Microsoft platform, drawing on the past few decades of Microsoft’s developments and using them to draw conclusions about what the Microsoft ecosystem will look like in 2032. In this world the future of games on Windows seems grim as all the current AAA titles don’t meet the requirements to be present on the Windows Store and the desktop interface is long gone, effectively destroying the games industry on any PC running their operating system.
It’s a grim future and the number of people worried about this coming to fruition seems to increase on a daily basis. However I believe that some of the assumptions made ignore critical facts that render all this doom and glooming moot, mostly because they ignore Microsoft’s larger strategies.
Before I dive into that however let me just acknowledge that yes the Windows Store doesn’t seem like it would be a great place for current games developers. Realistically it’s no different from Google Play or the iOS App Store as many of the requirements are identical. Indeed all of the platforms strive for the same “family friendly” environment that’s bereft of porn (or anything overtly sexual), violence and excessive profanity which does exclude a good number of games from making their debut on the platform. This hasn’t stopped countless numbers of companies from profiting on this platform but there is no denying that the traditional games industry, with its love of all those things these market places abhor, would struggle with these guidelines.
The fundamental misstep that many games developers appear to be making though is thinking that the Windows Store and the guidelines that come along with it will be the only platform available for them to release games onto the Windows operating system. Looking back to previous examples of Windows does show that Microsoft puts an end date on many technologies however I don’t believe that the desktop will be among them. Sure you might not be able to write a DOS game and have it run in Windows 8 but you can take a MFC app built in 1992 and run today (with the biggest challenge there possibly being recompiling it, but the same code will work).
The reason for the Metro (or Modern or whatever they’re calling it now) interface’s existence is not, as many believe, a direct reaction to the success of the iPad/Android devices and Microsoft’s failure to capitalize on it. The Metro interface, which is built upon the WinRT framework, exists primarily to provide a unified platform where applications can provide a unified experience across the three major screens which users interact with. The capabilities provided within that framework are a fairly comprehensive subset of the larger .NET framework but it’s not fully feature complete as the instruction set needed to be cut down in order for it to be usable on ARM based devices. Whilst it still has access to the goodies required to make games (you can get DirectX on it for example) it’s still not the default platform, is just another one which developers can target.
If the WinRT/Metro framework was Microsoft’s preferred direction for all application development then it wouldn’t be the bastard step-child of their main development technologies, it would become the new .NET. Whilst it is going to be the framework for cross platform applications it’s most definitely not going to be the platform for native development on Windows PCs. The argument can be made that Microsoft wants to transition everyone to WinRT as the default platform but I’ve seen no evidence to support that apart from the idea that because the Metro UI is front and centre that means it’s Microsoft’s main focus.
I find that hard to believe as whilst Metro is great on tablets and smart phones it unfortunately struggles in a mouse and keyboard environment as nearly every review of it has mentioned. Microsoft isn’t stupid, they’ve likely heard much of this feedback through other channels and will be integrating it into their future product strategies. To simply say that they’ll go “Nope, we know we’re going in the right direction and completely killing the desktop” is to be ignorant of the fact that Microsoft works extremely closely with their customers, especially the big organisations who have been the most vocal opponents of Metro-first design. They’re also a pretty big player in the games industry, what with that Xbox being so darn popular, so again I fail to see how they wouldn’t take the feedback on board, especially from such a dedicated audience like us PC gamers.
I’d lend some credence to the theory if the desktop environment hadn’t received much love in Windows 8 in lieu of all the work done on Metro but yet again I find myself coming up empty handed. The UI received a massive overhaul so that the styling would be in line with the rest of Microsoft’s products and there have been numerous improvements in functionality and usability. Why Microsoft would invest so heavily in something that will be slated to be removed within a couple generations of Windows releases is beyond me as most of their deprecated technologies receive no updates for decades prior to them being made obsolete.
And the applications, oh don’t get me started about Microsoft’s own applications.
Whilst Metro has some of the basic applications available in it (like Office and….yeah Office) all of Microsoft’s current catalogue received a revamp as desktop applications, not Metro apps. You’d think that if their future direction was going to be all Metro-esque that more of their staple application suites would have received that treatment, but they didn’t. In fact the amount of applications that are available on the desktop vs the ones available on Metro makes it look more like Metro was the afterthought of the desktop and not the other way around.
If Microsoft’s future is going to be all Windows Store and WinRT apps there’s really no evidence showing to show for it and this is the reason why I don’t feel sympathetic to those developers who are bellyaching about it. Sure if you take a really, really narrow view of the Microsoft ecosystem it looks like the end is nigh for the current utopia of game development that is Windows 7 but in doing so you’re ignoring the wealth of information that will prove you otherwise. The Windows Store might not be your distribution platform of choice (and it likely will never be) but don’t think that the traditional methods that you’ve been using are going anywhere because if Microsoft’s overall strategy is anything to go by they aren’t.
I remember when I first saw Windows Phone 7 introduced all those years ago now how it just looked like Microsoft playing the me-too game with one of its biggest competitors. This was also a time when RIM, you know those guys who make the BlackBerrys that everyone used to rave about, where the kings of the smart phone world and Android was still considered that upstart that would get no where. Back then I said I’d end up getting one of these handsets eventually, mostly for application development purposes, but also so I could share the experience with you, my readers. I never really made good on that promise but thanks to LifeHacker I’ve had the privilege to have a Nokia Lumia 900 as my sole communications device for the past couple weeks and I thought it was high time I told you what I think of it.
Before I get into the meat of the underlying operating system I want to take a little time to comment on the phone itself. Nokia, renowned for their low end handsets that are everywhere, sheds those preconceptions easily with the Lumia 900. Whilst I know its no indication of the underlying quality the 900 has a really nice heft to it, feeling quite solid in the hands. The specs are actually quite incredible with it sporting a 1.4GHz Qualcomm Scorpion processor, 512MB RAM and 16GB of internal storage. Couple that with an 8MP camera with Carl Zeiss optics capable of capturing 720p video you’ve got a solid base of hardware that’s easily comparable to all other handsets from its generation. The battery life is also pretty incredible, easily lasting a couple days with moderate usage. Indeed if Nokia were to release a similar phone to the Android market there’s no doubt in my mind that it’d be right up there with the likes of Samsung and HTC.
My first impressions were quite good for Windows Phone 7 with some teething issues that I’ll dive into. On the surface Windows Phone 7 is visually pleasing with the large icons, live tiles and a very smooth scrolling experience that all just works. Just like you do with Android or iOS you sign into your phone using your Windows Live ID, which can be any email address you want, which then hooks into the underlying services that power your Windows Phone 7 handset. For the most part this is synching with things like Live Contacts, SkyDrive for your cloud storage and any other Microsoft service. For the most part these work well however I had a stumbling block at the start which did sour me initially on the platform.
So ever since I moved from my Windows Mobile device to my first iPhone all those years ago I’ve had my contacts stored in Google Contacts as that was the easiest way to ensure they’d follow me from platform to platform. Thankfully Windows Phone 7 allows you to add accounts across a wide range of services, Google being one of them. So I entered my details and hit sync…nothing happened. Indeed even when I tried to sync to my LiveID (which has nothing in it) I got a similar error saying “Attention required” and upon investigation it said that my username/password combination wasn’t correct. No matter what I did to get this to work it would always come up with this same error for both services. To rectify this I had to reset my phone to factory defaults, sign in again with my LiveID and then attempt to sync again. For Google Contacts I had to create an application specific password to use it (I have 2 factor auth turned on for my Google account) but I wasn’t prompted for this from Windows Phone 7 like I have been for other services. Realistically I’d expect a little better from a platform that’s been around for this long and this was why I was initially unhappy with Windows Phone 7.
However all the other in built apps like email, messaging and maps work absolutely flawlessly. It didn’t take me long to get everything in sync with all my emails coming down as soon as the server received them and things like MMS, which usually require some fiddling to get them to work properly, just worked straight away from the APN settings that came down from Telstra. The problems I experienced getting my contacts onto Windows Phone 7 were really the only major issue I had with the platform itself and it speaks volumes that the rest of the experience was so trouble free by comparison.
Of course the platform itself is only part of the equation as it’s the third party applications that can make or break it. Thankfully I’m please to say that for all the major applications like Twitter, Facebook and Shazam there are native applications and the function pretty much identically to their counterparts on the other major platforms. There are of course some differences in the applications that can be rather irritating (Twitter for instance doesn’t preload tweets like it does on Android) but they are more than usable. I wouldn’t say I prefer the Windows Phone 7 experience over Android or iOS as I was very much used to the former due to it being my platform of choice for the past year and a bit but I don’t find myself wanting for any specific feature. It’s probably more due to the fact that Windows Phone 7 has its own UI styling that’s pretty consistent across all the applications and for some instances that fits well but for others it just doesn’t really work at all.
Where Windows Phone 7 starts to fall down is in the niche application area, I.E. those applications on other platforms that you have for one specific need or another. My best example of this would be SoundCloud, a music sharing application, which has a great application on both Android and iOS. For Windows Phone 7 there’s no official application and all the third party solutions are really quite bad, to the point of being unusable. Of the 3 I tried no one supported logging in with Facebook and since I have no idea what my SoundCloud password is (I never set one, because of the Facebook integration) I simply could not try them. The SoundCloud mobile application is actually quite good but it doesn’t function the way you’d expect it and in order to get similar functionality you have to do things that aren’t particularly intuitive. Reddit is another example as whilst there’s an usable application (Alien News) it’s just not as good as Reddit is Fun on Android.
The state of the niche applications might not be a big deal to the majority of people who only need a few major applications (which are well supported on Windows Phone 7) but for power users like myself it feels like you’re artificially limiting yourself to being a second class smart phone user. Now this is no fault of the platform, it’s simply a function of its popularity among the wider public, and the only thing that will solve it is more users and time. Whether that will happen is hard to say as whilst Windows Phone 7 market share has been growing it’s still hard to call it anything more than an also-ran in comparison to Android and iOS.
In an objective comparison between all the platforms, forgetting the applications as they’re not strictly reflective of the platform itself, I can say that Windows Phone 7 is most definitely comparable to Android and iOS. The interface is slick and smooth, the built in applications are very usable and there are no real show stopping bugs that prevent you from doing anything that you could do on other platforms. Whilst I’m not sure if this will become my default platform of choice for the future (considering my Lumia won’t get Windows Phone 8) I definitely can’t fault anyone for choosing it over any of the other ones available. Indeed for certain people, especially those who are heavily invested in the Microsoft platform, I’d recommend it over anything else as its tight integration with Microsoft would make it much more worthwhile.
So overall I was very impressed with Windows Phone 7 as I was truly expecting the majority of applications to be no where near as good as their iOS/Android counterparts but they were. The most telling thing was that I never found myself wanting to do something and then finding out I wouldn’t be able to do it. Sure the experience wasn’t ideal in some cases but the capability was there and in many cases that’s all that matters. It will be interesting to see how this compares to the upcoming Windows Phone 8 and whilst I won’t promise that I’ll rush out to get one for the review (I’ve made that mistake before) I won’t say to no if Microsoft gives me a loaner for a couple weeks.
Which is actually a real possibility considering I’ll be blogging for them 😀
There’s no denying the success Apple has enjoyed thanks to their major shift in strategy under Steve Jobs’ reign. Before then they were seen as a direct competitor to Microsoft in almost every way: iMacs vs PCs, MacOS vs Windows and at pretty much every turn they were losing the battle save for a few dedicated niches that kept them afloat. That all changed when they got into the consumer electronics space and began bringing the sacred geek technology to the masses in a package that was highly desirable. There was one aspect of their business that suffered immensely because of this however: their enterprise sector.
Keen readers will note that this isn’t the first time I’ve mentioned Apple’s less than stellar support of the enterprise market and nothing has really changed in the 8 months since I wrote that last post. Apple as a company is almost entirely dedicated to the consumer space with token efforts for enterprise integration thrown in to make it look like their products can play well in the enterprise space. Strangely enough it would seem that this token effort is somehow working to convince developers that Apple (well really iOS) is poised to take over the enterprise space:
In the largest survey of its kind, Appcelerator developers were asked what operating system is best positioned to win the enterprise market. Developers said iOS over Android by a 53% to 38% margin. Last year, in its second quarter survey, the two companies were in a dead heat for the enterprise market, tied at 44%.
In a surprise of sorts, Windows showed some life as 33% said they would be interested in developing apps on the Windows 8 tablet.
Now there is value in gauging developer’s sentiment regarding the various platforms, it gives you some insight into which ones they’d probably prefer to develop for, however that doesn’t really serve as an indicator as to what platform will win a particular market. I’d hazard a guess (one that’s based on previous trends) that the same developers will tell you that iOS is the platform to develop for even though it’s quite clear that Android is winning in the consumer space by a very wide margin. I believe there’s the same level of disjunct between what Appcelerator’s developers are saying and what the true reality is.
For starters any of the foothold that iOS has in the enterprise space is not born of any effort that Apple has made and all of it is to do with non-Apple products. For iOS to really make a dent in the enterprise market it will need some significant buy in from its corporate overlords and whilst there’s been some inroads to this (like with the Enterprise Distribution method for iOS applications) I’m just not seeing anything like that from Apple currently. All of their enterprise offerings are simplistic and token lacking many of the features that are required by enterprises today. They may have mindshare and numbers that will help drive people to create integration between iOS products and other enterprise applications but so does Android, meaning that’s really not an advantage at all.
What gets me is the (I’m paraphrasing) “sort of surprise” that developers were looking to Windows 8 for developing applications. Taken in the enterprise context the only real surprise is why there aren’t more developers looking at the platform as if there’s any platform that has chance at dominating this sector it is in fact Windows 8. There’s no doubting the challenges that the platform faces what with Apple dominating the tablet space that Microsoft is only just looking at getting into seriously but the leverage they have for integrating with all their enterprise applications simply can’t be ignored. They may not have the numbers yet but if developer mindshare is the key factor here then Microsoft wins hands down, but that won’t show up in a survey that doesn’t include Windows developers (Appcelerator’s survey is from its users only and currently does not support Windows Phone).
I’ve had my share of experience with iOS/Android integration with various enterprise applications and for what its worth none of them are really up to the same level as native platform applications are. Sure you can get your email and even VPN back in to a full desktop using your smartphone but that’s nothing that hasn’t been done before. The executives might be pushing hard to get their iPads/toy dujour on the enterprise systems but they won’t penetrate much further until those devices can provide some real value to those outside of the executive arena. Currently the only platform that has any chance of doing that well is Microsoft with Android coming in second.
None of this means that Apple/iOS can’t do well in the enterprise space, just that there are other players in this market far better positioned to do so. Should Apple put some focus on the enterprise market it’s quite likely they could capture some market share away from Microsoft and their other partners but their business models have been moving increasingly away from this sector ever since they first release the iPod over a decade ago. Returning to the enterprise world is not something I expect to see from Apple or its products any time soon and no developer sentiment is going to change that.
I’ve always been one to try and make whatever technology I’ve bought do something it wasn’t originally intended for. Mostly this is because I want to unlock some of the hidden value that the technology has or enable some functionality that had been disabled by the manufacturer. You can then imagine my excitement when my wife’s parents gave us a Navman MY60T for christmas as whilst I wasn’t 100% sure what underlying operating system it had on it I figured it would be either Android or Windows CE and there are plenty of cool things I could do with either. So not a day after getting it I had secured myself a memory card and began a furious google search to see what could be done with this little device.
Initially I couldn’t find much as this particular model is relatively new. Still figuring that most models don’t change too much I widen my search to try and catch hacks that worked on previous models. After an hour or so I came across an application called MioPocket which appeared to be a wholesale replacement for the underlying operating system. After looking around for a while I discovered a forum dedicated to this software and saw that the community was alive and well, so I decided to give it a try.
Installing MioPocket on the MY60T appeared to be a pretty simple affair. After copying across the needed files to my SD card and creating the required folder (the folder name for the MY60T is SEEKER2_T500E) I restarted my device and was presented with the MioPocket install screen. I ran MioPocket and it appeared to install without a hitch, triggering a reboot of my device. However when it started back up again I recieved an error “Application MortScript.exe encountered a serious error and must shut down” and my Navman froze. Removing the SD card and rebooting the device allowed it to come good again but I was unfortunately unable to use MioPocket.
I searched the GPSPassion forums for a good few hours trying to find a solution to my problem. Most of the posts I found relating to this error appeared to be fixed in current releases and attempting to replicate those changes didn’t seem to make much of a difference. Since I didn’t have much of a clue of how MioPocket was strung together (apart from it being a Windows CE application) I posted up my problems and hoped I’d hit someone else who’d had the same issue and managed to resolve it.
Luckily not a day later did a user get back to me with the required solution. All that was required was to delete the toolhelp.dll files in all the folders on the SD card apart from one, the Windows folder. Doing so allowed my device to install and boot MioPocket successfully. A quick test showed that some applications refused to run (although I didn’t thoroughly test it) but for the most part it was fine, allowing me to run all sorts of weird and wonderful programs on my new found toy. Talking with one of my friends (who was one of the fortunate people to have an i-Mate JasJam back when they were hot) revealed that I could also get Warcraft 2 and Doom running on there if I was so inclined.
So after all that effort is it worth unlocking your GPS so you can run other programs on it? For most people probably not as whenever you’re going to be using your GPS the manufacturer’s included software will more than suffice. However unlocking it can provide extra features that might come in handy like the ability to load in eBooks or a simple calculator. Probably those who will get the most out of such hacks would be the modding community as these devices are excellent value for what they provide. I know I would’ve preferred a device like this to the $450 TV screen I bought for my car almost 5 years ago. So if you’ve got a GPS lying around and an hour or two to spare MioPocket could well be worth a look in, especially if you’ve got that hacker mentality.
Apple’s policies for the App Store have always been a bit vague and uneven, leading to quite a few good headlines over what apps got rejected and which ones got in. I put it down to the human element in the review process as one reviewer’s biases need not line up with another. Still though the developers worked out the inputs and outputs of the application review process and if your app was useful, family friendly and didn’t go rampaging through private APIs you were golden. Apple, not content with the amount of control it was already exerting over its developers, then decided to up the ante by banning all cross platform frameworks putting a big question mark over some of their most successful applications and developers.
The whole thing can be traced back to Apple’s public flamewar with Adobe. I’m not really sure what triggered this decision in the first place (although it smacks of Jobs’ idealism) but they did it with precise timing, just a few days before Adobe was to announce their Flash to iPhone app packager for CS5. Perhaps the idea of a torrent of applications hastily converted from flash onto the iPhone was a bit too much for them to bear but in casting their net so wide they caused many people to become hesitant about developing on the platform, especially those who found great success using such 3rd party frameworks.
Apple began doing some damage control in order to ensure that they wouldn’t lose some of their biggest money earners. They gave unofficial word that frameworks such as Unity3D were safe since they generated an actual iPhone application and didn’t require use of an intermediate interpreter. Still since coding in Unity3D is done in C# this ran up against yet another draconian rule that all iPhone applications must be written in one of the sanctioned C based languages. With Android starting to pick up at a phenomenal pace there’s no doubt that Apple began to rethink their stance on many of these matters with hopes of winning back the developers they had once scorned.
Last week saw Apple release what amounts to their set of principles and guidelines that are applied when reviewing apps that will make it onto their app store. You can get the full pdf of all the guidelines here and it makes for some interesting reading. Most of them are just formalisation of the rules that most developers knew about but couldn’t get solid verification from Apple that it was a hard and fast rule. Probably the biggest coup in this whole document is they abandoned their previous stance on not allowing any cross platform libraries, allowing such applications through as long as they didn’t download any code:
The black box that is the Applereview process is creaking open. In a very brief release, Apple has essentially relaxed the requirement that developers use Apple’s own development tools “as long as the resulting apps do not download any code.” They’ve also published some review guidelines, allowing programmers to understand just what will go on behind the curtains in Cupertino.What does this mean? Well, in the updated SDK license, circa April of this year, a number of paragraphs essentially bannedoutside development tools including systems that ported Flash, Silverlight, Java, and other platforms to the iPhone. Now, presumably, any app that runs on the iPhone, regardless of source, will be considered. The language is so mushy that it’s still unclear what this means.
On the surface it would appear that Apple has backpeddled on their previous stance. Indeed the news was enough for Adobe to state that they were going to restart developing their Flash to iPhone packager which had been shelved after Apple hamstrung it earlier this year. The not downloading any code exclusion is quite understandable as this could easily be exploited as an attack vector by a malicious third party. Still most attackers wouldn’t bother with an app (that leaves a paper trail) since the browser on the phone will happily download code and run it. But I’m sure Apple knows that already.
For what its worth it seems like Apple is finally caving into the developers who helped them make their products so successful and rightly so. Developing something for an Apple product has always been about the end user, much to the detriment of those creating for those users. This is in stark contrast to Google who’s always been about the developers, favouring their freedom to develop however they want with almost no thought to the user experience. Both approaches have their pluses and pitfalls but in the end if you don’t have developers you’re going to have a hard time attracting users to your platform.
Will this lead to a flood of low quality applications on the app store and the fiery death of the user experience on the iPhone? Most likely not as there’s already enough crap on the app store to make sure that any poorly ported Flash app will be lost amongst the noise. Realistically anyone looking to publish on the iOS platform knows what they’re getting into and will redesign the app as such, lest they get bad reviews that ultimately bury their app completely. In the end I think it’s just Apple realising that the road they were going down wasn’t going to do them any favours and the rising star of Android is beginning to look attractive enough for some to make the switch.
The question now is though, will they keep their hard line on Flash? Time will tell.
6 months ago saw the announcement of Microsoft’s attempt to remain relevant in the smartphone space: Windows Phone 7. At the time I poked fun at it the fact that it was basically Microsoft’s interpretation of what the iPhone would’ve looked like if they made it but realised that the platform had potential. If there’s one thing Microsoft is good at its throwing money at a problem until they eventually get it right, like with the Xbox (are they even making money on the consoles yet?) and Windows Phone 7 seemed to be one of those kinds of problems. One thing that it did have going for it was the fact that a Windows developer like me could code for the device without reskilling too much and that’s where the real power is.
As much fun as it is to learn a new platform it’s still a giant barrier to building an application on a new platform. I haven’t done any development on any mobile clients yet purely because the two major ones I want to target use a language that I’m not familiar with. Sure there are cross platform libraries that might help to ease the learning curve but unfortunately they’ve been hamstrung by Apple’s restrictions and aren’t fully compatible with my IDE of choice, Visual Studio. So for any enterprising developer looking to build a mobile application there’s always an initial hump to get over in order to be an effective developer on the platform. That or you shell out some dollars to get someone else to do it for you, but not everyone can afford that.
If you were just to look at the number of developers working on any platform, whether it was mobile/desktop/web/whatever, the largest group would arguably be those working on Windows. With the number of desktops, laptops and other devices running some form of Windows exceeding 80% of the total computers worldwide the number of developers working on that platform far outnumbers that of any other. Microsoft knows this and whilst anti-trust legislation will prevent them from using their current monopoly on the desktop to leverage into the mobile space that won’t stop them from making it damn attractive for developers to gravitate to the Windows Phone 7 platform.
Now I’ve been a developer for a while, about 6 years as an amateur and maybe half that as being paid to do it as part and parcel of my usual system admin responsibilities. In that time I’ve used my share of environments, languages and platforms and out of the lot the one that I keep coming back to is Visual Studio. Whilst some might hate me for this next comment Microsoft’s tools just make coding things so damned easy to the point where there’s nothing I don’t think I’m a tutorial away from being able to do myself. Microsoft knows this and the past few months have seen them trying to lure their developers over to the mobile space with things like free development environments only seeking to charge you once you’re sign up for their marketplace.
They just don’t stop there either. Microsoft made headlines about a month ago when they gave each and every one of their employees a new WP7 phone. It was however a veiled gift as it came with the instructions that not only should they evangelize them amongst their friends but also develop apps for them in their spare time. With Microsoft having 89,000 employees this is no small number of handsets and whilst not all of them are developers (I’d hazard a guess at 30~40%) there’s still enough of them there to have their numbers brushing up against both the iPhone and Android platforms. That doesn’t even include potential developers outside Microsoft who might just start developing for WP7 if it takes off merely because it would be easy to do so. Realistically if Microsoft can harness the power of their developer base in the same way Apple did with theirs they could really pull themselves around in the mobile space, maybe even turning it into a 3 horse race.
The question is of course whether or not the teaming masses of Windows developers will find any point in developing for the mobile space. It can be argued that many desktop applications, where the vast majority of Windows application developers reside, can’t be transitioned onto a mobile platform in any useful way. Realistically if any developer was looking to tackle the mobile market they would have done so already and consequently have substantial investment in their platform of choice. Still the ease at which WP7 applications can be developed using existing skills and knowledge means that the platform might just become dominate because it brings developers to the mobile space that would have never considered it before. Since it can be argued that Windows Mobile is arguably the same thing as WP7 (just not as sexy) it’s going to take a bit more wooing from Microsoft to draw those reluctant developers over and in the lead up to the first WP7 phone hitting the markets will show them doing just that.
Personally I’m still excited about it. I’ve tried to develop simple applications for Windows Mobile before and it was always a royal pain in the ass. The new Windows Presentation Framework based interface for WP7 means that developing code for them will be that much easier. Additionally the integration with existing code bases will mean that the kinds of functionality that would usually have to be developed for the specific platform can now be leveraged with minor modifications, something that I know will at least have developers playing around with WP7.
And that is what has the potential to make WP7 the dominant player in the mobile space.
Choosing a target platform when you develop an application is a big decision as your choice will influence many design decisions, make certain tasks easier and relegate some things to the realm of the impossible. For those of us with a managerial bent this dilemma is usually solved with a simple cost/benefit analysis, I.E. which of these platforms can net us the greatest revenue for the smallest cost? Usually this comes down to how large a particular user base of a platform is (although that’s not everything, as I’ve pointed out) as that translates into the largest number of potential sales. However the advent of application distribution channels such as the App Store and Xbox LIVE Marketplace has complicated this metric somewhat, especially for those developers making it on their own.
For large development houses the biggest market still appears to be the way that many of them gauge which platform to target first. One of the greatest examples of this is Call of Duty: Modern Warfare 2 as it owes its success to its beginnings on the PC. However the lack of dedicated servers angered the PC crowd who thought that their omission was a travesty against them and that their outrage was enough to sway Infinity Ward to change their minds. However if you took a look at the sales numbers PC copies of the game accounted for a very small percentageof their overall sales putting that platform squarely in the minority. The developers rightly (from a managerial perspective) ignored the complaints as the additional work to develop the requested features would have far outweighed the potential sales that they could have derived. Still they catered to 3 platforms simultaneously as the opportunity cost for cross development for them was low thanks mostly to code portability between the Xbox and PC.
When you switch over to the other end of the spectrum the cost vs benefit analysis takes on a different form. You see in large organisations you have the benefit of being able to hire on people with the various skill sets required to develop a product for a targetted platform. If you’re lashing out on your own you are faced with the choice of either developing for what you know or training yourself up on the platform that you wish to target. Whilst most skilled developers won’t take long to become proficient when you’re looking to generate income every moment you spend not developing product is a sunk cost. Logic then dictates that you stay with what you know first before attempting to branch out into other areas lest you waste a significant amount of time developing a product that doesn’t suit your target platform.
You can see this kind of behaviour quite clearly in the mobile development space with a mere 2.6% of Android and iPhone developers having it both ways:
The answer (approximated in the graphic below) surprised us: of the nearly 55,000 mobile developers in our database over 1,000 (1,412, to be exact) had already publishedapps on both iOS and Android. This represents more than 3% of the published iOS developer population, and nearly 15% of the published Android developer group.
Despite the impressive total, we worried that it would be too easy for the fanboys on both sides of the aisle to dismiss these numbers as a crackpot minority. So we dug a little deeper, using our AppRank methodology to stack rank this cross-platform developer group based on the total volume and quality of coverage they’d received among the leading tech blogs worldwide.
Anecdotally the pattern I’ve seen is that most cross platform applications actually have their roots in a single platform. Take for instance the indy smash hit Braidwhich made its debut on the XBox LIVE platform. Whilst it was initially planned for a Windows release it took quite a while for it to make it to that platform. It has also made it onto the PS3 but not until long after it had proven success on 2 other platforms. My inkling is then that many of these cross platform developers started out as single platformers and as they had success in one they decided it was worth their time to attempt another one. Few, if any at all, would attempt to do more than one platform right from the get go.
So the question remains, is cross platform development actually worth it? For people like me probably not initially. The additional work to create a product for multiple platform not only increases the initial amount of work required it will also increase the on-going maintenance time for each of the individual versions. It seems like the best idea is to write and polish your application on your platform of choice and then, should you find success, begin the process of porting it over. This goes double if you’re looking to make some cash off a platform as the sunk costs of development and reskilling are one of the quickest ways to kill a potential revenue stream before it’s fully realized.
Market research is a great way to procrastinate. I’ve spent quite a lot of time getting to know what platforms I should be targeting just so that I don’t waste my actual development time on building something that no one will bother using. In this time that would have been better spent actually coding something I’ve come to notice an interesting trend in the world of mobile applications: everyone seems to be ignoring the biggest market of them all, Symbian. Owned by Nokia Symbian smart phones still dominate the market with over 45% market share which dwarfs all of its competitors to the point of being more than RIM (Blackberry) and iPhone combined. So why isn’t every other developer jumping at the opportunity to exploit this market to the point that they have done for the likes of Android and the iPhone? The answer, to me at least, has its roots in simplistic ideals but overall is quite convoluted.
At its heart the neglect of the Symbian platform can be traced back to one thing: money. Symbian has been around for quite some time (its ancestors can be found as far back as the late 1980s) although its current incarnation in the world of smartphones made its first appearance back in 2001, opening up a world where a phone’s capabilities could be expanded by the installation of third party applications. Its release was closely followed by the first release of PocketPC (later renamed Windows Mobile) that supported smartphones but Symbian still had the upper hand thanks to its uptake with many of the large phone manufacturers. As time went on Symbian found its way onto nearly all of Nokia’s advanced handsets which, coupled with their easy to use interface and overwhelming feature sets, led to astonishing popularity with the 100 millionth Symbian handset being sold only 5 years later with total shipments today exceeding 390 million.
Still unlike the iPhone or Android platform there really wasn’t any incentive to develop for them. The segmentation of both the Symbian and Windows Mobile market was and still is quite vast with no real guarantee of what features or specifications one phone might have. Whilst there are still many applications that can be developed despite these limitations many developers shunned the mobile space because apart from corporate applications there was no tangible way to monetize their efforts. Then along comes the iPhone with one standard set of hardware, a large fanbase and a distribution channel with built in monetization for any developer willing to shell out the $99 fee. After that the mobile space began to open up considerably but Symbian, even with its giant market share, has yet to capitalize on the mobile application market.
This means that whilst the Symbian market might be the largest of them all its also the least likely for any developer to be able to profit from. Symbian handsets cater to a much larger market than any other, including the lower end that even Android fails to capture. Unlike Apple, which deliberately targeted a market with cash to spare, Symbian users are the least likely to pony up some cash for an application. Additionally since there’s been no real central, easy to use medium for users to get applications on their Symbian phones (I know, I tried it on my N95) the vast majority of them won’t be in the mindset to go after such an application, favouring web based applications instead.
There is also, of course, the technical challenge behind building an application on these platforms. Whilst I’ve only dabbled in Windows Mobile (which for a C# developer was incredibly easy) recent reportsshow that Symbian is not only the hardest it also requires two to three times the amount of code to complete the same application on an iPhone or Android handset respectively. Whilst learning another language is really just a lesson in semantics it still slows your development time down considerably and when you’ve got your eye on making some money from your venture a steep learning curve will be a major barrier to entry. There has been some work to reduce this somewhat with the integration of the S60 platform with the open source cross platform library QT, but my previous experiences with that framework don’t make me so hopeful that it will make developing for Symbian any easier.
The ignored giant Symbian is an interesting phenomenon as intuition would tell you that the largest install base would drive the largest secondary markets. As a developer I still find it hard to ignore the call of almost 400 million devices that could possibly run my software but knowing a few people who own Symbian devices (read: they use their phone as a phone, not much else) I still feel like my effort would be better spent elsewhere. As time goes by it will be interesting to see if Symbian can continue to hold onto its dominance in this space or if they will eventually lose out to the young upstarts Android and iOS.