Posts Tagged‘iphone’

Procrastination Takes Many Forms.

I really can be my own worst enemy sometimes. It’s been almost a month since I got back from the USA and despite the best of intentions I haven’t really done that much work on Lobaco apart from a little work on the API and web UI. Whilst I was pretty sure I wasn’t going to hit the code hard immediately after touching back down in Australia I still thought that after maybe a week or two of lazing about the coding bug which had firmly bitten me before I left would take a hold once again, pushing me to build on the momentum I had set up. Sadly it wasn’t to be and instead I just resided myself to feeling guilty about what I should’ve been doing and pulling the meter tall weeds that had grown in our front yard.

Partly to blame is that sense of perspective I get whenever I take time away from a project to work on something else or to just have a break. Usually the first thing that pops into my head is “why the hell should I bother” and I’ll spend a good chunk of time focusing on the negative aspects of whatever I’m doing. After a while though I’ll just try to do a feel small things, a few quick wins to get me back into the mindset of getting things done. After that it’s usually pretty easy going (this usually takes about 2 weeks) until I hit a wall again or I feel like getting my weekends back for a while so I can relax and get my head back together. The last few iterations of this cycle are what lead to the 3 major revisions of what is now Lobaco.

This time however was different. After being back for 2 weeks and being firmly thrust back into the world that had barely changed since I had left (even though I expected it to be wildly different,  for some reason) I still really couldn’t get into coding without feeling like I should be doing something else. My usual routine of getting a couple quick wins with the API and web UI didn’t translate into jumping back onto my MacBook and smashing out some iPhone code. Instead I started wondering whether or not a native client was the way to go and the possibility of doing a web based client for the phone itself. I had been down this road before and ultimately found that whilst iPhone programming was a world away from I’d done before the progress I had made with only a couple weeks of effort was far more encouraging than the same amount of time spent trying to wrangle HTML5 and Javascript into something workable.

Then along came Sencha.

I was going through my 700+ post backlog of Techcrunch articles when I came across this one about Sencha, a web startup that just released their Touch framework which provides the basis for building native looking applications in HTML5 and Javascript. Thinking this might be my salvation to writing native clients for all handsets I quickly downloaded the framework and started hacking around to get something workable. I was able to get the example running in one weekend and made a few modifications but I didn’t get into the real meat of it until last Friday night. After managing to replicate the UI I had built in objective-c within the Sencha framework I uploaded it to my web server to see what it would look like on the iPhone and instantly I realised what was wrong.

This client was just an elaborate way of procrastinating.

Now whilst the client looked decent and didn’t take too much to set up it didn’t look anywhere near as good as my native app nor could it hold a candle to its performance. Sure my hack job probably ensured that the performance wasn’t as good as it could be but in comparison to the native client hack job I did it was pretty stunning. After coming to that realisation I booted up my MacBook to start getting acquainted with Xcode again and spent last weekend coding up some performance improvements¹ for it which I had put off before I left for the USA. I’m sure this won’t stop me from looking at going down that path in the future but I can at least rest easier now that I’m feeling the urge to program once again.

It’s been a weird learning experience for me since I’m usually pretty good at knowing when I’m procrastinating. Usually I have a good reason for it (like having 1 bit of work to do and not doing it since it’s not due for months) but this is the first time I caught myself doing something I thought was useful when really I was just making excuses for doing the work I knew needed to be done. With a good week of holidays coming up over the Christmas/New Year period this realisation couldn’t have come at a better time and I’m looking forward to making the most of my time off with the hope that the momentum will carry me on into the new year.

¹I’m going to do a big post about this hopefully tomorrow. I hit some really, really esoteric problems getting everything to work but I have and the results are, to put it bluntly, bloody amazing.

WTF Was This Guy Doing: My Refactoring Experience.

It doesn’t take much to sending me on a coding spree. Sometimes is something as simple as an idea that I need to implement now since it fundamentally changes the way the application will evolve and other times it’s something right out of the blue. Last night was the latter as after finishing up some preliminary packing for my trip to the US on Sunday (stay tuned for pictures, posts and vlogs!), playing a couple games of Starcraft 2 I found myself watching the latest episode of the Random Show. In essence it’s just Tim Ferriss (4 Hour Work Week) and Kevin Rose (Digg founder) talking about all sorts of things, but a common theme is always that of entrepreneurship. As someone who’s aspiring to that lifestyle I’m usually fixed firmly to the screen, hoping for some gems that will help me along my merry way. Last night however provided something completely different.

