当前位置: 首页 > 科技观察

FB开源ReactNative,使用JS开发原生iOS应用

时间:2023-03-12 17:57:45 科技观察

Facebook今天正式开源了ReactNative库,现已在github上提供下载。目前只有iOS版本,Android版本即将开源。开发人员可以使用JavaScript和Facebook的React库开发原生iOS和Android应用程序。同时,Facebook还开源了Nuclide——一个用于ReactNative、web和原生移动开发的IDE。Nuclide建立在Atom之上,并有一个活跃的社区作为支持。ReactNative使用Javascript将应用程序编译成原生应用程序视图,在iOS和Android设备上提供熟悉的外观和体验。ReactNative与您之前使用的Web包装器不同,代码的行为几乎像本机应用程序。Facebook已使用ReactNative开发其主要应用程序,例如FacebookGroups,它使用ReactNative来呈现其大部分视图。该公司表示,React和ReactNative让开发人员只需学习一种语言即可轻松高效地为任何平台编写代码。而Facebook将继续投资和投资ReactNative。Facebook宣布开源该项目对许多开发人员来说是一件激动人心的事件。Facebook之前开源过很多自己的项目,比如之前的网络测试工具AugmentedTrafficControl(ATC)、动画引擎POP、微调工具Tweaks。ReactNative的特点包括:原生iOS组件开发者可以在iOS平台上使用标准的平台组件,如UITabBar、UINavigationController等,让开发者的应用拥有与原生平台相同的外观和体验,并保持高质量。这些组件可以很容易地合并到开发人员的应用程序中。varReact=require('react-native');var{TabBarIOS,NavigatorIOS}=反应;varApp=React.createClass({render:function(){return();},});异步执行JavaScript应用代码与原生平台之间的所有操作都执行异步,原生模块还可以使用额外的线程,这意味着开发者可以在主线程解码图像并保存在后台磁盘中,同时文本和布局计算不会阻塞UI等。因此,流畅性和响应性ReactNative应用程序非常好。通信也是完全可序列化的,这允许开发人员在运行完整应用程序时使用Chrome开发人员工具调试JavaScript,无论是在模拟器中还是在真实设备上。触摸处理iOS有一个非常强大的系统——ResponderChain,可以用来响应复杂视图层次结构中的事件,但是目前还没有类似功能的网页工具。ReactNative实现了类似的响应式系统,并提供高级组件,例如TouchableHighlight,无需额外配置即可与滚动视图和其他元素优雅地集成。varReact=require('react-native');var{ScrollView,TouchableHighlight,Text}=React;varTouchDemo=React.createClass({render:function(){return(console.log('pressed')}>ProperTouchHandling);},});FlexboxandStyling(弹性盒和样式)布局视图应该是简单的,所以我们在ReactNative中引入了Web平台上的弹性框架模块。Flexbox可用于构建最常见的UI布局,例如堆叠和插入而不是边距和填充。ReactNative还支持fontWeight和StyleSheet等常见的Web系统。varReact=require('react-native');var{Image,StyleSheet,Text,View}=React;varReactNative=React.createClass({render:function(){return(ReactNativeBuildhighqualitymobileappsusingReact);},});varstyles=StyleSheet.create({row:{flexDirection:'row',margin:40},image:{width:40,height:40,marginRight:10},text:{flex:1,justifyContent:'center'},标题:{fontSize:11,fontWeight:'bold'},副标题:{fontSize:10},});可扩展性使用ReactNative无需编写一行本机代码即可创建出色的应用程序,并且ReactNative可通过自定义本机视图和模块进行扩展——这意味着您可以重用之前拥有的所有内容,导入和使用您最喜欢的本机库。有关ReactNative的更多详细信息,请参考以下资源:GitHub主页:https://github.com/facebook/react-native文档支持页面:http://facebook.github.io/react-native/Nuclide简介:http://nuclide.io/Facebook开源项目展示:https://code.facebook.com/projects/