Facebook tool cuts through React complexity

Facebook and Expo teamed up to make the Create React Native App tool for creating Android and iOS apps with no build configuration

Facebook attempts to make it easier to get started with its React Native framework, launching the CRNA (Create React Native App) tool for building mobile apps with no build configuration.

Introduced Monday, CRNA was co-developed by Facebook and Expo, formerly Exponent. The tool, deemed stable for general use, was inspired by the design of Create React App for building React JavaScript apps sans build configuration.

"Many developers struggle with installing and configuring React Native's current native build dependencies, especially for Android," said Adam Perry, Expo software engineer. "With Create React Native App, there's no need to use Xcode or Android Studio and you can develop for your iOS device using Linux or Windows." The tool works with the Expo open source mobile development tool, which builds atop React Native. Expo loads and runs CRNA projects written in JavaScript without compiling native code.

Noting that many React Native apps must compile Java or Objective-C/Swift dependencies, Perry said the Expo app includes APIs for camera, video, contracts, and other uses while bundling libraries like Facebook authentication. If developers require a native code dependency not bundled by Expo, they will likely need their own build configuration for it.

CRNA supports Create React App's ejecting capability for leaving the setup environment. "You can run NPM, run eject to get a project very similar to what react-native init would generate," said Perry. "At that point you'll need Xcode and/or Android Studio just as you would if you started with react-native init, adding libraries with react-native link will work, and you'll have full control over the native code compilation process."

React Native lets developers build UIs with JavaScript and React. It has been called a game-changer in hybrid mobile application development, bridging JavaScript and platform APIs with Java or Objective-C calls that produce native iOS or Android UI components on the device.


EmoticonEmoticon