After listening to them for quite a while I looked down at my notepad with a list of features that I’ve slated for integration into Lobaco. I’ve deliberately let them go by the wayside as feature creep is the easiest way to kill a product before it even gets off the ground. Couple that with the fact that I only just recently had the penny drop on iPhone development the less ambitious I make the first iteration of the product the more likely I am to make it solid and usable, rather than a total mess of half done features. Still there are a couple on there that are wholly web client based so feeling the entrepreneurial surge from two web start-up powerhouses I thought I should go ahead an knock a couple of them over.

Boy was I in for a surprise.

One feature which was easy and would make the UI slightly more complete was making the right hand side information section scale dynamically with the browser’s height. In essence this is so you can see more if you’ve got a larger screen and makes the UI look a bit better on smaller screens. Since Silverlight supports dynamic height scaling by simply not specifying a height I thought that all I’d need to do was remove the static height and I’d be done, leaving me to knock over another feature before bed. Changing the property lead to the list box scaling out to its full height and refusing to show a scroll bar, and left me scratching my head as to what was going wrong.

Diving into the code I noticed that whatever I set the height to in the class file would determine the height of the list box. Thinking that it would just be a matter of setting that to the available height would give me the behaviour I wanted I coded up a loop that set that height whenever the size of the browser window changed. This kind of worked but never scaled properly, despite my beautifully crafted logic statements. Something was definitely amiss, but it took me another 2 hours to track down what it was.

Essentially it was a clusterfuck of 3 different coding screw ups. The first was placing the custom class I had designed inside a list box, which was in essence wrapping itself in itself. The second was actually using that class in the first place as it was not required and also duplicated a ton of styling logic thanks to the way Expression Blend messes with your code. Lastly, instead of adding items directly into the list box itself I was creating yet another list box, adding items into that and then adding that entire list box into the main list box (which was wrapped in yet another list box). To get dynamically scaling height in that mess would’ve required setting the height in about 3 different locations consecutively, an expensive process for something that’s supported natively.

The thing is this component was one of the first things to be coded into Lobaco about 3 months ago so this issue has been there almost from day dot. I’ve looked at that code dozens of times over the course of developing this application and not once did it twig that was I was doing was completely ass backward. It’s been almost a month and a half since I did any serious work on the web client and it seems that time away has given me enough perspective to see those obvious mistakes. I think that all developers need time away from their projects in order to get their head out of the problem space and get a clearer perspective on what they’re doing. Hell I’d say that those breaks I took from developing Lobaco were wholly responsible for the 3 code dumps I did and the current polished version that’s on the web today.

In the end the whole development process has been one of the most gratifying learning experiences I’ve ever had. It seems every time I think I’ve got things down pat I learn something new that makes me rethink my past decisions, tweaking things so they’re just that little bit better. Whilst I’m sure that this code base is here to stay it’s definitely evolving as time goes on as each change builds upon the last to provide a better experience for my future users. I won’t be making any progress on it for the next month whilst I travel the US but I’ve got the feeling in that time I’ll get enough perspective to make some incredible changes to Lobaco and hopefully I’ll come back recharged enough to hit development with renewed vigour.

Windows Phone 7, Colour Me Impressed.

It wasn’t too long ago that I was singing high praises of Windows Mobile when I received my shiny new Sony Xperia X1. In all honesty it really was the best Windows Mobile handset I ever had the pleasure of using but towards the end it began to suffer from the same kind of random issues that plagued all my other WinMo handsets that had come before it. The camera app would work only half the time and I was lucky if I could convince it to take video. I had long since foregone the panel interface because of how slow it was when compared to the default and the keyboard started sticking and missing key strokes. Still I couldn’t bring myself to sell or trash the handset and it still sits atop my desk with a fully charged battery, hoping that I find a use for it someday.

