#blog

What are my options for developing an app for both iOS and Android?

By John, Eastpoint Software on 30 June 2018

Cross-platform development is an oft misunderstood concept.

Cross-platform mobile application development is still a largely misunderstood concept, so I hope to share a little insight here to help clarify things.

If there is anything you’d like me to cover in a future post, please let us know.

What is cross-platform mobile app development?

By cross-platform mobile application development we generally mean developing mobile apps for both iOS and Android (sometimes even Windows) in one go, with one code-base.

Why is cross-platform development so sought-after?

Simply put, cross-platform development has the potential to deliver greater business value, and at a lower cost in most scenarios.

There are rare occasions to be aware of where cross-platform doesn’t always make the most sense. One primary example is when we are using platform specific technologies, such as a project we’re currently working on using ARKit (Apple’s built-in toolkit for Augmented Reality) – blog post to follow soon!

But more often than not our team finds cross-platform application development offers all of the benefits, but far greater value for money to our clients and faster progress on development projects and future enhancements.

Cross-platform app development options

There are a wide selection of platforms competing for our attention when we look to decide on how to build apps.

The standard approach: native.

The ‘simplest’ way to build an app for iOS and Android is to build a ‘native’ app for each by directly using the technologies provided by the vendors, Apple and Google. Typically this involves using at least two different programming languages (either Swift or Objective-C for iOS and Java for Android).

Hybrid: web applications dressed as mobile.

There are a number of options for development of such apps by using web technologies – effectively creating a web app and wrapping it within a mobile app. This is a great option for those familiar with front-end web development technologies, in particular JavaScript, HTML and CSS. At the forefront of my mind here is Ionic - a great option for cross-platform hybid apps.

Native apps developed with Xamarin

You’re going to call me biased here. We’re Microsoft Certified Partners and Xamarin Certified Partners after all. But we chose this route for a reason.

Xamarin offers all of the benefits of native application development, and the potential for the same results (after all, we still build native apps with Xamarin). However, unlike native, we can target both iOS and Android (and Windows if needed) with a single code base, using a single programming language [C#].

This is a great option for teams with existing .NET experience, but one word of warning: us developers do need to become familiar with the platform APIs, because we are using the same APIs (just using C#) to create a native app.

Summary

We find each of these approaches very valid, but a little care is required in deciding the correct route for each application, and the planned features it may require in the future.

This is a discussion we have with our clients at the outset of each project, but, of course, it’s impossible to predict exactly what the future requirements may be.

Xamarin offers the best of both worlds. Faster development, less code, one programming language, but all of the features and properties of native app development.

We find Xamarin is the best fit in the majority, but not all cases.

What next?

This is a pretty high-level post about our options when selecting a technology for app development. I’d love to hear back to find out what you might be interested in reading about more: if you have thoughts on this, please do post below.

If you’re based in or near Cambridge, interested in getting into real technical details, please consider joining the Xamarin meetup group.

To find out about hiring our team of mobile application development experts, why not take a look at our Xamarin development services.