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 patent compliance, or educate patients.  When you come to us for mobile medical app development, 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 Andriod”, 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 by 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 mobile medical app 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:

  • The common code is written once.  So, cross-platform development requires less code than the native environments, which require developing the entire app for each platform.  Common code translates to less time for app development, lower cost, and less time to get your app to market.  For a large application, this equates to huge savings.
  • Familiar languages used in cross-platform tools also decrease development time.  The team already knows the syntax, grammar, and other constructs of the language.
  • Industry architectural and design patterns, such as MVVM, exist for some cross-platform tools.  MVVM (Model-View-ViewModel) increases the amount of common code, leaving primarily the UI and platform-dependent services to be built for each platform.
  • Fewer platform-specific specialists are needed
  • Constructs in the language may be more robust that the native languages.  For instance, the robustness of garbage collection typically surpasses iOS’ Automatic Reference Counting.
  • Engineers only need to be proficient on one development tool, not two.
  • A single language simplifies team interaction, code review and coding standards because everyone speaks the same language.
  • There is a single code set to maintain.  Adding or changing features for 2 platforms occurs mostly in a single place in the code.
  • Since cross-platform tools use a single language, apps for both platforms can be developed simultaneously or sequentially.  There is no difference in overall cost or effort because the same amount of code is written either way.

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 to use a cross-platform tool:

  • Your app is likely to depend on services (e.g. email and Bluetooth) provided by the operating system.  Therefore, this requires some understanding of the native platforms.
  • Cross-platform development environments do not always fully support the native OS.  Some features, tools, or documentation may be missing, inadequate, or implemented differently.  In cases when the cross-platform debug tools are not as comprehensive as the native tools, we use the native tools.  In our experience, we’ve been able to overcome any shortcomings in the cross-platform environment.
  • Native OS features or functions do not always fit into the architecture of the cross-platform code.  For instance, iOS storyboards do not work with MVVM because the view models control the navigation.  This requires creating the view with the XIB files.
  • Due to the way cross-platform frameworks create the apps, they may add overhead to small applications.  Each app and its potential extensibility need to be evaluated on a case-by-case basis.

What else to consider?

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

While the functions, features, and basic navigation remain the same for each platform, the app user interface can be developed in two primary ways:

  • The user interface can take on the fit and form of apps for the native OS following Android design guidelines or iOS Human Interface Guidelines
  • The user interface assumes your own brand, fit and form

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.

Apple notoriously release new versions of iOS every year and sets deadlines for when the new SDKs need to be integrated into App Store submissions.  Although developers have access to iOS beta and GM (Golden Master) seeds, the release of the cross-platform tool updates may lag behind the release of the seeds.  Our experience has been that tool vendors generally release updates relatively quickly and certainly prior to the Apple deadline, ensuring time to update the code as needed.

Where to go from here?

There are two primary environments for developing mobile apps: cross-platforms 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.

Rose Marcantonio is Director of Quality and Process at Syncro Medical. Rose has been working as a software engineer and manager in the Biomedical Industry for more than 25 years, first in medical research and subsequently in medical device development. During her 15 years in leadership roles at Syncro Medical, she has managed a variety of development projects for instrument and systems software as well as mobile devices. Rose leads Syncro Medical’s quality assurance effort and focuses on improving internal project management and agile processes. She is a Microsoft Certified Technology Specialist. Rose holds a BSEE and an MS in Biomedical Engineering. Outside of work, Rose enjoys crafts and gardening and is an avid community volunteer.

Comments are closed.