Microsoft was obviously privy to these kinds of issues that plagued WinMo users and in February this year they announced that they’d be releasing a new mobile operating system called Windows Phone 7. At the time of the release I was on the fence about it, realising the platform had potential but not convinced it was anything more than Microsoft’s me-too business model. More recently I came to see how Microsoft could employ their giant third party developing force to make WinPho7 one of the dominant players in the mobile space but there’s really no telling if the hordes of Microsoft developers would have any interest in developing for the platform.

Monday saw the final unveil for WinPho7 to the wider public with several handsets on display that the press were allowed to get their hands on. Initial reactions were positive with a healthy hint of scepticism:

As for Windows Phone 7 itself, it feels slick and polished. The interface is fast, the transitions are attractive, and built-in programs like e-mail are a pleasure to use. Anyone who uses a handset is going to want to explore it and learn more about it. If Microsoft can get good positioning in retail outlets, the platform should flourish. However, to get a feel for how well the operating system really works as a smartphone OS requires more time than we had today. First impressions are definitely positive, but it’s going to be a while before anyone knows what the software is like to actually live with.

Indeed going through the numerous posts I’ve seen about WinPho7 over the past 8 months or so it seems like many people feel the mobile operating system feels solid but aren’t really sure if it will catch on. If there’s one thing that Microsoft offers with all its products is deep integration between product families and that’s usually where the true value lies. Previous versions of WinMo might have been tedious for the regular user but for corporate clients they were pretty much spot on. They were beaten to the punch by RIM with the easy email to the phone integration but their competing product, Exchange ActiveSync, is quite comparable now. Couple that with a rebooted platform and RIM’s utter failure to capitalize on the touchscreen phenomenon Microsoft might just be able to claw back some of the corporate market they lost to them.

That’s not the only trick Microsoft has up it’s sleeve either.

iPhone owner’s out there are more than aware of the MobileMe service that Apple provides to its customers, usually as an up sell before you get your phone. For the low rate of $99/year (or $149/year if you have up to 4 people who want it)  you get access to some cloud storage and a synchronisation service that keeps all your mail, contacts and photos in sync for you. Additionally you can use the service to find a lost iPhone should you misplace it or if it gets stolen. Microsoft has a competing service, known as Live Mesh, that was really only about files and remote access. Yesterday saw the announcement of a revamped version of this service that in essence replicates all the functionality of MobileMe. The kicker here is that Microsoft will be offering the service entirely gratis to all WinPh07 users, including the coveted find my phone feature that MobileMe is so popular for.

I don’t think anyone saw that bombshell coming.

Still the WinPho7 still has a little ways to go before it reaches its full capability. Whilst Microsoft has gone to significant lengths to drive development on the platform it will be a while before there’s a critical mass of users on WinPho7 to make it attractive to those looking to profit from the mobile space. There’s also a couple key features that are missing from WinPho7 such as copy and paste. Whilst that particular feature should be here early next year the absence of that feature and others will be enough for long time iPhone and Android users to think twice before replacing their handset. The lack of support for some carriers in the US could also serve to stymie adoption of the platform, but as the iPhone has shown many people are willing to make the switch if the platform is compelling enough.

If all this talk has you excited about trying out a WinPho7 device for yourself then you won’t be waiting too long with the first devices slated to hit Australia’s shelves in late October with the US getting theirs in early November. I won’t be lining up on launch night to get myself one but I’ll definitely be grabbing one of them (probably the HTC HD7) to fiddle with so I can start planning the Lobaco client for it. From what I’ve seen there’s definitely a lot of potential in Microsoft’s new grab at the mobile market but they’ve got an uphill battle in front of them. The next 6 months will be crucial for the fledgling platform’s success and I’m sure Microsoft will be doing everything they can to take back their title as the king of the smart phone arena.

There’s No Substitute For Fundamentals.

When I look back at those 4 long years I spent at university I always feel a wide range of conflicting emotions. Initially it was one of bewilderment as I was amongst some of the smartest people I’d ever met and they were all passionate about what they were studying. During my second year it turned to one of pride as I began to find my university legs and excelled at my chosen specialities. However the last 2 years of university saw me turn on the career I had once been so enamoured with, questioning why I should bother to languish in lecture halls when all of what I learnt would be irrelevant upon completion. Still 4 years on from that glorious day when I walked out of parliament house with my degree in one hand I still value my time there and I couldn’t be sure if I had the chance again would I do it any differently.

