React Native 跨端框架与小程序混编实战
对于跨平台应用开发来说,哪种技术是最佳的选择仍然是一个值得关心与探讨的问题。
Flutter 和 React Native 这两个框架都是构建跨平台移动应用程序的优质框架,但有时做出正确的决定取决于业务使用的角度。Flutter 与 React Native 两大框架背后都站着科技巨头,分别是谷歌和 Facebook,所以从这个角度来看两者未来会在竞争中变得更加完善。
由于原生应用程序开发相当耗时且成本高,因此使用相同的代码库来创建可以在多个平台上无缝运行的应用程序的跨平台应用程序开发的概念近年来发展势头强劲,对跨平台应用程序开发公司的需求也有所增加,使得在过去的几年里,Flutter 与 React Native 已逐渐成为移动开发社区中最受欢迎的跨平台移动应用开发框架,那么 Flutter 和 React Native 哪个才是开发者的首选呢?
本篇文章,我们主要对 React Native 做一个介绍及如何与小程序进行结合。
React Native 为什么成为受欢迎的框架
React Native 也是 Facebook 在 2015 年推出的一个跨平台原生移动应用开发框架。React Native 主要使用 JavaScript,类似于 HTML 的 JSX,以及 CSS 来开发移动应用,因此熟悉 Web 前端开发的技术人员只需很少的学习就可以进入移动应用开发领域,对于用同一代码库为 iOS 和 Android 开发应用程序来说非常方便。此外,它的代码共享功能可以更快的开发和减少开发时间。像其他跨平台技术一样,Flutter 允许你使用相同的代码库来构建独立的应用程序,因此,反应原生应用程序更容易维护。
React Native 包括一个热重载功能,允许开发者直接在运行中的应用程序中添加或纠正代码,而不必保存应用程序,从而加速了开发过程。React Native 是基于一种非常流行的语言--JavaScript,开发者更易上手;React 组件包裹着现有的本地代码,并通过 React 的声明性 UI 范式和 JavaScript 与本地 API 进行交互,React Native 的这些特点使开发人员的工作速度大大加快。
React Native 采用不同的方法进行混合移动应用开发
这种开发方式不会生成原生 UI 组件,而是基于 React,React Native 是一个用于构建基于 Web 的交互界面的 JavaScript 库,因此会有更丰富的 UI 体验效果,同时也能够很好地调用底层框架的 UI 使用。 React Native 已经成为一种流行的移动开发技术,它提供了一个使用 JavaScript 构建原生跨平台移动应用的强大框架,在需要时,我们也可以使用 Objective-C,Swift 或 Java 来编写原生代码来桥接。
React Native 需要注意的事项
从积极的方面来说,React Native 已经成为受支持的开源社区的热门,可以使用一组技术(如 JSX,React Native 组件和 JavaScript)为 iOS 和 Android 构建移动应用。这反过来有助于在发布新版本时使 iOS 和 Android 应用保持同步。但是,React Native 仍在不断发展,当要在当前不需要 React Native 提供的功能(例如如何进行 UI 导航或使用地图)时决定使用哪些库时,可能会造成混淆。此外,根据应用的复杂程度,可能需要编写区别于平台的代码来解决移动平台的差异。对于复杂的应用,可能要编写自定义组件或深入了解 iOS 和 Android(例如,出于性能原因或将 React Native 添加到现有原生应用时所需的但不支持的 UI 组件)。
React Native 如何与小程序进行结合
既然我们应用 React Native 进行跨端开发,如果我们把混合应用模式从「原生 H5」换为「原生+小程序」会如何?因为 H5 实在是一堆的问题,权限没发获取,加载页面卡顿就不能忍,想到小程序体验更好,能不能把小程序搬到 App 去运行。
脑洞开了,说干就干,在 React Native 工程基础上集成及运行小程序方案 FinClip。
环境搭建
FinClip官方的环境搭建文档已经有详细的说明,这里不再重复。大家可以看下我本地的环境配置版本,目前整个项目运行稳定,可以借鉴。
新建 ReactNative 样例工程
新建 ReactNative 工程
稍等一会…
初始化项目完成之后,你可以选择两种不同的方式运行 App 在 iOS/Android 平台:
注意!ReactNative 需要依赖本地安装对应的 iOS,Android 开发工具,即需要安装 Xcode 和 AndroidStudio。具体安装使用方法这里不赘述。
这里我们用 VSCode+Xcode 作为开发组合环境。
集成小程序解析引擎
这里我们采用凡泰集成免费社区版的小程序解析引擎,只需要 10 行代码量不到即可完成小程序集成。
引入小程序引擎插件。在 package.json 文件中引入小程序 ReactNative 插件
在 main.dart 文件中增加以下小程序引擎初始化方法。 Mop.instance.initialize 这里需要用到 sdkkey 和 secret。可以直接在 FinClip 小程序平台 注册获取。注册使用方法可以参考接入指引
打开小程序
SDKKEY 和 Secret 可以从前面部署的社区版的管理后台获取。apiServer 为这里是小程序生态后端的服务地址也就是前文所输入的 IP:端口。小程序 id 为在管理后台上架的小程序唯一 ID(在小程序小架时自动生成)。
版权声明: 本文为 InfoQ 作者【Speedoooo】的原创文章。
原文链接:【http://xie.infoq.cn/article/178ec1c4648e461e444700366】。文章转载请联系作者。
评论