Tradeoffs of Using Mobile Frameworks like React Native for Mobile Development Projects
One of the real challenges of mobile development projects is that most applications need to be developed for both IOS and Android. Java is used for Android, Swift and Objective-C are used for iOS. When time and money aren’t a factor, using native mobile application development delivers some real benefits. Native development makes it easy to create applications that have the the look, feel, and inherent functionality of each platform.
Mobile frameworks such as React Native, NativeScript and Xamarin were developed to support development using a single stack of technology for both iOS and Android. The benefits of “write once, use everywhere” are compelling and these higher-level mobile frameworks are becoming viable alternatives to “going native” for mobile development projects. These cross-platform development tools support the development of mobile applications for IOS and Android quickly – at a lower cost.
Native Mobile Development
In a perfect world, the Gorilla Logic team would routinely create applications using native development to leverage full and complete control over unique device functionality. Native application development is ideal when applications are computationally intensive, require access to a wide variety of native APIs or are functionally challenging. If the application requires deep access to unique phone hardware functionality, you’ll want to stick with native application development.
But it isn’t a perfect world. It takes nearly twice the time (and budget) to create native applications for both Android and iOS. There is simply no development overlap between iOS and Android. Cost reduction is the single biggest reason there is so much interest in cross-platform native apps. For example, it might take six months for one developer to create separate native apps for iOS and Android. Roughly three months for each application.
An alternative would be leveraging two separate developers to develop in tandem for about three months each. The bottom line is that you would need to budget for six months of development time. This gets expensive. Using different developers also introduces a level of complexity into the application because each developer may accomplish the objectives in different ways. You’ll also need to budget for ongoing support of two separate apps built in two different languages. What if something goes wrong with your iOS application while your Swift developer is on PTO? Your Android developer won’t be much help. Not every company can afford dual development projects or ongoing support in both Swift and Java.
Enter cross-platform native apps. A single developer could complete the above-mentioned mobile development project in three to four months using React Native, Native Script or Xamarin, potentially cutting the cost of the project by a half. Sounds pretty good.
Exploring the Tool Kits for Mobile Development Projects
We’ve experimented with several different tool kits to support client projects. At a high level, our key takeaways include:
We were initially interested in Ionic because it works on front-end framework AngularJS. Front-end and UI/UX developers understand the challenges of delivering an intuitive mobile application. Points for Ionic. Unfortunately, as a hybrid mobile development platform, it proved to be slow and difficult, if not impossible, to get the “true” native UI/UX our customers have come to expect. Ionic Native addresses some of the speed problems but still suffers compared to native apps.
Xamarin is a viable alternative and is interesting to .NET developers using C#. Its performance, use of native user interface components, and tight integration with the underlying native platform make it a viable alternative to native development. However, since C# is typically used as a backend language, C# developers may not understand the nuances of creating a fantastic user interface. Based on our experience, front-end UI and UX experience is key to creating stellar mobile applications. Next.
Native Script leverages Angular 2+, which is becoming widely adopted and showing quite a bit of promise. If a customer wants an Angular 2/4 web development project and also needs a mobile app then we would definitely consider using Native Script. Stay tuned for more on Native Script.
React Native was created by the brilliant engineers at Facebook. Over the past year, we’ve completed several mobile development projects in React Native with great success. It is a high-performance development framework for both Android and iOS. The front-end skills used in React translate well to React Native mobile development projects. When developing both a React website and a mobile application, the ability for our developers to move between the website and mobile application with relative ease in a real bonus. React Native is our tool kit of choice when native application development isn’t warranted – especially if we are developing a React website at the same time.
Success with React Native
Success with React Native requires that developers have familiarity with both iOS and Android mobile development. You still need to deploy to the appropriate app store, understand the UI/UX differences and have at least a high-level understanding of the API each platform offers.
Rumors abound that someday Google might support Swift as a first class language for the Android platform. It would certainly simplify, and reduce the cost, of the development of mobile applications. Until then, React Native and Native Script show a lot to promise for projects where resources are limited.