Is Cross-Platform Development Right for You and Your Mobile Medical App?

Your company has decided to create a mobile medical app. Perhaps it will monitor your medical instrument, streamline the workflow of a health care practitioner, improve patient compliance, or educate patients. When you come to us to develop your app, we’ll ask a series of questions to determine your requirements.

One of the first questions we’ll ask is, “Which mobile platform do you want to support: Android, iOS, or both?” (Although there are other options, Android and iOS have the lion’s share of the market and my focus will be on supporting these two mobile platforms.) If you answer “iOS only” or “Android only”, our follow-up questions will be, “How likely is that to change?” and “Have you considered the possibility of supporting the other platform in the future?” Having managed multiple mobile development efforts, I have found that thoughtful and early consideration of these questions is essential for choosing a cost- and time-effective means for development. In fact, one of my current clients initially targeted a single platform and is now facing the possibility of supporting the other platform. Fortunately, we had discussed and agreed on cross-platform support before development began.

Regardless of whether you are considering supporting or will definitely support both platforms, what development environment is right for you and your mobile app? The options are to use the native environment, for “just iOS” or “just Android”, or a cross-platform environment which will support both.  Let’s explore cross-platform development.

What is cross-platform development?

Cross-platform development is essentially using a single language to create your apps for the target mobile platforms rather than the native development environments. The languages can be C#, HTML, or JavaScript, for instance; it depends on the choice of cross-platform tool. For a variety of reasons, Syncro tends to recommend the use of Xamarin Studio for our client projects. (That’s what we used for that client I mentioned earlier. So, rather than rewrite the entire app, we’ll only need to create a new UI and service layer in order to support the other platform). While the details here apply to Xamarin, most of them will apply to other commonly used cross-platform tools, such as PhoneGap and Appcelerator Titanium.   (The difference between these tools and their relative advantages and disadvantages is a conversation for another day.)

Why Use Cross-platform Development?

The primary reason for cross-platform development is to have common code across platforms.  Since development uses a single software language, a significant portion of the code is common to all platforms.  Common code written in a single language has many benefits:

What trade-offs accompany cross-platform development?

I know what you’re thinking. “That all sounds great, but what am I giving up?” Well, just like everything else in engineering, there are trade-offs. Some of them depend on the selection of the cross-platform tool. In general, you should consider the following when choosing whether or not to use a cross-platform tool:

What else to consider?

Since all things are never created equal, cross-platform development has some nuances to keep in mind:

With some cross-platform development, a unique UI for each platform is created. This can certainly be a benefit because creating apps that make use of familiar native features will typically increase the app acceptance.

Where to go from here?

There are two primary environments for developing mobile apps: cross-platform and native.  As discussed above, cross-platform development generally saves you time, effort, and money. However, cross-platform development may not be appropriate for all scenarios. Nevertheless, for large mobile medical apps that are likely to run on both Android and iOS devices, cross-platform development should strongly be considered. Since multiple cross-platform tools exist, the remaining task is tool selection.