The technology world has undergone a major upheaval in the last 10 years. A decade ago you didn’t have to worry about what platform you created your applications for, rather you only needed to worry about what versions of Windows you would support.  At the time Microsoft had a lock on the market, making it easy to make development choices.

Fast forward 10 years and the computing landscape have changed drastically. Mobile Computing has skyrocketed, with Android and IOS dominating the space.  PC shipments have declined year over year, and the “bring your own device” movement has shifted support and buying decisions from the IT department to the end user.  This has created an environment where you can no longer afford to just build your application for the PC.  To complicate things, the skills and knowledge needed to develop for these platforms are drastically different.

If you were to develop an application today in the traditional manner, you would need to have three teams, a Windows team, an IOS/OSX team, and an Android team.  Not only is this costly, but now you also have three separate code-bases to support.

In this scenario you have also increased the level of complexity involved.  Will all three versions of your software have the same options?  If not, you run the risk of alienating a section of your target market when they see that other platforms have features they do not.  Do all of your applications look and feel the same?  If I switch from an IPhone to an Android phone will I need to relearn the application?  These problems and others like them are often not discovered until it is too late.  Building software is hard.  Building the same(-ish) software three times is insanity.

You also now have to support three separate code bases.  If a bug pops up in your Android app, and requires a change to something fundamental to your backend systems, you now have to modify all three applications to support the fix.  If you add new features, you now have to wait for the slowest team to roll out the changes.

This can be avoided by choosing a cross-platform development strategy.

The benefits of using a cross-platform development strategy are numerous; Increased market-share for your application by being available to multiple platforms, shorter time to delivery, decreased support costs, decreased development costs, and a more unified experience across platforms.

Fortunately, there are tools available that allow you to develop for multiple platforms at once.  Tools such as Xamarin (www.xamarin.com) and Node-Webkit (www.nwjs.io) allow you to build a shared code base and compile native applications for multiple platforms.  Using tools such as these decreases development and support costs as well increasing available market share.

Even an organization like Microsoft, which has traditionally resisted developing for other platforms, is embracing cross platform development.  Microsoft recently announced the ability to not only build universal windows apps that will run on both windows and Android, but also the ability to import Projects from Xcode (the development platform for Apple products,) directly into Visual Studio and recompile them to run on Windows.

The tech landscape has changed.  Our world is becoming more mobile and connected than ever before. Where you once only needed to build for the PC, you now have to build for Tablets and Phones as well.  Cross platform development is a smart way to reduce your development costs, and it is important to choose a vendor experienced with the different tools and challenges it entails.

Need help with a development project? Contact us here