Unfortunately for me my predictions of most of the knowledge being irrelevant outside of university did ring true. Whilst many of the skills and concepts I learnt still stick with me today many of the hours spent deep in things like electronic circuits and various mathematical concepts haven’t found their way into my everyday work life. I wholly lay the blame for this at myself however as straight out of university the most lucrative career I could land was in IT support, not computer engineering. This is probably due to the engineering industry in Canberra being none too hot thanks to the low population and high public service employment rate but even those who’ve managed to find jobs in the industry quickly learned that their theoretical university experiences were nothing compared to the real world.

What university did grant me was the ability to work well from a fundamental base of knowledge in order to branch out into other areas. Every year without fail I found myself trying to build some kind of system or program that would see me dive back into my engineering roots to look for a solution. Most recently it has been with Lobaco as I’d barely touched any kind of web programming and had only limited experience in working with real 3 tiered systems. Still my base training at university allowed me to ask the right questions and find the right sources of information to be able to become proficient in a very short space of time.

Flush with success from coding and deploying a working system on the wider Internet my sights turned to something I had only a cursory experience with before: mobile handsets. A long time ago I had tried to code up a simple application on Windows Mobile only to have the program crash the simulator repeatedly and fail to work in anything meaningful way. Still being an iPhone user and having downloaded some applications of questionable quality I thought it couldn’t be too hard to pick up the basics and give it the old college try. Those of you following me on Twitter would have noticed how there was only one tweet on iPhone applications before I mentioned HTML5 as the potential direction for the mobile client, signalling that I might have bitten off more than I could chew.

Indeed this was what happened. Attempting to stumble my way through the other world that is Objective-C and Xcode was met with frustration on a scale I hadn’t felt in quite a while. Whilst the code shares a base in a language I know and understand many things are different in ways I just hadn’t fathomed and the resources online just weren’t the same as what I was used to. I managed to get a few things working but doing simple things like say incorporating the pull to refresh code into my own application proved to be next to impossible and still elude me. After a while though I began to think that I was missing the fundamentals that I had had when developing for other platforms and dreaded the idea of having to drudge through one of the millions of iPhone programming books.

Right in the depth of my plight I came across this Slashdot article on someone asking which mobile platform they should develop for. Amongst the various responses was this little gem that pointed me to something I had heard of but never looked at, iTunesU. I had known for a while that various universities had been offering up their lecture material online for free but I hadn’t known that Apple had integrated it into their iTunes catalogue. Searching for the lecture series in question I was then presented with 20 lectures and accompanying slides totalling several hours of online content. With the price being right (free) I thought nothing of downloading the first lecture to see if there was anything to gain from this, and boy was there ever.

Whilst the first 30 minutes or so were general housekeeping for the course itself the last 20 minutes proved to be quite insightful. Instantly I knew that the way I was approaching the problem wouldn’t work in Apple’s world and I needed to develop a fundamental base of knowledge before I could make any meaningful progress. These lectures have proved to be an invaluable source of knowledge and proved to be instantly valuable, helping me develop a base application that resembles what I hope to one day release to the world.

It’s this kind of knowledge dissemination that will disrupt the traditional education frameworks. The amount of information available to anyone with an Internet connection is unfathomable and those with a desire to learn about a particular subject are able to do so without any limitations. Back when I started at university anyone wanting to attend the lectures had no choice but to be physically present at each lecture. Sure you could probably grab the lecture notes but they’re a poor substitution for actually being there, especially when the classes are as useful as the ones provided by Stanford. They won’t make you an iPhone programming genius on their own but if you’ve done any sort of programming before you’ll quickly find yourself becoming vastly more proficient than you would bumbling around blindly in the Xcode IDE as I did.

In the end I realised there’s really no substitute for starting with the fundamentals and working your way from there. I had assumed that based on my extensive past programming experience that learning an new language and IDE would be a walk in the park. It took me several days of frustration to realise that I was using my Microsoft hammer to bash in Apple nails and that wasn’t getting me anywhere fast. Just an hour spent watching a very basic lecture proved to be more insightful than the hundreds of Google searches I had done previously. It’s still early days for me as an iPhone programmer but I’ve got a feeling that the next few weeks spent coding will be much easier than the week that has led up to it.

Selection Bias: The Silent Ignorance Generator.

