如何在数字化转型中利用移动应用开发提升企业敏捷性与市场适应性?
1499
2022-10-08
Flutter与React Native已逐渐成为移动开发社区中-跨平台移动应用开发框架,那么Flutter和React Native 哪个才是开发者的首选呢?
Flutter和React Native这两个框架都是构建跨平台移动应用程序的优质框架,但有时做出正确的决定取决于业务使用的角度。Flutter与React Native两大框架背后都站着科技巨头,分别是谷歌和Facebook,所以从这个角度来看两者未来会在竞争中变得更加完善。
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。
环境搭建
npm install -g react-native-cli yarn
1
FinClip 官方的环境搭建文档已经有详细的说明,这里不再重复。大家可以看下我本地的环境配置版本,目前整个项目运行稳定,可以借鉴。
$ react-native info
info Fetching system and libraries information...
System:
OS: macOS 10.15.3
CPU: (8) x64 Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz
Memory: 93.87 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.20.1 - ~/.nvm/versions/node/v10.20.1/bin/node
Yarn: 1.22.4 - ~/.nvm/versions/node/v10.20.1/bin/yarn
npm: 6.14.4 - ~/.nvm/versions/node/v10.20.1/bin/npm
Watchman: Not Found
Managers:
CocoaPods: 1.9.1 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: iOS 13.4, DriverKit 19.0, macOS 10.15, tvOS 13.4, watchOS 6.2
Android SDK:
API Levels: 26, 28, 29
Build Tools: 28.0.3, 29.0.2, 29.0.3, 30.0.0
System Images: android-26 | Google Play Intel x86 Atom
Android NDK: Not Found
IDEs:
Android Studio: 3.6 AI-192.7142.36.36.6241897
Xcode: 11.4/11E146 - /usr/bin/xcodebuild
Languages:
Java: 10.0.1 - /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/bin/javac
Python: 2.7.16 - /usr/bin/python
npmPackages:
@react-native-community/cli: Not Found
react: 16.11.0 => 16.11.0
react-native: 0.62.2 => 0.62.2
npmGlobalPackages:
*react-native*: Not Found
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
新建 ReactNative 样例工程
新建 ReactNative 工程
react-native init mopdemo
1
稍等一会…
初始化项目完成之后,你可以选择两种不同的方式运行 App 在 iOS/Android 平台:
注意!ReactNative需要依赖本地安装对应的 iOS,Android 开发工具,即需要安装 Xcode 和 AndroidStudio。具体安装使用方法这里不赘述。
这里我们用 VSCode+Xcode 作为开发组合环境。
集成小程序解析引擎
这里我们采用凡泰集成免费社区版的小程序解析引擎,只需要 10 行代码量不到即可完成小程序集成。
引入小程序引擎插件。在 package.json 文件中引入小程序 ReactNative 插件
"react-native-mopsdk": "^1.0.1"
1
在 main.dart 文件中增加以下小程序引擎初始化方法。 Mop.instance.initialize 这里需要用到 sdkkey 和 secret。可以直接在 FinClip小程序平台 注册获取。注册使用方法可以参考接入指引
import MopSDK from 'react-native-mopsdk';
// 1. mop初始化
MopSDK.initialize({
appkey: '22LyZEib0gLTQdU3MUauASlb4KFRNRajt4RmY6UDSucA',
secret: '4a915e447bcbd439',
apiServer: '凡泰小程序开放平台 - 加速企业入局小程序生态',
apiPrefix: '/api/v1/mop'
}, (data) => {
console.log('message;', data);
});
1
2
3
4
5
6
7
8
9
10
打开小程序
MopSDK.openApplet('appid','','',(data)=>{});
1
SDKKEY 和 Secret 可以从前面部署的社区版的管理后台获取。apiServer 为这里是小程序生态后端的服务地址也就是前文所输入的IP:端口。小程序id 为在管理后台上架的小程序唯一ID(在小程序小架时自动生成)。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~