By Dheeraj V.S.
Using hybrid technologies for mobile app development has always been a tantalizing choice. There are primarily two types of hybrid frameworks – those such as Apache Cordova and Adobe PhoneGap rely on the native WebView for running application code. Others such as Titanium and Xamarin have their own runtimes that bridge to native-land.
Using hybrid technologies for mobile app development has always been a tantalizing choice. There are primarily two types of hybrid frameworks – those such as Apache Cordova and Adobe PhoneGap rely on the native WebView for running application code. Others such as Titanium and Xamarin have their own runtimes that bridge to native-land.
While the promise of ‘write-once run-anywhere’ that these hybrid technologies offer is definitely alluring, they have never been able to approach the performance that a native code can bring. Performance might not be a critical factor for some applications. However, with the increasing adoption of fluid user interfaces such as material design, users would come to expect the same experience with hybrid apps. That is where traditional hybrid apps run short. Facebook found this the hard way and moved back to native technologies when they released their Facebook 5.0 iOS app. The native app performed twice as fast in many areas compared to the older hybrid versions.
So, it might come as a surprise (or perhaps not!) that a new kind of hybrid technology should emerge from the stables of Facebook. It is called as React Native and has been open-sourced just last week. It employs the architectural principles of Facebook's React JavaScript library, while leveraging native user interfaces.
React Native is built with performance in mind. It is different from other types of hybrid technologies that, it generates the layout of the user interface on a separate thread. This allows the main thread to be responsive to the user input and free to perform fluid animations. Whenever there is a change in the UI, React achieves a complete layout, computes the differences with the current layout and sends only the changes over to the main thread for rendering.
React Native uses native UI widgets and expects the user-interface code to be developed separately for each target platform. An overlooked advantage that hybrid technologies bring is having a common development team for multiple platforms. With React Native, the same development team can be engaged for development on both iOS and Android. This has been touted as "learn once, write anywhere".
As mobile apps are becoming increasingly complex, managing code complexity is a major concern for hybrid developers. This need has seen the rise of MV* frameworks such as AngularJS being adapted for hybrid app development (Ionic framework and OnsenUI come to mind). React was born out of this necessity. It is a completely fresh look into how Web applications are architected, where once accepted "best practices" are re-examined and discarded. Does this mean that React Native is the panacea that mobile developers are waiting for? Definitely not. With React Native, the user interface code still needs to be platform-specific, requiring maintenance of separate code bases. With the plethora of technology choices that are now available for mobile app development, it is important to understand the business requirements and weigh in the pros and cons prior to committing to a new technology stack.
So, it might come as a surprise (or perhaps not!) that a new kind of hybrid technology should emerge from the stables of Facebook. It is called as React Native and has been open-sourced just last week. It employs the architectural principles of Facebook's React JavaScript library, while leveraging native user interfaces.
React Native is built with performance in mind. It is different from other types of hybrid technologies that, it generates the layout of the user interface on a separate thread. This allows the main thread to be responsive to the user input and free to perform fluid animations. Whenever there is a change in the UI, React achieves a complete layout, computes the differences with the current layout and sends only the changes over to the main thread for rendering.
React Native uses native UI widgets and expects the user-interface code to be developed separately for each target platform. An overlooked advantage that hybrid technologies bring is having a common development team for multiple platforms. With React Native, the same development team can be engaged for development on both iOS and Android. This has been touted as "learn once, write anywhere".
As mobile apps are becoming increasingly complex, managing code complexity is a major concern for hybrid developers. This need has seen the rise of MV* frameworks such as AngularJS being adapted for hybrid app development (Ionic framework and OnsenUI come to mind). React was born out of this necessity. It is a completely fresh look into how Web applications are architected, where once accepted "best practices" are re-examined and discarded. Does this mean that React Native is the panacea that mobile developers are waiting for? Definitely not. With React Native, the user interface code still needs to be platform-specific, requiring maintenance of separate code bases. With the plethora of technology choices that are now available for mobile app development, it is important to understand the business requirements and weigh in the pros and cons prior to committing to a new technology stack.

No comments:
Post a Comment