It’s pretty easy to fall into the trap of thinking that your view of the world is the authoritative stance on everything. I can remember falling into that trap myself many years ago, way back in 2004 when I was first able to vote in a federal election. I, like many Canberrans, was a staunch Labor supporter and the discussions I had with my friends lead me to believe that there was absolutely no way that the Liberal party would get in. The resultthen was pretty startling and stands as one of the most distinct memories I have of being sucked into the group think and (wrongly) extrapolating that out to apply to the wider world.

Consequently the years that followed that fateful day when I realised I knew a lot less about something I thought I knew everything about I’ve been cautious when applying my understanding to the wider world. Sure it might not look that way on this blog sometimes (there have been a few posts that I’ve been horribly wrong about) but whenever I’m making some claim I always make sure I’ve got at least some evidence to back me up. As a rule if what I’m writing is festooned with links that means I’m usually writing something that I don’t believe should be taken on face value and needs to be backed up with evidence. A lack of links would indicate I’m writing something slanting towards an opinion piece, much like the one you’re reading now. I tend to strive to be logically consistent however, which I find sorely lacking in writings similar to mine.

Of course such a rant like this didn’t just come to me after staring at the blank post screen for a while. No as usual my morning browse through the feed readers for a topic of interest happened across this little gem:

Instead, like Beach says, the thing some consumers don’t like about the iPhone is that it’s AT&T only (in the U.S., obviously). Even if you live in an area where AT&T doesn’t absolutely suck, having no choice of carriers is a big restriction. People have work plans, family plans, etc, etc, that they just can’t switch. Or they don’t want to.

If the iPhone was on Verizon (which is a larger network, remember), is there any question that it would be selling at least double the amount of units it is right now in the U.S.? I don’t think so. What if it was available on all the networks? And what would happen to Android sales if that was the case? That is the big question here.

And the original article that inspired it.

The article deals with the idea that Android is only succeeding because of the exclusivity agreement that Apple has with AT&T. While I don’t argue the fact that limiting a handset to one carrier in a large market would affect sales it conveniently forgets the fact that nearly everywhere else in the world the iPhone is not exclusive to one carrier. In fact the exclusive agreements that were in place for many carriers in other countries ended some time ago. Sure the US is a large market but the conditions of the market there are not indicative of the rest of the world and to draw conclusions based on that is at best misleading.

Funnily enough the whole idea that the TechCrunch article was based off was just a throwaway line from the original article, which overall I agree with. Had the iPhone not had any exclusivity agreements with any carriers its market would definitely be larger and would have caused some issues for Android adoption rates. However the fact that Android devices are available to a much larger market due to their wide range of handset options means that whilst that would have caused problems for them initially it would only delay the inevitable. The rest of his comments I have to take on face value as I’ve only just downloaded the SDK for Android and have yet to pay the Mac tax in order to be able to do some iPhone development.

Realistically its nigh on impossible to not succomb to this kind of behaviour as you can never have all the information required on everything you need to pass judgement on. I understand that and hell I’ve made enough decisions based on incomplete information than I’ll care to admit. However understanding that your view of the world might be missing some critical information can help make your judgements more sound and rational, or at the very least give you pause before doing something that will come back to bite you in the ass sometime later.

White iPhone 4: Not Until The End of the Year.

Because a good bunch of people are coming to this blog looking for a white iPhone 4 (thanks in part to me hosting a picture with the name) I thought I’d put up a quick post to say you’re out of luck, as many outlets reported a while back:

Those of you holding out for white iPhone 4s will have to continue your practice in patience: Apple says that they continue to be a challenge to manufacture and won’t be available until later this year. That’s right—no longer will they be available in the second half of July, which was already pushed back from late June when the iPhone 4 originally launched. Apple has pushed the date back again by apparently several months, and is no longer committing to a date.

Apple’s latest statement follows one made one month ago just before the iPhone 4 hit the streets. At that time, Apple said that the white version had “proven more challenging to manufacture than expected,” and were therefore being delayed for at least half a month. Steve Jobs even said during last week’s iPhone 4 press conference, where he discussed the iPhone’s antenna issues, that the white iPhone was still on track to ship at the end of July, so either he was stretching the truth or the latest statement was a last-minute decision.

