Skip navigation EPAM

Surviving in a Mobile-First World: A Guide to Choosing the Right Development Approach (Pt. 2)

Elvin Rakhmankulov

Director Technology Solutions, Head of Mobile Competency Center, EPAM US
Blog

As mobile usage continues to rise with people spending an average of three hours on their mobile devices each day, companies are truly understanding the need for effective mobile strategies. In the previous installment of this series, we examined the benefits to using a pure native approach in mobile application development. In Part 2 of this series, we will dive further into the cross-platform native approach.

The cross-platform native approach, as its name suggests, allows us to build native experiences once and deploy to multiple mobile platforms. In other words, we can reduce development costs by gaining the efficiency of having a single code base and single development team with this skill, yet still deliver a truly native user interface (UI) and mobile experience.

One challenge with the cross-platform native approach would be having direct access to the latest mobile platform APIs. While newly introduced APIs become available for pure native developers months before an official software development kit (SDK) release, they’re often not available for cross-platform native developers until the day of or sometime after the release date. A potential solution to this challenge could be creating cross-platform bridges or bindings in-house instead of waiting for the cross-platform native frameworks to be officially released.

Another challenge with this approach is reaching UI pixel-perfection. Since the most cost-effective approach would be to create the same UI for both iOS and Android platforms, it’s often hard to achieve a pixel-perfect user experience. However, there are two cross-platform native technologies that provide ways of creating pixel-perfect UI by using the pure native approach for creating UI screens, while the rest of the app is created using the cross-platform approach.

The two technologies often used to deliver cross-platform native mobile solutions are Xamarin and React Native. Both technologies have been widely adopted in their respective global development communities and preferred by many of our clients.

Xamarin and React Native are based on the programming languages used in other non-mobile platforms, which allows this wide adoption to occur. These technologies are quite different, but both prove to be great platforms to deliver mobile experiences with Native UI.

Xamarin is a technology that uses .NET and C# programming language, and is often the logical choice for organizations who have a preferred technology or who use Microsoft’s solutions, such as Azure, because Xamarin provides an excellent way of integrating with Azure services while providing a true native experience. This language comes in two flavors, which are Xamarin.Forms and Xamarin Native (Xamarin.iOS and Xamarin.Android). The amount of re-usable code and end-product experience is different in those two approaches. Libraries created using the pure native approach can be used in Xamarin through a process called “binding.”

Microsoft owns this technology and manages its development. However, some parts of the Xamarin toolset are now open source, offering developers the best of both worlds: support from a resourceful software giant, all while being transparent and open for extension and modifications by the development community. With that said, the majority of development and maintenance today is performed by Microsoft Xamarin teams.

React Native is a technology that allows for building native mobile apps using JavaScript and React, a popular JavaScript library for building user interfaces. This technology is good fit for companies that are willing to use open source technologies or prefer using web technologies because they have in-house JavaScript experts.

While React Native is open source, it’s also backed by large corporations. In contrast with Xamarin, the development and maintenance is completed not only by this corporation, but also by a large community of individual developers and other corporations. One of the biggest advantages of the React Native approach is that that the same team could work on web front-end and mobile native apps. Also, some non-UI code can be re-used between web and mobile apps. Additionally, pure native modules can be easily used in React Native projects using a process called “bridging.”

Overall, leveraging the cross-platform native approach opens up many opportunities for mobile app developers, including:

  • Having the ability to deploy native experiences to multiple platforms
  • Receiving support from a global community of mobile developers
  • Gaining flexibility with open source technology backed by large corporations
  • Reaching pixel-perfect user interface quality

If you haven’t quite decided on the mobile development approach that’s ‘just right’ for your business, there’s still more to come. In the final part of our series, we will take a closer look at the cross-platform hybrid approach.

Hello. How Can We Help You?


Our Offices