FB开源React Native,用JS开发原生iOS应用
2015-04-06 21:13
429 查看
原文地址:http://www.cocoachina.com/ios/20150327/11439.html
Facebook今日正式开源了React Native库,目前已经可在github上下载,目前只有iOS版,不过Android版本很快也将开源。开发者可使用JavaScript和Facebook的React库开发原生的iOS和Android应用程序。同时Facebook还开源了Nuclide--一个针对React
Native、web以及原生移动开发的IDE。Nuclide基于Atom构建,并且有活跃的社区作为支持。
React Native使用Javascript将app编译为原生的应用程序视图,提供了用户熟悉的iOS和Android设备上的外观和体验。React Native并不像你此前使用过的web封装包,其代码表现几乎和原生的应用程序一样。
Facebook已经使用React Native开发了其旗下主要的应用程序,比如Facebook Groups,这款应用就是使用React Native渲染了大部分视图。该公司表示React和React Native可让开发者只学习一种语言就能轻易为任何平台高效地编写代码。并且Facebook将会在React Native继续投资和投入。
Facebook宣布开源该项目,对很多开发者来说都是相当激动的一件事。此前Facebook就开源了自家多个项目,比如此前的网络测试工具Augmented Traffic Control (ATC),动画引擎POP以及微调工具Tweaks等。
React Native特点包括:
原生的iOS组件
开发者可使用标准平台组件,比如iOS平台上的UITabBar和UINavigationController,可以让开发者的应用程序拥有和原生平台一致的外观和体验,并保持较高的品质。这些组件可以轻松并入开发者的应用程序中。
JavaScript应用代码和原生平台之间所有的操作都是异步执行,原生模块也可以使用额外线程,这意味着把开发者可以解码主线程图像,并将其在后台保存至磁盘,而文本和布局的估量计算也不会阻塞UI等。因此React Native app的流畅度和响应性都非常好。通信也是完全可序列化的,当运行完整的应用程序时,这允许开发者使用Chrome Developer Tools来调试JavaScript,或者在模拟器中,或者在真机上。
触摸处理
iOS有一个非常强大的系统--Responder Chain,可以用来响应复杂视图层级中的事件,但并没有类似功能的web工具。React Native可实现类似的响应系统并提供高水平的组件,比如TouchableHighlight,无需额外配置即可与滚动视图和其他元素适度整合。
布局视图应该是简单的,所以我们将web平台上的弹性框模块引入了React Native。弹性框可用来搭建最常用的UI布局,比如代用边缘和填充的堆叠和嵌入。React Native还支持常见的web系统,比如fontWeight和StyleSheet。
使用React Native无需编写一行原生代码即可创建出一款优秀的应用程序,并且React Native可通过自定义原生视图和模块来进行扩展--也就是说你可以重用此前的任何内容,可导入和使用你最喜欢的原生库。
关于React Native的更多详细内容,请参阅以下资源:
GitHub主页:https://github.com/facebook/react-native
文档支持页面:http://facebook.github.io/react-native/
Nuclide介绍:http://nuclide.io/
Facebook开源项目展示:https://code.facebook.com/projects/
相关文章推荐
- Node.app:用Node.js API开发iOS“原生”应用
- 用HTML5/CSS3/JS开发Android/IOS应用(HTML5研究小组)
- html5开发的web应用和iOS原生应用的关系
- ios 原生应用和React native 结合开发1.环境搭建
- 解决cocos2d-js集成到ios原生应用中退出游戏,再加载游戏时会奔溃的问题
- 用HTML5/CSS3/JS开发Android/IOS应用
- iOS开发--JS调用原生OC篇
- iOS与H5交互 H5与App原生交互,一般会是前端页面中的JavaScript与App使用的原生开发语言的交互。技术方案应能达到以下要求: 在js与原生进行交互的时候能保证正常的正向调用逻辑返回
- cocos2d-lua整合到ios工程,即在ios原生应用中可以直接玩cocoslua开发的游戏
- 用HTML5/CSS3/JS开发Android/IOS应用框架大全
- iOS WKWebView 混合应用开发时代来临 - 嵌入式 JS 的调试成为催化剂
- iOS开发-基于原生JS与OC方法互相调用并传值(附HTML代码)
- 用HTML5/CSS3/JS开发Android/IOS应用
- 用HTML5/CSS3/JS开发Android/IOS应用框架大全
- AngularJS 之iOS 移动 APP 混合开发(原生+JS)
- 移动开发新选择 使用javascript开发iOS和Android原生应用
- iOS开发--iOS原生与JS交互的几种方式对比
- iOS原生地图开发指南再续——地图覆盖物的应用
- [Link]用HTML5/CSS3/JS开发Android/IOS应用
- [IOS_HTML5]各种JS框架介绍--用HTML5/CSS3/JS开发Android/IOS应用