As a fellow white iPhone lover I knew this would upset a few people but it seems to be a theme with the white versions of Apple’s popular phone. Still you might be in luck as hopefully they’ll push for an antenna fix at the same time hoping to avoid the death grip problem that’s plagued many of its handsets.

Makes me a little happier that I bought the 3GS…. a little. 😉

Multi-Platform Development: Wise or Chumptastic?

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.

Symbian: The Ignored Giant.

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.

Android Going Nintendo on Apple.

I haven’t really blogged a lot about Android handsets mostly because I’ve never owned one of the beasts. My checkered past with the dominant supplier of hardware for the devices had me casting skeptical looks their way for the first year of Android’s existence but it’s become quite clear that since then they’ve managed to release some solid hardware backed up by  ever improving software in both the platform and the applications that are being developed for it. The current Android darling (HTC EVO 4G) has been selling out with an almost Apple like fever across the United States. It seems that the Android platform has finally hit critical mass, and people are starting to take notice.

The most notable data points I have to support this view is the often quote number of Android handsets sold per day. Back in February Google announced, much to everyone’s surprise, that they were shipping around 60,000 Android handsets per day. It took another 3 months before they’d quote that same metric again where upon they stunned everyone by saying that their shipped volumes had grown to over 100,000 per day. Two days ago saw them quote this metric once again albeit with the staggering figure of 160,000 sold per day:

Android cofounder and Google vice president Andy Rubin just announced at the Droid X event that 160,000 Android devices are being sold per day. That’s up sharply from last month when Google announced that 100,000 Android devices were being activated each day.

As recently as February the number was just 60,000 per day. The Droid X will begin shipping on July 15 for $200. Given how hot the EVO is selling on Sprint, we can probably expect another jump in those Android sales numbers soon.

If you take those numbers as an average then you get Android sales of approximately 14.4 million per quarter. Compare that to the most recent figures from Apple on their iPhone at about 8.8 million per quarter then it becomes clear that Android is now a very serious competitor in the mobile space. Apple might not be worried though and there’s a good reason for that, they’re taking a leaf out of Nintendo’s book (hear me out here people).

You see long before the Wii was released Nintendo was struggling to keep up with other 2 of the major console gaming giants. Sony was dominating the market with their Playstation 2 and Nintendo’s current answer, the GameCube, wasn’t the smash hit that its past generations were. Knowing that they had to innovate or die Nintendo began the process of identifying their market and began to reform themselves around this idea. In essence their target market, the loyal customers of decades gone past, had grown up and now saw Nintendo’s offerings as childish. The now grown up gamers were more happy with the offerings of Sony and Microsoft respectively and Nintendo, not wanting to lose the family friendly title they’d earned themselves, began to look beyond the gamer title to discover their biggest untapped market: people who didn’t play games. The result is the Nintendo Wii a console that was so wildly popular that they were sold out constantly for months at a time. Nintendo knew that some of the biggest markets are the ones with people not using your products.

Contrasting this with the Apple vs Android battle the similarities to Nintendo start to become apparent. Apple only makes two handsets both of which are really the same product. Granted it’s a pretty good product that is arguably the cause for the creation of its current competitors. Android on the other hand is now available on a multitude of devices with plenty more in the pipeline from multiple manufacturers. For Android sales this means that there’s a handset to suit almost any mobile phone user out there opening up a much wider market than that of the iPhone. Thus many of the features reserved for the annals of the smartphone users have now trickled down to the lower end of the market. This is simply a market that Apple won’t capture because realistically, that’s not where the money is for them.

There are of course pitfalls to capturing such a wide market. Platform fragmentation is something that all developers wanting to bring their application onto Android handsets have to deal with. For good programmers it’s an easy but time consuming task to overcome as you either aim your application at the lowest common denominator thereby limiting its capabilities or you deliberately shut out a segment of the market, potentially damaging your revenue streams or potential user base. Whilst this could be overcome with faster response times from handset manufacturers with software updates it still stands as a barrier to developers adopting the Android platform and it remains to be seen how Google will cope with it.

Realistically even though I expect Android to become the dominate player in the smartphone market I don’t think Apple will be affected that much. They carved out their product niche a long time ago and the users they courted back then will remain loyal to them for a long time to come. Android with their shotgun approach to market domination will capture more users overall but I think that for a long time to come they’ll still be playing catch up with Apple in terms of market potential. In the end though the smartphone war means better products and a bigger catalog of handsets to choose from, a boon to consumers everywhere.

