React Native APP技术方案调研

1. 热更新

React Native 官网方案

  • https://reactnative.cn/docs/more-resources#%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7

App Center是由微软提供的热更新服务。热更新可以使你绕过 AppStore 的审核机制,直接修改已经上架的应用。对于国内用户,我们也推荐由本网站提供的Pushy热更新服务,相比 CodePush 来说,提供了全中文的文档和技术支持,服务器部署在国内速度更快,还提供了全自动的差量更新方式,大幅节约更新流量

Pushy

  • 官网
    • https://pushy.reactnative.cn/
  • 发布热更新 - 文档
    • https://pushy.reactnative.cn/docs/publish.html
  • 付费热更新
    • 新注册用户将自动获得 7 天的专业版免费试用评估。到期后转为免费版。
    • 价格表
      • https://pushy.reactnative.cn/pricing.html

App Center

  • 官网
    • https://appcenter.ms/

相关链接

  • https://yangandmore.github.io/2020/06/01/React-Native%E7%83%AD%E6%9B%B4%E6%96%B0/
  • https://cloud.tencent.com/developer/article/1038740
  • https://www.yisu.com/zixun/202404.html

2. 本地存储

  • 永久存储,关闭APP后不会清除数据
  • 直接卸载APP,数据不会清除,需手动清理数据,或注销时清除

AsyncStorage

  • 已弃用 请改用其中一种社区软件包。
  • 官网地址
    • https://reactnative.dev/docs/asyncstorage

AsyncStorage是一个未加密的、异步的、持久的、键值存储系统,对应用程序是全局的。应该使用它而不是 LocalStorage。

建议您在顶部使用抽象AsyncStorage而不是AsyncStorage直接用于轻量级用途,因为它在全局范围内运行。

在 iOS 上,AsyncStorage由本机代码支持,该代码将小值存储在序列化字典中,并将较大值存储在单独的文件中。在 Android 上,AsyncStorage将根据可用的内容使用RocksDB 或 SQLite。

本地存储社区软件包

本地存储社区包搜索地址

  • https://reactnative.directory/?search=storage
react-native-mmkv-storage star 691
  • 社区推荐,基于腾讯 MMKV, 读写性能优于SQLite, 微信使用
  • 高性能,性能优化中常用 mmkv
  • 官网介绍
    • https://github.com/ammarahm-ed/react-native-mmkv-storage
  • 存储无上限
    • https://github.com/Tencent/MMKV/blob/master/README_CN.md
react-native-async-storage star 3k
  • 社区推荐, 使用人数较多
  • 官网介绍
    • https://github.com/react-native-async-storage/async-storage
  • 存储最大6M,可以扩展,但受限于 SQLite
    • https://react-native-async-storage.github.io/async-storage/docs/advanced/db_size

SQLite

SQLite 是一个 C 语言库,它实现了一个 小型、 快速、 自包含、 高可靠性、 功能齐全的SQL 数据库引擎。SQLite 是世界上使用最广泛的数据库引擎。SQLite 内置于所有手机和大多数计算机中,并捆绑在人们每天使用的无数其他应用程序中。

  • 官网介绍

    • https://www.sqlite.org/
  • react-native-sqlite-storage star 2.3k

    • 适用于 Android(经典和原生)、iOS 和 Windows 的 React Native 的 SQLite3 Native 插件

    • https://github.com/andpor/react-native-sqlite-storage

3. 离线操作,数据同步

同步周期/频率 (业务)

  • 实时检测网络,网络通畅同步数据
  • 用户手动同步
  • 系统设置定时同步

参考链接

  • https://www.cnwangjie.com/blog/post/%E5%85%B3%E4%BA%8E%E7%A6%BB%E7%BA%BF%E4%BC%98%E5%85%88%E5%BA%94%E7%94%A8%E7%9A%84%E5%A4%9A%E7%AB%AF%E5%90%8C%E6%AD%A5%E7%9A%84%E6%80%9D%E8%80%83%E5%92%8C%E6%80%BB%E7%BB%93/
    • 印象笔记
      • https://dev.evernote.com/media/pdf/edam-sync.pdf
    • Chromium
      • https://www.chromium.org/developers/design-documents/sync
      • https://www.chromium.org/developers/design-documents/sync/syncable-service-api
    • 解决方案
      • shareDB
      • PouchDB | CouchDB
  • http://www.alloyteam.com/2019/07/web-applications-offline/
    • 解决方案
      • PouchDB
      • Redux-Offline
      • Redux 与 IndexDB 结合

4. APP 语音存储

react-native-audio star 1.1k

  • https://github.com/jsierles/react-native-audio
  • 支持格式
    • Android: aac, aac_eld, amr_nb, amr_wb, he_aac, vorbis
    • 不支持 mp3 , 底层平台不支持

react-native-recorder-player star 393

  • https://github.com/hyochan/react-native-audio-recorder-player
  • 支持格式
    • lpcm, ima4, aac, MAC3, MAC6, ulaw, alaw, mp1, mp2, alac ,amr, flac, opus
    • https://github.com/hyochan/react-native-audio-recorder-player/blob/master/index.ts
    • 不支持 mp3 , 底层平台不支持

相关内容

  • React Native 上传
    • https://github.com/joltup/rn-fetch-blob
  • HUAWEI P30 Pro 录音默认存储格式 m4a
  • 格式转换
    • https://github.com/a943999733/react-native-audiotransition
    • https://github.com/Radweb/react-native-audio-transcoder

5. 水印实现

  • https://mp.weixin.qq.com/s/DHlXmar1R944sQoqSvyAjA

你可能感兴趣的:(React Native APP技术方案调研)