Gone are the days when you could whack together a quick windows app and call the job done. Back when Microsoft had over 85% market share on the home desktop pc you didn’t really need to worry about mac OSX, or linux. It was only the hardcore programmers that would play around with grep and regex etc. commands on linux.

Nowadays, the situation is quite different. Almost everyone I know is moving to an iMac or Macbook. One of the main reasons I moved over was because I could still run windows on a macbook. That made the decision so easy. Such a smart move on apple’s part to integrate Intel processors into their systems. Now I run Windows and OSX at the same time using vmware fusion and it works great.

Linux still doesn’t seem to be a major player in the desktop operating system scene, but there’s always rumours of linux making big moves to compete in this space. Generally I find that most cross platform development applications that support mac and windows will also support linux so there’s usually no need to setup a linux box to create and test applications. I only ever bother testing on mac and windows. That’s probably not a die hard developers ideal point of view… but it gets me by.

You can still develop windows apps, and do quite good sales volume. I have noticed that quite a few internet marketers are still developing windows only apps, but I think those marketers will need to adapt to cross platform apps very soon as more and more people are using OSX and are demanding a compatible solution. Specifically I’m thinking of Alex Goad’s Rank Builder app which I bought when it was released. A very good app and lucky for me I could run it on windows using vmware fusion. It looks like it’s built as a windows form application in Visual Studio. Quite a complicated application using multiple dll library files and xml files for data storage. I would be interested to know the stats on how well that application sold and what the support requests we’re like. I am thinking he may have had a lot of people refund because they couldn’t get it to work on their mac.

So, what’s the options when creating applications for end users?

Well, not only do you have to think about multiple operating systems but you also have to think about whether the app is going to be web based or a hybrid desktop/web application. Adobe’s AIR environment is quite a good option as it is cross platform and there are a lot of tools around to develop AIR applications. The popular Market Samurai software uses AIR.

I was right into Adobe flex builder a few years ago before I got more involved in business and marketing. That was when Adobe just released AIR. I remember getting quite bogged down with MVC design architecture and cairngorm but I managed to develop some simple applications including a graphical analytics application that I still use today to check my traffic stats across all my sites. That app uses Adobe charts and Midnight Coders Weborb for php to connect to my mysql database using AMF remoting. I haven’t touched AIR in quite a while but my current programmer is developing an application for me that utilizes AIR, and he’s developing it in javascript using Aptana IDE. A totally different approach to how I was inclined to developing AIR apps.

The other option is leveraging existing tools that are already cross platform. It seems every major software has support for plugins and addons developed by third party users nowadays. A good example of this is my most recent tool, Domain Digger Pro which leverages a web browser to gather and compile data from different sites. Initially I created this as a windows software just like Alex’s Rank Builder. I was being very “old school” and created a simple vbs script that opened internet explorer (as that is the only option when developing with Microsoft) and used the DOM model to collect data from pages, and javascript injection to fill and submit forms. I then created a wrapper with Visual Studio so I could have a simple UI where the user could input data and click a button to run the vbs script. Worked great on my windows xp vm, but when I released it to the public I had heaps of people experiencing problems with Internet Explorer, errors on Windows 7, etc. which overall meant it wasn’t a good solution for a basic user. Not to mention that I was ignoring half the market who run OSX. After consulting a few of my techie friends, the obvious solution was to make it a Google Chrome extension. Chrome is already cross platform, and I could simply modify my app to have a simple html UI that opened when the icon was clicked in the toolbar. Perfect!

The other option for cross platform desktop apps is java, but I haven’t played with that yet. At the moment I’m satisfied with AIR for desktop applications or hybrid web/desktop apps, and developing extensions or addons for widespread applications like Google Chrome, Mozilla Firefox, and possibly in the future mobile devices like the iPhone.