Mobile apps have never been hotter than they are today. When the iPhone was released in 2007, your company may have had 1 or 2 apps. These would be done as 1-off projects, all developed separately and then released to their respective app stores. Today, companies are developing 10s and even hundreds of apps and they’ve started to extend not only to customers, but to vendors and internal employees as well. Rapid development of powerful, connected, and visually stunning mobile apps has never been more necessary than it is today.
Previously, you might have had a team writing iOS apps and a separate team writing for Android. These were separate skillsets with separate knowledge bases and tools so we treated them as such. Today that is no longer the case. The concept of cross-platform mobile development is here, and like any hot new trend in the IT world, there are a multitude of approaches to it. Each one has its pros and cons. Among these is a framework from Xamarin. Previously, this library was licensed commercially at no small cost. However, with the acquisition by Microsoft and its subsequent open-sourcing, this is no longer a barrier. We here at Anexinet have evaluated them all and feel that Xamarin provides the best possible experience with the fewest concessions. I want to give an overview of the pros and cons of Xamarin and how it compares to other cross platform methodologies and hopefully you will see why we are investing heavily into Xamarin development at Anexinet.
HTML5 Hybrid Apps
One of the original approaches to cross platform mobile development came in the form of HTML based apps. A multitude of approaches exist here with Apache Cordova being one of the leaders. However, there are also commercial offerings in the form of the Sencha Touch framework and the commercial/freemium Telerik Platform. In each case, your app is really just a series of web pages running inside a container which acts as a sort of web browser. Each framework in this category have methods to access features of your phone like the camera or motion sensors, however generally these are a bit limited and when you find yourself needing something they don’t expose, you are out of luck. Also, because the look and feel of your app is controlled via CSS style sheets, HTML based mobile apps are generally not perfect matches to the look and feel of the platform they are deployed on. They tend to also be a bit outdated, or sometimes don’t react to new form factors or screen resolutions. In general, users can look at one of these and tell that something isn’t quite right. If that person is a developer, they will know it is an HTML based app.
It might be worth mentioning what we mean by “native” mobile apps. Each mobile platform offers a toolchain and set of APIs which offer developers the tools they need to develop for that platform. For instance, Apple offers the Xcode environment and the iOS SDK which gives the developer everything they need to create great mobile apps for iOS. Unfortunately, this means that you have to write a separate app coming from a separate code base for every platform you want to support. It also means that you need to have developers with vastly different skillsets. For iOS, we write applications in Swift or Objective-C. For Android, we are writing them in Java. Both platforms have vastly different approaches to UI design or patterns that are used in their API. If you go the full native approach, you need to have developers who can do both. And in a year, when management wants to add support for the desktop, or Windows Phone, or some other vastly different platform, you have to start from scratch.
Having Your Cake and Eating It Too
You might be left wondering, “How can I cut costs and minimize my investment while still getting awesome, native apps?” Well, here at Anexinet, we feel Xamarin is the solution that gives you the most value. Xamarin sits comfortably in between in between hybrid and native applications. How do they do this? They leverage the cross-platform .Net implementation known as Mono to create APIs that mimic the native SDKs provided by Apple and Google. But, underneath, the Xamarin APIs are actually implemented using the same SDKs that developers use to create great native apps. You can use Xamarin.iOS or Xamarin.Android to leverage your .Net developers to create 100% native mobile apps. And, since it is a commercial (and now free) product, you have the peace of mind knowing that they guarantee day 1 support for new features provided by those vendors. They then take things further and provide Xamarin Forms. Forms allows developers to create apps with a large amount of shared code while still creating custom native components when you need it. We’ll talk more about how this works in future posts, but for now suffice it to say that with Xamarin you really do get the best of both worlds. Native performance, appearance, and API availability with the rapid development and shared code that you normally only get when developing hybrid apps. And now that Microsoft has purchased Xamarin, the product is now free for all of us to develop with. Get out there and make some great native apps with .Net!
Anexinet is a leading professional consulting and services company, providing a broad range of services and solutions around digital disruption, analytics (and big data), and hybrid and private cloud strategies. Anexinet brings insight into how technology will impact how business decisions will be made and how our clients interact with their customers in the future.
Chris Tartamella, CTartamella@anexinet.com