reactnative在特赞的应用与实践

沧海一滴 沧海一滴     2022-09-10     269

关键词:

基于React技术栈构建开发前端项目,并使用React Native开发特赞移动APP

目前正在使用Node.js开发和维护特赞服务网关,希望Node.js能够在更轻量级的微服务架构中发挥重要作用

课程介绍:

React Native在特赞的应用与实践

课程摘要:

APP开发技术的选型

React Native开发过程中的主要问题

异常监控、热更新与RN性能优化

距离过年还有一个月不到,产品突然提出一个需求说,咱们要不做一个IOS应用吧,快过年了,给设计师一个新礼物吧。当时我的内心其它是拒绝的,于是我面带微笑着说:“好啊,我们尽量吧。。。。。。”

IOS工程师是不指望了。

于是,开始调研苹果应用的审核发布流程,热更新,具体的实现细节。为了赶上苹果的审核,两周的时候,我们发布了我们的第一个初始版本,在接下来的2周时间,我们完成了剩余所有功能的开发,并通过热更新发布到了线上。我们用了不到1个月的时间完成了特赞原生IOS的开发

使用React的话,我们是通过声明式的方式定义组件,而后通过虚拟DOM在浏览器环境下,进行UI的渲染和数据的加载。

而React的使用已经应用到了PC页面,移动页面,甚至服务端渲染等场景下。

随着React Native的推出,我们甚至通过React更是拥有了开发IOS和Android应用的能力。记住,这是真的,真的原生应用!!

Learn once,write anywhere. React官方的slogan

为什么选择RN:

首先呢,刚才提到过,通过 RN开发的应用,只要优化得当,是可以获得无限接近Native应用的交互操作体验的,所以说,手感非常丝滑,让人爱不释手

然后就是,RN开发出来的应用,它的功能和性能都是很不错的。

还有一点,对前端开发人员来说,真的是一个福音,那就是,RN可以直接通过Chrome进行调试,分分钟让你欲罢不能

另一方面,因为我们团队本身就是React技术栈,所以选择RN是一个很自然的过程。适应的过程也非常的短暂。最后,也是影响我们抉择的一个因素就是,RN除了可以像WEB一样进行开发,还可以拥有WEB一样的发布能力,只要通过热更新就可以简单做到。

使用前:调试、路由、数据管理、组件选型

使用中:动画、缓存、手势、支付

使用后:推送、异常监控、热更新、性能优化

本次的分享,主要围绕RN开发前后我们涉及的方方面面进行探讨。包括开发前我们会重点考虑的调试、路由、数据管理组件选型等问题;

开发过程中,我们则是要解决动画、缓存、手势、支付等问题

业务功能开发完毕之后,则要关注消息推送、异常监控、热更新、性能优化这样更加重要的问题

调试过程中遇到的坑:

坑1:必须在第一次reload之后 才能进行断点调试

坑2:必须把chrome调试控制台所在 tab放在最前面,否则操作模拟器内的界面将会严重卡顿

当调试工作能够通过Chrome的DevTools进行时,一切都似乎变得简单起来了。

我们可以进行熟悉的断点调试,变量审查;

我们还可以结合React、Redux的Chrome插件直观的查看组件结构和整个工程的数据变化

 

路由:push-->project-->chatDetail-->chatList-->home(Top)-->pop

比如最初的我们处于home页,接着我们push到对话列表页,再push到对话详情、项目列表页,然后我们又可以pop回圣诞详情页。

当然实际情况可以还要复杂一点,比如往回跳多个页面,跳回到指定页面等等。这一切都是一个堆栈来进行操作的

所以这一切我们都可以用类似下面的一千代码来实现:
this.props.navigator.push({

name:‘chat‘,
params:{

  projectId,designerId,projectName

}

});//是的,开发使用的是JS,底层仍然是基于具体的平台

通过Navigator组件对象的引用,我们可以跳转到对话列表(chat)页面,与此同时,我们带上项目ID,设计师ID等参数,这些参数我们在chat页面中很容易获得。

React在WEB上可以通过React-router来管理路由,不过在RN中,路由管理变得更简单。通过Navigatro(或者最新的react-navigation)组件,我们把所有的Scene、场景、或者页面通过一个堆栈管理起来,页面的操作就是简单的出栈入栈操作

 

Redux+AysncStorage

 

基于reactnative的跨三端应用架构实践(代码片段)

...,将应用推广到各个渠道,而且还能节省大量人力物力。ReactNative的推出,为跨平台的开发带来了新的曙光。虽然Facebook官方blog的说法ReactNative支持“Learnonce,writeanywhere.”。但经过开源社区的不断努力,ReactNative已经可以达... 查看详情

腾讯优测优分享|探索reactnative首屏渲染最佳实践

...的干货~此文主要与以下内容相关,希望对大家有帮助。reactnative给了我们使用javascript开发原生app的能力,在使用reactnative完成兴趣部落安卓端发现tab改造后,我们开始对由reactnative实现的界面进行持续优化。目标只有一个,在享... 查看详情

