App RN改造方案

一、需求背景:

1、**需求评审后,按照原生客户端的排期,要年后2月份才能上线。时间太久;

2、客户端人力资源紧缺(iOS 3,Android 2),如果承接***需求,人力被占用,其他需求都无法安排;

问题点:大需求场景下,暴露出当前的团队规模结合当前技术栈在承接能力方面有所欠缺;

二、需求目的:

  • 1、客户端建设跨端和动态化能力,提高工作效率,缩短需求交付时间。

  • 2、通过新的技术栈,优化大需求承接能力:大前端技术栈,前端也可以开发客户端需求

三、需求详情:

1、app建设跨端能力:app内接入react-native模块;开发通用基础能力;

2、建设动态化能力:包管理平台

四、需求预期收益:

目标值:综合提效30%

人效提升计算公式:∑(Android Native总人日+iOS Native总人日-RN总人日)/ ∑(Android Native总人日+iOS Native总人日)

示例:

实现某一需求的排期如下:

  • 纯展示需求
开发方式 iOS Android rn 合计
native 5 5 10
rn 5 5

提效结果: (10 - 5)/ 10 = 50%

  • native和rn弱交互需求,涉及少量native开发
开发方式 iOS Android rn 合计
native 5 5 10
rn 1 1 5 7

提效结果: (10 - 7)/ 10 = 30%

  • native和rn交互需求,涉及一定量native开发
开发方式 iOS Android rn 合计
native 5 5 10
rn 2 2 5 9

提效结果: (10 - 9)/ 10 = 10%

五、方案内容

5.1、什么是跨端和动态化

app需求交付流程

image.png

开发流程分析(跨端)

image.png

使用原生开发:

  • 开发阶段:iOS和Android需要分别指定开发人员(2人),编写各自平台的代码;

  • 测试阶段:需要分别指定不同平台的测试人员(2人);

使用跨端开发:

  • 开发阶段:指定单一单发人员(1人),编写js代码,支持两个平台使用,部分场景需要额外编写一些适配代码;

  • 测试阶段:由于是一套代码,仅需要一个人测试即可(1人),需要额外关注一下不同平台的适配是否正常;

发布流程分析(动态化)

image.png

使用原生发版:

  • 应用打包后,需要分别提交各自的应用商店审核,审核通过后,再操作上线。

    • 依赖商店审核时间,存在审核不通过甚至拒绝上架的问题,需要重新提审;

    • 对紧急bug修复和时间敏感需求不友好;

  • app发版后,仅仅是更新了应用商店内的版本;

    • 需要引导用户升级,但是用户有可能不升级app,存在版本碎片化的问题;

    • 新功能无法短时间内触达全量用户;

使用动态化发版:

  • 发版仅仅是往自有服务器提交静态资源,不再受限于应用商店,灵活可控。

  • 直接提交静态资源到自己的服务器,app内自动拉取最新版本,用户启动app即可看到新功能。新功能可以快速触达全量用户;

目标流程

image.png

跨端:一套代码多端投放。开发、测试效率都更高。

动态化:动态更新。用户打开app的时候,无感升级到最新的版本。绕过商店审核,版本管理更灵活。

5.2、技术选型

React-native: flutter

2015年Facebook发布的跨端开发框架,目前得到了国内外很多知名公司的青睐。

国内:阿里、腾讯、百度、字节、京东、美团、快手、funplus等

国外:Facebook、特斯拉、Shopee等

使用方式

行业内rn的四种使用方式:使用rn的常见方式

一、整个app使用RN开发: 适合新项目

二、native内嵌入单一RN模块: 适合存量项目

三、native和rn混编:适合存量项目

四、RN容器化: 适合多个app项目

5.3、RN的路线规划

二 ---> 三 ---> 四

单一的RN模块 ---> native和RN混编 ---> 容器化复用

三 ---> 四

native和RN混编 ---> 容器化复用

序号 能力项 人力投入 备注
1 端内集成rn模块(iOS、Android) iOS:1Android:1
2 热更新 iOS:1Android:1前端:1 需要支撑不同的环境:feature、uat、pre、daily、prod
3 HDesign UI 组件库(RN)
4 分包 iOS:1Android:1前端:1
5 调试工具 iOS:1Android:1
6 包管理平台 iOS:1Android:1前端:1运维:1
7 路由协议 iOS:1Android:1前端:1
8 通知中心 iOS:1Android:1前端:1
9 bridge管理中心 iOS:1Android:1前端:1
10 集成对h5的支持 前端:1
11 容器建设 iOS:1Android:1
12 封装跨端包,提供给更多app快速接入 iOS:1Android:1
13 性能监控方案 iOS:1Android:1前端:1
14 线上错误收集 iOS:1Android:1前端:1

执行步骤:三步走

  • 【可用】试点业务跑通技术方案:试点需求周四确定

  • 【好用】能力建设:建设更多高质量的跨端基础能力

  • 【爱用】打磨细节:更强大更复杂的能力建设以及使用体验的优化

5.4、阶段划分

整体分为三个阶段

阶段一:(2023.Q4)

  • 快速提供跨端能力(2023.10)

  • 支撑业务开发:社区需求(2022.12)

阶段目标:

序号 内容 时间
1 端内集成rn模块(iOS、Android) 2023.10
3 试点业务落地 待细评,预期2023.12

阶段二:(2024.Q2)

  • 支撑更多业务开发

  • 基建能力建设

  • 跨端人才培养

阶段目标:

序号 内容 时间
1 提供热更新能力 2023.10
2 HDesign UI 组件库(RN) 2024.Q1
3 分包 2024.Q1
4 调试工具 2024.Q2
5 包管理平台 2024.Q2
6 路由协议 2024.Q1
7 通知中心 2024.Q1
8 bridge管理中心 2024.Q1
9 性能监控方案 2024.Q1
10 线上错误收集 2024.Q1
11 调试工具 2024.Q2
12 包管理平台 2024.Q2
13 单元测试

阶段三:(长期)

  • 提升开发体验和效率

  • 更多基建完善

  • 打磨细节

阶段目标:

序号 内容 时间
1 集成对h5的支持 2024.Q3
2 容器建设 2024.Q3
3 封装跨端包,提供给更多app快速接入 2024.Q4

六、资源投入

人力:成立跨端专项小组:

方向 Android iOS 前端 测试
人力 1 1 1.5 1

服务器:搭建热更新服务的时候至少需要一台静态资源服务器(2024.Q2

七、依赖方

后期建设包管理平台的时候,需要运维参与

八、风险点

整体方案比较成熟,技术上无明显风险点。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容