It’s one of those rare occasions where everyone wins. Apple gets their profitable niche, Google creates an open platform that anyone can use and we get ever more capable phones. Isn’t that just plain awesome?

Apple’s iPhone: Don’t Think This Makes Up For What You Did.

There’s really no love lost between Apple and I. Whilst I’ve blasted them many times on this blog I’ve never made a sweeping statement against all their products since frankly, if they were crap Apple wouldn’t be in the position they are in today. Still I’ve got a beef with how they deal with developers and how they keep features from their users (citing that it’s not required or bloat) and then releasing that very feature to wide fanfare in another revision (MMS anyone?). Still with them pushing over 42 million handsets worldwide they’ve created a market that I can’t rightly ignore if I’m in the business of mobile applications that strive to have widespread adoption. So about three weeks ago I took the plunge and dropped a cool $1040 on an iPhone 3GS and I’ve spent every minute with it pushing the phone to its limits.

Now I’ve spent a considerable amount of coin on phones before but the iPhone still tops out as the most expensive one that I shelled out for. Usually when you part with this much dosh you’re greeted with packaging fit for a king with extras and accessories flowing from the box. Apple, true to their minimalistic design philosophies, give you little more than the phone, ear buds, usb cable and charger, with the whole thing fitting in something roughly the same size as a house brick. Sure I wasn’t expecting too much but I’ve bought phones for hundreds of dollars less that came with more, so my initial impressions, whilst impressed with the minimalistic nature, were soured by the fact that I had parted with so much for so little. The blow was softened somewhat by the fact that my company paid for 90% of the phone, one of the perks of being a contractor 😉

I then took the time to get the phone set up which (groan) had me installing iTunes. Now I’ve had an iPod shuffle for about a year so you’d think I already had the software installed but this isn’t the case. I’d managed to avoid it by using a program called Floola which allowed me to drag and drop music onto it. After getting the software installed (and making sure not install the bug ridden port of a browser Safari¹) I had my iPhone up and running and something caught my eye.

It was the screen on this phone, it’s really quite gorgeous. Even though my Xperia X1 has almost double the screen resolution it just doesn’t seem as nice as the one on the iPhone, even with Sony’s UI smothering the beast that is Windows Mobile’s default UI. For a long time geek like myself the UI was very intuitive and my better half (who I bought an iPhone for as well since she’d been pining for one for years) didn’t have any issues navigating around her new toy. After getting the basics out of the way I decided to go straight for the heart of the iPhone’s apparent success: the App Store.

Yet again I was met with extremely slick UI design that was done to facilitate the non-tech crowd through a world that was ostensibly for techies. In minutes I was downloading all manner of applications: Echofon, Facebook, Shazam, AroundMe all found their way onto my phone in a matter of minutes of getting it onto the world wide web. My initial disappointment with the lack of included extras was soon pushed aside by the overwhelming amount of functionality that could be unlocked with few clicks on the App store. My inner Apple critic was still shouting loudly in my ear that this was the devils store and any more attempts to dive deeper into this world would be met by damnation of all those who sit atop a pylon of free and open ideals. But the apps called to me because it was just so damned easy.

It took me a long time to be willing to part with extra money to buy something on the app store but it finally happened when I had 30 minutes to kill and I was stuck in a parking lot with just myself and my iPhone. Browsing through the free games section nothing really caught my fancy so I looked through the paid section. Noticing that a long time addiction of mine, Bejeweled, was available I happily signed my soul away and not less than 2 minutes later I was busting jewels like a pro. The game has since brought me a couple hours of entertainment, well worth the $4 I parted with for it.

I was quite surprised by the browsing experience on this phone. With many sites now creating mobile versions specifically for the iPhone (this site included, if you’re on a mobile device it will switch to an iPhone-esque theme for you) browsing sites is quite a lot easier than I thought it would be. With sites that don’t implement it the multi-touch interface makes zooming around the pages quite smooth and very enjoyable, a long way from my roots in Windows Mobile world. I haven’t had a chance to compare the experience to Opera Mini, but from what I’ve heard you gain page loading speed at the cost of some things not rendering quite right. Still I’ll stick with the default browser for now since most people design for that first if they’re creating a mobile site.

