随着苹果公司推出iPhone和App Store,移动开始持续升温,各种创新不断,风头逐渐盖过Web,吸引了大量开发人员进入移动领域。这无疑使得苹果公司成为最大的赢家,操控着很多公司的命运。
Facebook在Web技术上非常成功,深知移动未来的重要性,但又不想受制于苹果公司。于是投入大量的人力和物力,在移动HTML5上攻坚克难,虽取得了不少进展,但始终不如意。2012年9月,Facebook表示:“Betting on HTML5 was a mistake.”全力转型Native App开发。令人没有想到的是,两年之后Facebook居然推出了React Native for iOS技术,让人眼前一亮,兴奋不已。
大家都知道,Native App因其性能优越和功能强大而笑傲江湖,但终究逃不出Apple的掌心,多版本维护非常痛苦。HTML5虽然有Web的优势,但因WebView在移动设备的性能和电力等因素的制约,性能总被诟病,难成大器。而Hybrid App集Native App和Web优点于一体,还可以相互补短,似乎应该成为大家的选择。然而它在成熟度、标准化等方面的顾虑,也会是一个不小的问题。
React Native技术的诞生则普遍被大家接受,各大公司纷纷介入,给人很大的想象空间。它的底层引擎是JavaScript Core,调用的是原生组件而非HTML5组件(HTML+CSS+JavaScript构建的组件)。运行时,可以做到与Native App媲美的体验,同时因为JavaScript代码可以使用后端强大的Web方式管理,既可以做到高效开发,也可以做到快速部署和问题热修复。React Native App运行在客户的手机上,而控制端可以在后端,可以充分发挥Web的能力,就像一个牵线木偶,任凭你表演。
——吴其敏,携程旅行网框架研发部负责人,高级研发总监
最近三四年间,国内外的前端与全栈开发者社区都在坚持不懈地追寻使用JS与HTML、CSS技术体系开发App内场景的核心工程技术。这种技术,在国内很多公司与团队中,被通称为H5。这种工程类的尝试最早出现在新闻资讯页等强排版、弱交互的产品场景中,因其灵活的布局能力和免发版的敏捷迭代潜力而大受欢迎。而后在涌现出大批第三方应用市场的浪潮中,也成为了应用市场展示App应用详情的技术标配。在此过程中,PhoneGap(后来的Apache Cordova)等组件的出现满足了JavaScript与Android/iOS程序之间的通信需求,及时补全了这种工程方案在系统能力上的短板。大家在更大范围地推进这种方案的过程中,却遇到了一个致命的问题,那就是这种技术在处理无限滑动列表(如微博的信息流)时,受WebView的影响,表现出了极差的点击响应、内存性能和兼容性。社区中有不少有识之士提出了模板配置化+原生渲染,或引入多个WebView运行SPA以缓解内存问题等行之有效的方案,但均因一定程度上牺牲了灵活、敏捷的方案优势,而无法获得广泛采纳。这样的缺陷直接制约了JavaScript in App工程方案的再扩大。在百度供职时,我曾负责主持Clouda云端一体框架的研发工作,可说是在社区一线全程参与了这个演进过程。
React Native的出现,彻底、整洁且智慧地解决了这个痛点,且通过WebKit的引入完整保留了JavaScript语言的完整逻辑性,通过原生的渲染保持了“不沾手”的顺滑体验和出色的内存管理,没有妥协地实现了大家需要的JavaScript in App的工程体系能力。
——童遥,阿里高德开放平台总经理
要掌握开挂的技术,需要一本好书——今天为大家介绍《React Native入门与实战》,目前最棒的一本React Native中文书。
React Native开启了开发原生App的新方式,不仅提高了开发效率,同时提高了App的用户体验。相比Web App而言,React Native可以使用原生的组件和API,这样就可以释放Native的能力和体验;相比Native开发而言,前端开发者可以使用JavaScript开发原生应用,这样开发效率将会得到很大的提高。
主要内容
本书的内容是作者在实践过程中总结得到的,一共分为4部分。
第一部分为基础语法篇,共两章内容,主要介绍了React Native的开发基础知识。
第1章介绍了React Native的环境搭建、React与React Native之间的关系,以及如何学习ReactNative。
第2章主要介绍了React Native的开发基础知识,包含flexbox布局、JSX语法,并且详细介绍了React Native创建项目的过程。
第二部分为API和组件篇,共4章内容,主要介绍了React Native的API、组件以及Native扩展和组件的封装。
第3章介绍了React Native常用组件,包含View组件、Text组件、NavigatorIOS组件、TextInput组件、Touchable类组(TouchableHighlight、TouchableOpacity和TouchableWithoutFeedback)、
Image组件、TabBarIOS组件和WebView组件。
第4章介绍了React Native常用的API,包含AppRegistry、AsyncStorage、AlertIOS、ActionSheetIOS、PixelRatio、AppStateIOS、StatusBarIOS、NetInfo、CameraRoll、VibrationIOS、Geolocation、网络数据请求的应用以及定时器和动画。
第5章介绍了React Native的实现原理以及在原生组件和API上的扩展,并且以一个“图表”组件为案例进行实战讲解。
第6章介绍了使用JavaScript封装React Native组件,主要实现了二级菜单组件、日历组件以及初步介绍了开源组件的用法。
第三部分为App更新和上架篇,共一章内容。
第7章介绍了App的动态更新和上架过程。
第四部分为实战篇,共3章内容,介绍了如何使用React Native开发原生App。
第8章介绍了使用React Native和Node.js开发企业内部通讯录应用——“百灵鸟”App。
第9章介绍了使用React Native Geolocation API和高德地图API开发LBS应用——“附近”App。
第10章介绍了使用豆瓣开放API开发一款搜索App,主要包含图书、电影和音乐搜索。
本书包含的代码及其案例可以到https://github.com/vczero/React-Native-Code下载或者到图灵社区http://www.ituring.com.cn/book/1762下载。
专业人士推荐
React Native的诞生很好地诠释了“鉴往知来”。Facebook采用全新的设计理念,为App开发开辟了React Native这一新途径。现在,作者们将这门新技术带给了中国的开发人员。
——Eric Ye,携程旅行网CTO
如果说现在是互联网的天下,我猜将来还会是互联网的天下。Native App、HTML5、Hybrid等移动技术都将成为过往云烟,有互联网思维的移动技术(如React Native)将会大展身手。
——吴其敏,携程旅行网框架部负责人,高级研发总监
React Native是一项非常棒的技术,它独特的思路帮助我们找到了一个性能和可维护性的绝佳平衡点。Facebook投入了大量资源在React Native的发展上,我们已经看到很多知名App中都使用了这项技术。它同时拥有Native App的性能和Hybrid App的可维护性,受到开发人员热捧。
本书作者花费大量时间研究React Native对于企业App的价值,书中的内容对于有一些前端基础的同学应该很容易理解。希望这本书能帮助降低App开发的门槛,我们也希望能和大家多多交流经验。
——储诚栋,携程旅行网前端框架研发总监
移动技术发展飞速,Native与HTML5的竞争也由来已久。从PhoneGap开始,大家一直在寻找Hybrid的方式来实现App快速开发,同时设法保持良好的用户体验。
2015年Facebook推出的React Native是革命性的技术框架,突破了Native与HTML5的界限,将近乎Native的流畅体验和JavaScript的开发效率完美结合。
携程框架团队第一时间采用这项技术并应用到线上App开发中,其中的实践经验无疑值得国内移动开发者借鉴,推荐大家阅读这本书,一起追求新技术的价值。
——陈浩然,携程旅行网无线研发总监
React Native是React.js的胜利,也是JavaScript以及优秀Web开发体验的胜利,更是技术大融合的胜利。我相信作者在React Native方面的经验和心得都浓缩在这本书里,而且能够第一时间看到一本React Native中文书,感觉如此亲切。推荐大家细细阅读,认真实践。
——赵锦江(勾股),阿里技术专家
React Native的设计目标是既具有Web的开发体验和发布能力,又具备Native的人机交互体验,它在行业里掀起了一股Native和Web融合探索的热潮。本书涉及话题较全面,既介绍了作为基础的React、组件、API,又涉及更深入的组件扩展和封装,最后三章的真实案例定能让读者受益匪浅。
——徐凯(鬼道),阿里技术专家
作者介绍
王利华
vczero,携程无线框架高级工程师,HTML5培训讲师,主要负责框架组件性能优化、新一代框架研发。2013~2015年在高德地图负责Node.js服务和JavaScript API相关的研发。GitHub地址:https://github.com/vczero。
魏晓军
携程框架研发部研发经理,负责携程无线前端框架团队。2011年加入携程,先后从事携程PC端前端框架、数据可视化框架、无线端前端框架等开发工作。现负责携程无线前端框架的开发和性能优化等工作。
冯诚祺
携程框架研发部高级iOS研发工程师,负责移动端用户行为以及性能数据的统计SDK、数据分析支持。正在修行,朝着全栈的方向努力着。
【阅读原文Amazon购买】