Building Cross-platform Mobile Apps Using Xamarin

I’ve never been big on fads. Quick fixes aren’t my game. I believe in the “no pain, no gain” philosophy and I don’t do shortcuts. So when Keller Schroeder decided to jump into mobile app development, my first choice for a strategy was to use all native tools. I wanted a pure approach that kept us close to the OS and gave us the greatest ability to tap into device features. And I was not afraid of asking the team to dig in and learn new platforms and tools – they’re a talented bunch and I knew they were up to the challenge.

But I gotta tell ya… there are a couple things in my makeup that supersede my need to never back down from a challenge. It’s my desire to get things done efficiently and with a high degree of quality. So, when many client discussions that started with building an iPhone app quickly turned to, “how much more effort is it to add an Android version”, it didn’t take long to see that doubling the development time (and the cost) was not going to be an efficient way to get these projects done. So we sought out alternatives and settled on a tool called Xamarin.

Unlike other mobile development tools we investigated, Xamarin isn’t a code generator; wizardy app builder; or wrapper type of tool. It’s a cross-platform development tool that allows you to use C# to build your apps and use that same code across iOS, Android, and Windows Phone development. Now that’s MY kind of efficiency!

There are two major advantages to using Xamarin:

Developing in C#, leveraging your existing .Net skills – no new language to learn, or at least limiting the learning to one new, mainstream language if you don’t already know it

Maximizing code reuse, which translates into big time and cost savings

Xamarin encourages developers to strive for 90% code reuse. This means that when you write an app for multiple platforms, you are able to share 90% of the code and only 10% has to be platform-specific. That’s almost buy one, get one free, right? Well, I do have to tell you that there is a process to getting there. In our first projects we were hitting about 30% reuse. But since then, we’ve learned a lot about how to consolidate and structure our code and are currently achieving about 75% reuse. For example, in our most recent project, we spent about 9 weeks of development time building the iOS version and all of the common code. When the Android developer started, he completed the Android version of the app in just over 2 weeks. We even followed up with a web page that also tapped into the common code (C#), so the efficiencies continued to grow.

To be fair, there’s no way around the fact that you still have to learn the device platform. You have to understand a phone user’s experience and expectations, and these standards vary across the major devices. Building for a touch interface is very different than building for a keyboard and mouse interface. So, even with the tool, the process of going mobile is not without its learning curve. But by using Xamarin, we have been able to utilize the team’s existing .Net skills to shorten that learning curve significantly. This translates into huge time and expense savings for us and our clients when they engage us in a mobile project, but also when we transition the support over to their existing team of .Net developers. The process becomes one of understanding the architecture, not learning a new language.

Now, does that sound like YOUR kind of efficiency? If so, contact Keller Schroeder for more information on how we can help you get to efficient, high quality mobile solutions in less time and with less investment.