10 reasons why you should be a cross-platform developer

July 11, 2017

I started my career as an iOS developer, but after 6 months in my role, I was given the chance to extend my skill set by exploring the strange but wonderful world of Android development. Jumping on a new platform was initially daunting, but the outcome has been well worth it. After a year of working as a cross-platform developer, I have built up a list of reasons why you should do the same, too.

Market share

iOS and Android are both major players in the market, and one does not simply build an app for Android and not for iOS. According to Kantar Worldpanel (2017), in large markets like Australia and the United States, Android takes up about 60% of the mobile OS market share, while iOS sits at 37%. Despite this difference, 37% still translates to an immense number of users. The statistics also show that iOS users tend to have a higher income and, most importantly, are more engaged in applications. Clearly, there are benefits to both platforms, and as a result, neither platform should be overlooked. This is especially true if you are an independent developer, as having your app exclusively on one platform implies leaving out half or more of the user base.

Similarity

By nature, there are a lot of similarities between these two platforms, which makes switching between them a breeze. For instance, iOS has Table View, and Android has List View; iOS uses Navigation Bar, while Android uses Tool Bar, etc… The components behave in mostly the same ways, albeit with slightly different implementations. If you are familiar with building apps on one platform, it will take you no time at all to pick up the other.

The most noticeable change that you need to adapt to when working on a new operating system is its programming language. The introduction of Swift and Kotlin as the primary development languages for iOS and Android has further blurred the lines between the two platforms. Swift and Kotlin are so alike, it’s like hearing an Australian English speaker in America: you understand most of what the person says and only occasionally need to consult a dictionary. Thankfully, there are few things a 30-second Google search cannot solve.

Reusable practices

Some things are better implemented on one platform than the other, and many of the practices are transferable. For example, prior to building Android applications, I had a tough time managing constant text strings in Xcode. There was hardly any standard; every project handled it differently, and none of the treatments were ideal. I was intrigued by the way Android Studio deals with the issue using their R Resources system, which led me to a third party library written for iOS called R.swift that perfectly mimics Android’s R. In short, developing on a new platform can present you with a solution to an existing issue that you have with your current development platform, and teaches you new approaches that you may have never thought of.

Hybrid options

Is building native applications on different platforms too time-consuming for you? There exist an extensive range of cross-platform development engines such as PhoneGap, Intel Multi-OS Engine, or Xamarin, which do a decent job of creating platform-specific applications using a single code base. The quality of the outcome is not necessarily restricted, either. Some well-known and highly polished applications like Slack and Pinterest were built using Xamarin.

However, one important caveat is that each comes with its own weaknesses. For example, Multi-OS Engine generates additional overhead on top of an iOS application, most have a lack of support for popular third-party libraries, and some avoid the use of native components, utilising web technologies such as HTML5, CSS3, and JavaScript instead. Sure, these technologies will improve over time, but as of now, Xcode and Android studio still provide developers with the best tools to work with their respective Operating Systems.

Other legitimate reasons

In addition to the four valid reasons above, here are 6 more quirks you can gain from becoming a cross-platform developer:

  • You can be more versatile
  • Are you a fanboy/fangirl of one platform? Having some knowledge of the opposing operating system gives you an edge in arguments on how your preferred platform is more superior
  • Your managers will appreciate your versatility
  • You are the real IT expert among friends and family, who can fix any issue, no matter which platform your family members are on
  • You are able to port a whole application or a single component to a different platform with ease
  • Versatileness

Bottom line

There are probably a hundred more reasons why you should work on multiple platforms, but ultimately, it is what you build that matters most. Do not hesitate to engage with something that is unfamiliar to you. Not only will doing this widen your knowledge and experience, but it also opens up new opportunities that make the extra effort worth your while.

 


 

Author: Loc Nguyen, a Software Engineer at Arq Group

 

Cross platform-development