Open Source Subnet An independent Open Source community View more

F8: Facebook launches open-source JavaScript library to speed mobile development

032715 facebook f8 zuckerberg
Credit: Facebook

Open-source proponent Facebook wants more developers building more apps faster for both Android and iOS.


Most enterprises that have tried to build cross-platform mobile apps for iOS and Android without building entirely separate apps for each platform would describe the experience as lies, damned lies, and cross-platform.

At its F8 developer conference this week, Facebook released React-Native, a cross-platform JavaScript library that accelerates app development for iOS and Android. Facebook runs much of its operations on open-source software, and is taking another stab at the inefficiencies of building separate native mobile apps for iOS and Android platforms with a new open-source project. It builds on the success of the React, the company's three-year-old open-source web user interface (UI) library.

See also: Facebook invites developers to monetize Messenger at F8 conference

React-Native shouldn't be confused with a return to a write-once-run-everywhere (WORE) mobile strategy. More accurately for developers, it's more of a learn-once-write-everywhere mobile strategy.

Just three years ago, Facebook dropped HTML5 as the core technology for its mobile-first initiative because the user experience (UX) wasn't good enough and the unique iOS and Android UIs introduced compromises. Asked about the abrupt change in direction at the time, Mark Zuckerberg said "one of our biggest mistakes was betting too much on HTML5." With this change of direction, the company's development team lost the WORE benefit of HTML5 and increased the size of its development staff, hunkering down on the complicated task of writing separate Android and iOS apps, ultimately executing its mobile-first business strategy.

Now the company is back, chipping away at the problem of native app inefficiencies by launching React-Native, making the source code available on Github in hopes that it attracts developers and becomes a self-sustaining open-source project, like the web development version of React.

Native apps are built by a limited supply of platform specialists who typically know only one platform because different programming languages are used. iOS platform specialists write apps using Objective C and Android platform specialists write using Java. In contrast, JavaScript is a core web development language that every web developer knows. JavaScript is also open source and brings with it many libraries that can be reused to accelerate development. React-Native's JavaScript approach means that a developer can use the same language to build both iOS and Android apps.

React-Native doesn't deliver a complete cross-platform result because iOS and Android UIs are dramatically different. A developer who builds an app for Android will need to make changes to the UI for iOS, but much of the core logic of the app can be shared. The job of building the app for the second platform based on a working app with a partial code base speeds development.

As mobile eats the world, enterprises are hard-pressed to keep up with the cost and complexity of moving their businesses to mobile by building native apps for multiple platforms. React-Native could help enterprises confronted with the cost of staffing two platform-specific development teams to build and maintain apps.

The success of the web version of React may draw more organizations to contribute to Facebook's mobile counterpart React-Native. If a large enough community of developers contributed to this new project, more apps will get built more quickly, and perhaps one day they will deliver WORE.

Must read: Hidden Cause of Slow Internet and how to fix it
View Comments
Join the discussion
Be the first to comment on this article. Our Commenting Policies