Skip navigation

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

  • Canada

    • Ottawa

      343 Preston Street,
      ON K1S 1N4, Ottawa
      Canada

      Map
    • Toronto

      5 Park Home Avenue,
      Suite 400,
      ON M2N 6L4, North York,
      Toronto
      Canada

      Map
      F: +1-416-595-1551
  • Mexico

    • Guadalajara

      Periférico Sur #8110,
      Col. El Mante
      45609 Tlaquepaque, Jalisco
      Mexico

      Map
  • United States

    • Newtown, PA

      41 University Drive,
      Suite 202,
      Newtown, PA 18940
      USA

      Map
      F: +1-267-759-8989
    • Bellevue, WA

      110 110th Ave. NE,
      Suite 310
      Bellevue, WA 98004
      USA

      Map
    • Boston, MA

      21 Drydock Avenue,
      Suite 410 W,
      Boston, MA 02210
      USA

      Map
    • Conshohocken, PA

      101 East 8th Ave,
      Suite 201,
      Conshohocken, PA 19428
      USA

      Map
    • Los Angeles, CA

      11601 Wilshire Blvd,
      Suite 350,
      Los Angeles, CA 90025
      USA

      Map
    • New York, NY

      24 West 25th Street,
      5th Floor,
      New York, NY 10010
      USA

      Map
      F: +1-267-759-8989
    • Philadelphia, PA

      30 South 15th Street,
      9th Floor,
      Philadelphia, PA 19102
      USA

      Map
    • San Francisco, CA

      222 Kearny Street,
      Suite 308,
      San Francisco, CA 94108
      USA

      Map
    • Washington D.C.

      7901 Jones Branch Drive,
      Suite 400,
      McLean, VA 22102
      USA

      Map
  • Australia

  • China

    • Guangzhou

      Unit B01, 23/F,
      Yuexiuxinduhui Building,
      No. 236, 6th Zhongshan Road,
      Yuexiu District, Guangzhou,
      China 510180

      Map
    • 广州

      中国广州市越秀区
      中山六路236号
      越秀新都会大厦中座 23楼 B01室
      邮编510180

      地图
    • Shanghai

      Room B509, 5th Floor,
      48 Weihai Road,
      Huangpu District, Shanghai,
      China 200000

      Map
    • 上海

      上海市黄浦区
      威海路48号
      5楼B509室
      邮编200000

      地图
    • Shenzhen

      3/F, Block 5, Vision Shenzhen Business Park,
      9th Gaoxin South Road, 
      Shenzhen Hi-tech Industrial Park,
      Nanshan District, Shenzhen,
      Guangdong, China 518057

      Map
    • 深圳

      中国广东省深圳市
      南山区高新南九道
      威新软件园5号楼3楼
      邮编518057

      地图
    • Suzhou

      Building 12, Creative Industrial Park,
      328 Xinghu Street,
      Suzhou Industrial Park,
      Suzhou, China 215123

      Map
    • 苏州

      中国江苏省苏州市
      苏州工业园区星湖街328号
      创意产业园内12号楼
      邮编215123

      地图
  • Hong Kong

    • Hong Kong

      26F&17F, The Wellington Tower,
      198 Wellington Street,
      Central, HK

      Map
  • India

    • Bangalore

      Smartworks,  
      Global Technology Park,
      Block C, Outer Ring Rd,
      Adarsh Palm Retreat, Bellandur,
      Bengaluru, Karnataka 560103
      India

      Map
    • Hyderabad

      10, 11 & 12th Floors,
      Salarpuria Sattva Knowledge City,
      Plot No. 2, Phase - 1,
      Survey No. 83/1,
      Raidurgam Village,
      Serilingampally Mandal,
      Hyderabad, Telangana - 500081
      India

      Map
    • Pune

      SmartWork Business Center Pvt Ltd,
      Suite 8, Level 1,
      West Wing, Nyati Unitree,
      Samrat Ashok Road,
      Yerwada, Pune - 411006,
      Maharashtra
      India

      Map
  • Japan

    • Tokyo

      Floor 1-10-11
      Shibadaimon Centre Building 10th
      Shibadaimon Minato-ku
      Tokyo 105-0012
      Japan

      Map
      F: +81-03-6880-9201
  • Singapore

    • Singapore

      5 Shenton Way
      UIC Building, #10-01,
      Singapore (068808)

      Map
  • United Arab Emirates

    • Dubai

      EPAM Systems FZ-LLC Dubai Branch
      2307 Arenco Tower, Dubai Media City
      PO Box 501929 Dubai
      United Arab Emirates

      Map