腾讯优测优分享|探索reactnative首屏渲染最佳实践

...的干货~此文主要与以下内容相关,希望对大家有帮助。reactnative给了我们使用javascript开发原生app的能力,在使用reactnative完成兴趣部落安卓端发现tab改造后,我们开始对由reactnative实现的界面进行持续优化。目标只有一个,在享... 查看详情

逻辑性最强的reactnative环境搭建与调试

ReactNative(以下简称RN),已经“火”了好一段时间了,网上的资料相对也很丰富,只是一直迟迟没有发布1.0,不过出身豪门(Facebook)的RN和国内顶级互联网公司对于RN的实践与应用,就足矣证明其实力!本文分为以下几个... 查看详情

reactnative启动优化实践

参考技术ADiveintoReactNativeperformance阐述了基于RN实现的页面各部分加载时间占比图页面加载流程图(引用)从业务视角可以归纳为四个部分官方推出的FlatList及SectionList的一些问题官方对列表的一些配置推荐和实现建议OptimizingFlatlis... 查看详情

腾讯优测优分享|探索reactnative首屏渲染最佳实践

...干货~此文主要与以下内容相关,希望对大家有帮助。reactnative给了我们使用javascript开发原生app的能力,在使用reactnative完成兴趣部落安卓端发现tab改造后,我们开始对由reactnative实现的界面进行持续优化。目标只有一... 查看详情

nodejs--jwt在前后端分离中的应用与实践

nodejs--JWT在前后端分离中的应用与实践   http://www.cnblogs.com/lidongyue/p/5269695.html 查看详情

flink在58同城的应用与实践

...责人冯海涛在FlinkForwardAsia2020分享的议题《Flink在58 同城应用与实践》,内容包括:实时计算平台架实时 SQL建设Storm迁移Flink 实践一站式实时计算平台后续规划一、实时计算平台架构实时计算平台的定位是为58集团海量... 查看详情

flink在58同城的应用与实践

...负责人冯海涛在FlinkForwardAsia2020分享的议题《Flink在58同城应用与实践》,内容包括:实时计算平台架构实时SQL建设Storm迁移Flink实践一站式实时计算平台后续规划一、实时计算平台架构实时计算平台的定位是为58集团海量... 查看详情

flink在58同城的应用与实践

...责人冯海涛在FlinkForwardAsia2020分享的议题《Flink在58 同城应用与实践》,内容包括:实时计算平台架实时 SQL建设Storm迁移Flink 实践一站式实时计算平台后续规划一、实时计算平台架构实时计算平台的定位是为58集团海量... 查看详情

apacheflink在汽车之家的应用与实践

...星在FlinkForwardAsia2020分享的议题《ApacheFlink在汽车之家的应用及实践》。主要内容包括:背景及现状AutoStream平台基于Flink的实时生态建设后续规划一、背景及现状1.第一阶段在2019年之前,汽车之家的 查看详情

apacheflink在斗鱼的应用与实践

摘要:本文整理自斗鱼实时计算负责人夏畅在FlinkForwardAsia2021行业实践专场的分享。本篇内容主要分为四个部分:背景介绍实时平台建设实时数仓探索未来发展与展望Tips:点击「阅读原文」查看原文视频&演讲PDF~一、背景介... 查看详情

百度baikaldb在同程艺龙的成功应用实践剖析

导读:文章主要介绍BaikalDB在同程艺龙的完整落地实践,文章把BaikalDB总结为六个核心特性,分别是《BaikalDB高可用与HTAP特性实践》、《BaikalDB高性能与扩展性实践》、《BaikalDB低成本的思考》,希望对大家有帮助。全文14032字,... 查看详情

reactnative与react的关系及特点

一、React、React.js和ReactNative的关系React是基础框架,是一套基础设计实现理念,开发者不能直接使用它来开发移动应用或网页。在React之上发展出了React.js框架用来开发网页,发展出来ReactNative用来开发移动应用。因为React基础框... 查看详情

极客星球|clickhouse在数据智能公司的应用与实践

前言:Clickhouse数据库作为OLAP领域内的一匹黑马,目前在众多大厂已经广泛的被使用。MobTech在2020年开始尝试使用Clickhouse,并且具有一定的数据规模,目前线上Clickhouse集群数据规模为100亿左右。Clickhouse是什么?Clickhouse(https://Clic... 查看详情

后台开发--核心技术与应用实践(代码片段)

后台开发核心技术与应用实践.C++编程常用技术最好不要在头文件中使用命名空间,很容易造成命名冲突。strlen与sizeof的区别:strlen是函数,在运行时才能计算,传入参数是char*指针,返回字符串长度。sizeof()是运算符,而不是一个... 查看详情

flink流处理在中信建投证券的实践与应用

更多Flink相关技术问题,可扫码加入社区钉钉交流群~   戳我,查看原文视频&演讲PDF~ 查看详情

案例:reactnative在字节跳动游戏营销场景中的实践(代码片段)

...经发展了很多年了,最近比较流行的小程序、Flutter、ReactNativeÿ 查看详情