旗下微信矩阵:

开课吧《Hello,World公开课》2021年,React Native还能否一战?

2021-04-07 14:45 · 互联网     

《Hello, World》与你一起改变世界。无论我们是一个C++开发人员,还是一个JavaScript开发人员,又或是一个AngularJS专家......我们都是一名简单纯粹的程序员。

《Hello,World公开课》提供了这样的一个平台,一端集结业内名师大咖,一端集结追求技术*的学员,以专业知识分享交流为桥梁,链接正在创造世界的一群科技主力们,向初心致敬,为技术发烧。

科技创造世界,世界正在由你改变!

跨平台开发是个老生常谈的问题,从早期的 Cordova、Ionic,再到Weex,React Native以及如今大火的flutter,技术框架一直在迭代更新。虽然现在社区中有一些React Native式微的声音,但我们不能被“孕妇效应”蒙蔽双眼,站在整个前端开发者社区看,React Native依然是一款非常重要的前端框架。近日,开课吧《Hello,World》公开课迎来React Native中文网站长晴明老师,让他来聊聊,如何利用React Native快速迭代你的移动业务

为什么需要React Native

在移动互联网早期,大多数公司采用原生技术在开发移动端应用,比如我们熟悉的Objective-C,Swift,Java等等。这些原生开发技术,不仅开发成本高,而且开发周期也很长。有时候甚至出现两班人马利用两套技术栈开发出完全相同业务的应用。这对于小公司要快速发展业务来说,无疑是灾难的。为了解决这个问题,混合开发兴盛起来,也就是说利用Web浏览器技术开发移动端业务。使用WebView套壳的方式,利用前端HTML/CSS/JS技术构建前端页面,通过桥接方式调用原生服务。

相比原生开发,混合开发的优点是显而易见的

1、HTML / CSS / JS开发成本低

比起原生语言,这三门的学习难度要低很多。各类资源极为丰富

2、天然跨平台

任何平台都离不开浏览器,也就少不了WebView组件。在W3C标准日趋统一(HTML5)的今天,网页应用真正实现了“一次编写,随处运行”

3、无审核热更新

JS作为动态解释运行的脚本语言,可以直接通过服务器下发后执行,从而实现绕过审核的热更新。

4、可扩展

虽然js本身不具备硬件能力,但可以通过原生桥接的方式扩展,且这些扩展大多免费开源。

但是,这种混合开发的缺点也是显而易见的,那就是性能、性能、还是性能,那么能否能在两者中间取得一个平衡呢?React Native应运而生。

React Native核心架构

如下图所示,这是一个播放器,由播放器外壳和解码芯片两个核心组件构成,React Native核心架构也是由两个部分构成,一个是RN的外壳,Native Shell,这部分是由oc/java写的,另一部分是JavaScriptCore(JavaScript engine)引擎。而所有的业务逻辑都通过Metro这个工具打包在光盘中,也就是打包成main.jsbundle。如此就可以实现通过原生端引擎来解释JS的代码,在调试环境中,Metro 实时打包生成 jsbundle (hot reload 热刷新),在正式环境中,如果我们想迭代业务,通过App分发时携带离线jsbundle 。通过第三方服务下载替换文件(pushy/codepush 热更新服务)来实现。

代码实战演示

在公开课的后半部分,晴明老师通过现场代码实战来演示如何利用React Native来进行移动端业务开发,以及演示利用React Native进行热更新。

讲师介绍

晴明老师,前百度高级开发工程师,前网易高级开发工程师,React Native中文网站长。

《Hello,World公开课》是由开课吧推出面向广大开发工程师的免费加餐课,我们希望能搭建起一座桥梁,将业内的最热门的技术,*的解决方案一起打包免费送给你。无论你是初入职场的应届生,还是准备升职加薪的职场精英,相信这里都有你需要的内容。

(免责声明:本文转载自其它媒体,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。请读者仅做参考,并请自行承担全部责任。)