前言
近年来,随着移动互联网产业的持续快速发展,以及智能手机、智能电视等智能终端设备的普及,移动互联网应用获得了爆炸式增长。面对未来广阔的市场,运营商、互联网企业、设备生产商等产业巨头纷纷构建了移动互联网生态链,其中苹果公司和Google创造的移动互联网应用商业模式,激发了广大开发者开发移动互联网应用的热情。
众所周知,原生(Nutive)应用因其性能优秀、体验较好而获得了广大用户和开发者的欢迎。然而,原生应用开发周期长、支持设备有限等问题也困扰着开发者和商户,因而,跨平台移动应用开发成为技术开发者的重要追求。近年来,跨平台开发的呼声越来越高,已成为一种趋势。目前,移动应用的跨平台技术主要有两种。一种是基于Web的移动开发技术,只需要使用标准的HTML及JavaScript进行开发,然后使用移动终端安装的浏览器,即可实现应用的跨平台;另一种是使用特定的跨平台技术和框架,开发出能在各种主流移动操作系统上运行的APP应用程序。在React Native出现之前,国内外的全栈开发社区都在坚持不懈地寻求使用JavaScript和HTML、CSS技术体系开发跨平台移动应用,这些技术被统称为H5技术(HTML5技术)。作为Web时代的弄潮儿,Facebook也曾投入大量的人力物力,在移动H5技术上攻坚克难,虽然取得了一些进展,然而,这些基于JavaScript体系开发的移动应用始终达不到理想的效果。
React Native的出现,使开发者在跨平台移动应用的开发道路上向前迈了一大步。React Native是一款由Facebook公司推出的用来构建移动应用的JavaScript框架,是Facebook早先开源的界面渲染框架React在原生移动应用平台的衍生产物,目前支持iOS和Android两大平台。React Native倡导的“Learn once, write anywhere”(仅需学习一次,编写任何平台)也赢得了广大开发人员的青睐。虽然,新框架的引入不可避免地增加了学习成本,但是,相对于其他的跨平台技术而言,React Native的学习成本还是比较低的。截至2017年7月,在GitHub上React Native已获得了52000多个star,成为时下最受欢迎的跨平台移动应用开发框架之一。
在技术实现上,React Native抛弃了传统的浏览器加载思路,转而采用曲线调用原生API的思路来渲染界面,从而获得了媲美原生应用的体验。React Native具体实现思路如下:应用启动后会从服务器下载最新的JSBundle文件,然后通过本地的JavascriptCore引擎对JS(Javascript缩写)文件进行解析,并利用Bridge映射到对应的原生API上,进而调用原生方法和UI组件来渲染界面。在语法上,React Native使用JSX来替代常规的JavaScript,这是一种很像XML的JavaScript语法扩展。因此,熟悉JavaScript类库的Web开发者可以使用React Native轻松地开发出移动应用。由于使用JSX编写的大部分代码可以实现平台间共享,因此,采用React Native开发可以大幅减少跨平台移动应用开发的工作量。同时,React Native框架采用模块化结构,使应用版本的更新迭代也异常简单。当然,React Native也不是完美无缺的,但瑕不掩瑜,随着它的日趋成熟,React Native势必会成为跨平台移动应用开发的主流技术。
本书适当地介绍了一些原理性的概念,但并不深究,同时本书提供的不少案例,也将带领你快速地进入React Native的世界。雄关漫道真如铁,而今迈步从头越。相信通过学习本书,你一定会有所收获。
作者