In the interest of doing a full review of the iPhone I decided that I’d best buy some music as well, and while I’m at it let’s see how it would perform downloading an entire album over the cell phone network. Hitting up the store I decided that I’d grab an album of a band I’d just recently come across: Miami Horror. For the princely sum of about $8 I was treated to a full album of tracks and in the space of a 15 minute walk all but 2 tracks of it had finished downloading. Colour me impressed as I’ve tried doing things like this before on other phones and been quite disappointed. The whole experience left me wanting to do it again just for the sheer novelty of being able to think of a bad, look them up on iTunes and have their album on my phone in less time than it would take for me to drive to the closest record store. Once again Apple’s philosophy of “It just works” seems to be a winner.

But of course since I am at heart a geek there are some things about my new iPocketCandy that aren’t all sunshine and rainbows. In the nation’s capital 3G coverage is somewhat spotty for my carrier (Three) and this usually incurs me roaming whenever I go indoors. That’s not too much of a problem since the iPhone has a switch to not use Internet when roaming (which is bloody awesome, I had to get an application for Windows Mobile to do that). However the process of getting it to switch back to 3G takes about 2 minutes or so to complete when the same operation on Windows Mobile took about 10 seconds. Given that the device also freezes for about 5 seconds when switching networks by itself this has become a bit of a bugbear, especially considering I’m in and out 3G reception most of the day.

I’ve made a habit of keeping a good contacts file in my Outlook ever since I moved to a Windows Mobile phone. You can then imagine my elation when I saw an option to sync directly from Outlook in iTunes. That was until I actually tried to sync them to my phone upon which I received the error that there was no default mail client installed. Funny that since I had the email client open at the time. A couple furious Google searches later proved that I wasn’t alone in this problem and it in fact lies with Apple, since they haven’t built in support for the x64 version of Outlook. For a company that likes to tout itself as an innovator it gives me the irates when they miss something as simple as this, especially when the problem has gone unresolved for months. I ended up creating a CSV file of my various contacts and uploading them into Google Contacts (I’d never seen this before) and syncing them that way. That’s 4 hours of shenanigans that I shouldn’t of had to go through.

There are also some other tasks, like importing your own ring tones, that feel like they were purposefully made difficult so that you go for Apple’s solution. When you first plugin your iPhone iTunes won’t even show the ring tones folder, which would send most people straight off to the store to buy a ring tone they want. Sure its relatively easy to work around but is it really that hard to have the option there right from the beginning? I’m sure the sales department had a say in how that whole thing went down.

The iPhone is also the reason why I believe the iPad is not a revolution of any kind. Whilst I’ve yet to get my hands on an iPad the countless videos and reviews I have read show me little more than an overgrown version of the very phone I now carry with me. Most of those 42 million people who bought the iPhone did so because they actually had a use for the damn thing. The iPad however fills a need that none of them had previously and subsequently I can’t fathom that the initial rush of purchases are anything but people who would buy whatever latest widget that Apple released. Sure it would make a great “coffee table device” but really think about how often you would actually use such a device, and then think again if you had an iPhone in your pocket. The use cases for the iPad shrink considerably the more thought you give to purchasing it, which ironically I think is the exact reason why it has so sold many (yes I just called all iPad owner’s thoughtless brand whores, what are you going to do about it?).

That all being said however I can’t detract from the fact that the iPhone is the best mobile phone I’ve ever had. Everything about it just works (eventually at worst) and the amount of functionality that can be unlocked through the App store is quite phenomenal. Apple’s commitment to making what was once geek now chic works incredibly well with the iPhone and I can see the reason why over half of my tech oriented friends choose the iPhone as their smart phone. For anyone that can afford one the iPhone is a purchase that you won’t soon regret and I’m very much looking forward to seeing how my future Android purchase (currently shaping up to be a HTC Incredible) shapes up along side it.

¹Seriously, Safari on Windows is a bloated piece of garbage with numerous security holes. From all accounts its fine on OSX but it seems the team who ported it to Windows didn’t put a heck of a lot of thought into it and as such I can’t recommend it to anyone. Chrome/Firefox are still the safest and best browsers on this platform.