网易云音乐RN低代码体系建设思考与实践Tango是一个用于快速构建低代码平台的低代码设计器框架,并以源代码为中心,

Tango是一个用于快速构建低代码平台的低代码设计器框架,并以源代码为中心,执行和渲染前端视图,并为用户提供低代码可视化搭建能力,用户的搭建操作会转为对源代码的修改。借助于Tango构建的低代码工具或平台,可以实现源码进,源码出的效果,无缝与企业内部现有的研发体系进行集成。

目前Tango设计器引擎部分已经开源,正在积极推进中,可以通过如下的信息了解到我们的最新进展:

本文主要探讨基于Tango低代码在RN场景如何打造一套标准低码研发体系。

RN(ReactNative)是Facebook开发的一种基于React框架的移动应用开发框架。它可以用于同时开发iOS和Android平台的跨平台移动应用程序。

在npmtrends上可以看到,RN每周的下载次数,稳固上升,相比5年前,下载量已经翻了接近10倍之多,GithubStar数量也来到了110K之多,拥有非常庞大的社区生态。

在国内,无论大公司、小公司都钟情于应用的动态更新。因为动态更新能降低产品的试错成本。如果产品策略有调整,可以立马上线,线上有小问题也可以快速修复。但能够既满足动态更新,又能跨端,还能满足复杂业务需求的只有JavaScript语言。

2022年,对于ReactNative来说是一个大年,因为重构已久的ReactNative新架构已经确定会在今年正式推出,相对于老架构,新架构在最关键的性能问题上有了非常大的提升,这将会为ReactNative开启一个全新的阶段。

RN有着众多优势,云音乐也有相当多的RN需求,在需求不断地迭代,研发不断地投入过程中,还是暴露了一些问题。回顾一下C端场景的特点,往往是重视觉,重交互,我们来看一下目前介入一个RN需求开发并最终交付上线的核心过程:

如图所示,开发第一阶段,还原设计稿,这个过程其实可以追溯到需求评审阶段:设计稿的页面构成,哪些已有现成组件,哪些需要定制开发,样式部分的代码如何编写等。

不同场景的RN需求对应的实际业务开发有所不同,以下三种是最为常见的业务开发类型。

我们期望构建一套为低码为中心的在线研发体系,通过整套体系标准化来解决目前的问题,降低研发成本和门槛,提高效能。

RN迭代从需求到交付涉及到多个核心环节,以下是目前开发现状和低码研发体系的对比。

Tango将提供以源码为中心的RN在线搭建能力,支持RN应用快速交付,并提供标准化的线上研发流程

云音乐在移动端传统搭建上已经有了一些实践,但是在实际使用过程中遇到了一系列的问题。

DSL方案局限性

首先传统搭建平台大多基于DSL驱动,再交由DSL解析器进行渲染,映射到对应的组件。DSL本质上其实就是对代码的一种抽象,描述为一种Schema的形式进行可视化编排,最终还是要映射到真实的组件,组件消费DSL中携带的信息。

如果面向业务模式稳定的固化场景,进行深度垂直定制,在这个前提下一套DSL确实可以解决大部分场景,剩下的场景可以直接放弃(交由开发介入)。

但是移动端场景的特点就是灵活性高,而此类产品的特点往往面向运营等非开发角色进行无码搭建,快速交付。在实际使用过程中,会遇到DSL无法满足业务需求,需要开发介入定制DSL,升级组件的情况。

这个过程中其实带来了较大的成本:

基于AST驱动

Tango通过AST驱动,可视化的修改实际上就是对源码进行修改,对源码的直接修改其实就跳过了DSL映射到源码的过程,这样做的好处是,没有中间产物的形成,不需要额外的开发资源维护,也不会耦合至其他环境,可以跟现有的云音乐RN研发生态较好的融合。所以Tango主要面向研发同学,解决灵活场景下的RN开发,侧重对研发环节进行提效。在一些轻量场景,也可以作为NoCode平台,提供运营同学可视化搭建的能力。

从上图可以看出:无论DSL还是AST,最终都是映射到实际的组件,组件能力的强大与否会直接影响整个低码体系,以及需求交付的效率。组件,是非常重要的!

RN和Web应用在线开发最大的区别在于运行环境的不同,Web场景可以基于CodeSandbox实时预览,RN场景依赖App物理环境。

常见的RN应用调试环境:

目前云音乐RN研发主要使用模拟器+真机扫码两种形式进行开发,起步我们考虑了相对轻量的方案:RNForWeb进行初步搭建及预览,再结合真机扫码进行实际联调,这样做的好处是在设计器运行沙箱上可以复用现有CodeSandbox能力,不需要做定制,但该方案马上暴露了一系列问题:

综上,选用MacIOS模拟器作为真机运行环境,完美贴合本地开发体验。也带来了更大的挑战,我们需要模拟一套在线开发环境(远程本地开发):

下面我们来具体看一下如何解决这些问题。

首先我们来解决第一个问题,回顾一下本地开发过程:启动RN项目,通过模拟器或者真机App访问RNbundleUrl进行调试预览,本地启动的devserver其实就是打包服务(metrodevserver),产物为:

xx://10.10.10.10:8081/index.ios.bundle那么远端构建其实就是将本地流程容器化:拉取项目代码,构建打包,输出产物。如图所示:

在低码平台初始化时将完整的代码推送至构建服务,构建服务分配一个实例进行上述构建过程,平台或者手机访问打包产物即可,代码变更时patch最新代码,触发HMR热更新即可。

Expo真机界面通过实时图传的方式进行返回(如下图所示),我们也进行了类似方案的实践,实践结果是在20~30FPS帧率下实时截屏图传返回至Web再显示,Socket存在时序和堆积问题,造成画面时序不一致且闪烁严重。

其实还有一种方式可以获取到屏幕的实时画面,通过直播推流的形式,将物理屏幕进行捕获推流,网页拉流播放即可,也就是传统意义上的"直播"。

ffmpeg-fx11grab-video_size1280x720-i:0.0+100,200-falsa-idefault-c:vlibx264-presetultrafast-pix_fmtyuv420p-c:aaac-fflvrtmp://your-streaming-server-url/your-stream-key最终采用OBS进行窗口捕获及推流,OBS优势:自带窗口捕获,画布调整,完整的推流参数配置,以及内置WebSocket服务器可以进行直播控制。

常见的直播方案如下:

由于云手机交互时效性要求,需要一套低延迟直播方案,经过综合对比:

选用SRS流媒体服务器进行转码,使用OBSRTMP进行推流,Web使用WebRTC进行拉流得到云手机实时画面。

SRS是一个开源的(MIT协议)简单高效的实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等协议。SRS媒体服务器和FFmpeg、OBS、VLC、WebRTC等客户端配合使用,提供流的接收和分发的能力,是一个典型的发布(推流)和订阅(播放)服务器模型。SRS支持互联网广泛应用的音视频协议转换,比如可以将RTMP或SRT,转成HLS或HTTP-FLV或WebRTC等协议。

CANDIDATE="192.168.1.10"dockerrun--rm-it-p1935:1935-p1985:1985-p8080:8080\--envCANDIDATE=$CANDIDATE-p8000:8000/udp\registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5./objs/srs-cconf/rtmp2rtc.confOBS推流与拉流接下来对OBS进行一定的配置,Mac设备优先选用H264硬件编码进行推流,码率和帧数控制在一定范围,推流地址设置为rtmp://{your_ip}/live/{your_livestream_key}即可。

网页端使用WebRTC播放器进行拉流,WebRTC(WebReal-TimeCommunications)是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。

至此,我们已经获取到实时画面,模拟器摇身一变成为云手机,接下来的核心问题:解决云手机的通信和交互,以及多台云手机如何调度分配的问题。

首先解决如何分配的问题,场景是:用户访问低码平台时,需要使用一台云手机,而一台物理机上可以启动多台云手机,并可以同时有多台物理机,需要正确的分配到一台设备。

有同学可能发现了,这个模式非常像"反向代理",那么顺着这个思路,我们需要实现一个虚拟网关,负责通信和调度,我们来看一下大致过程:

此时用户已经分配到云手机,且可以看到实时画面。接下来就要解决如何通讯的问题,既然是通讯那么肯定首选长连接,我们需要与云手机建立SocketB,该Socket可以将页面的消息发送至云手机App并将App中的数据返回至平台。上述流程如图所示:

此时云手机通讯机制已经建立,我们可以请求云手机加载某个RN页面,但此时云手机无法"使用",云手机需要支持基本的点击/滑动交互:

基于已经建立的通讯连接,我们可以远程"操控"云手机并获取到App中运行的信息以及日志,在平台侧进行展示,为在线联调提供了通道,目前主要开放了以下几个能力:

快捷工具栏:为了还原本地开发体验,我们将调试工具中常用的能力进行了可视化,在云手机一侧提供了工具栏,进行快速使用。

运行状态栏:在底部状态栏的左侧显示了目前云手机的设备信息以及当前App的信息。

日志信息栏:显示当前warning,error的数量,点击后展开Console面板,查看当前Metro日志信息,对齐ChromeConsole体验。

至此,前文提到在线开发的7个问题均已解决,我们来看最后一个问题,如何与低码进行结合

在C端场景Tango也保持了社区常见的交互形式,通过页面结构树面板可以对页面中的节点进行增删改查,调整位置等操作。

常见交互为大纲树和设计器都需要在点击后回显选中的节点,由于RN代码实际运行在客户端中,此处就带来了另一个问题:静态的RN代码节点与客户端运行时的节点如何映射,确实是一个比较有趣的问题,我们可以延续之前模拟点击交互传的思路,大致如下:

通过标记节点,客户端计算返回选中的节点坐标宽高信息,模拟选中框覆盖在云手机上,达到选中的效果。

对于专业RN开发同学,或复杂场景需切换至源码进行开发,我们也对源码模式下的开发体验进行了增强,提供"左看右写"的模式,结合完善的在线调试工具,典型场景下,可以完全脱离本地开发环境,使用线上进行开发。

Tango低码的理念不仅限于"在线","可视化搭建",旨在构建一个以源码为中心,完整的低码研发生态体系。

低码接入的组件能力完善与否也直接影响开发搭建效率,我们针对典型场景使用的高频组件进行细分,对此类组件进行"低码化"增强,减少原子组件重复低效使用的问题。

云手机顾名思义就是取代了物理手机,目前依赖物理手机的场景大部分都可以通过云手机进行平替,并且由于云手机拥有建全的通信机制,交互能力,可以畅享更多的可能性,以下罗列了一些比较常见的应用场景:

篇幅较长,如果您看到这里了,非常感谢,希望能给各位带来一些收获。最后还是想聊一点题外话,市面上大大小小的"低码"产品非常多,包括不限于各种可视化搭建平台,(X)aaS平台,代码插件工具等。

低码理念的出现本质上是为了解决某个(类)问题或某个(些)场景。在近几年社区低码概念的发展以及业务实践经验来看:

不够贴合业务,无法开箱即用,接入成本高,门槛高,拓展性强。

贴合业务场景,可以开箱即用,接入成本低,门槛低,拓展性差。

这就是一个"天平"问题,如何寻找到平衡点是一个值得持续探讨的问题,低码的本质是提效,是解决问题,在这个大前提下,如何做到高内聚,低耦合的T型架构,是值得低码从业者持续思考和实践的~共勉~

THE END
1.电视投屏软件排行榜前十名好用的手机投屏软件推荐手机电视投屏app手机投屏电视软件创维电视投屏软件电视投屏app手机投屏电视app智能电视投屏软件可投屏免费影视app手机电脑投屏app可投屏的免费影视软件有投屏功能的视频app投屏电影app可以投屏的免费影视软件可以投屏的影视软件手机投影到电视app免费投屏影视app免费影视投屏app能投屏的免费影视app手机投屏https://m.pianwan.com/s/zj-9424192
2.十大安卓手机投屏app排行榜888 应用市场分享十大安卓手机投屏app排行榜前十名手机应用,编辑为您推荐手机安卓手机投屏app排行榜第一名到前5名到前十名的应用大全。找安卓手机投屏app有哪些、安卓手机投屏app哪个好用,上888 应用市场https://m.nongjia888.com/s/zj-385555
3.手机投屏软件哪个好用?推荐这五款投屏神器今天就来给大家分享五款非常不错的手机投屏软件,它们的功能各有千秋,大家可以任意选用。https://wd.znds.com/97528.html
4.手机投屏神器大比拼,选对软件,轻松实现无线投屏!使用手机投屏软件的步骤 常见问题解答 随着智能手机的普及,手机投屏功能已经成为许多用户的需求,无论是为了家庭娱乐还是商务演示,一款好的手机投屏软件都能让你的生活和工作变得更加便捷,本文将为你详细介绍如何选择合适的手机投屏软件,并一步步教你如何使用它。 https://m.haiugo.com/post/11338.html
5.高清共享十大投屏器推荐助你实现无缝多屏协作现代办公环境需要支持多种操作系统,因此投屏器必须具备良好的兼容性,不仅限于Windows或Mac,还需支持Linux甚至移动设备,如智能手机和平板电脑,这样可以更好地促进团队合作。 高质量音频输出 除了视频展示,音质也是不可忽视的一环。优秀的投屏器不仅能够传输清晰的图像,也能提供高质量的声音输出,为观众带来沉浸式体验。在https://www.szpahxctv.cn/bai-ke/448495.html
6.免费大屏幕互动软件:大屏互动软件有哪些电视果3作为一款投屏神器,运用的范围非常广,不仅可以连接电视机供娱乐使用,还可以出差旅行携带,进行办公演示使用也都有非常出色的表现。另外,电视果3几乎支持主流的所有视频网站投屏观看。 值得一提的是,电视果3还有秘听功能,例如在半夜看球赛,开启后会把电视上的声音直接回传到手机中,用户通过连接耳机听声音,这样一来https://www.506064.com/n/220959.html
7.苹果手机投屏到安卓电视,AirPlay不能远程投屏,这个方法能实现ipad苹果品牌的设备一般都可以使用airplay功能,将一个屏幕投射到另一个屏幕上。如果是跨品牌或跨系统投屏,airplay就未必能够适应。 提供无线投屏和airplay投屏两种方式的AirDroid Cast已经推出TV版本。苹果手机或iPad可以选择无线(远程)投屏到电视,或者airplay局域网投屏到电视。 https://www.163.com/dy/article/JI5K2DJE0552S03P.html
8.特斯拉投屏支持哪些设备特斯拉还提供了名为TeslaMirror的投屏App,该应用适用于安卓和iOS平台。安卓版本能够支持Apple Music的投屏功能,而iOS版本由于API限制,对于DRM版权保护的媒体投屏会被禁音,因此Apple Music等应用在iOS上无法投屏。 对于安卓设备,只要支持“Wi-Fi热点”功能即可,可以通过连接汽车附近的移动路由热点或iPhone热点,无需蜂窝网络https://www.autohome.com.cn/ask/13126933.html
9.线上会议室的优势选择指南和飞书系统打开飞书桌面端,点击左侧顶部的+>会议室投屏,选择需要投屏的内容。可以使用超声波投屏、投屏码和会议ID投屏,或通过有线投屏来共享内容。 飞书让会议更智能、信息同步更精准高效,送300G存储 → 3. 在飞书会议室中遇到问题如何请求现场服务? 在飞书会议室控制器上,点击右上角的请求现场服务按钮,进入请求页面,选择所https://www.feishu.cn/content/xianshang-huiyishi-xuanzhe-feishu
10.免费的电视剧在线观看平台有哪些如何选择最适合的观看方式如今,随着互联网的发展,越来越多的用户选择通过网络观看电视剧,尤其是在免费视频资源网站的普及下,在线观看人数持续攀升。那么,免费的电视剧观看平台究竟在哪些地方可以找到?本文将探讨免费电视剧在线观看的来源,以及如何选择最合适的观看平台。 免费在线观看电视剧的流行趋势 在过去的几年里,传统电视台逐渐失去了一部分http://m.zch918.com/xinwen/14955.html
11.在线教育平台有哪些在线教育app排名在线教育app下载在线教育随着近两年,随着移动互联网的快速兴起,一场教育领域的“寒武纪生物大爆炸”正在兴起:原本单一的传统教育培训市场正在被“教育+互联网”的模式所冲击,开始焕发了生机与活力,各种在线教育app如雨后春笋一般,破土而出。用户朋友可以直接通过这些客户端来观看各种教学视频资源,且完全免费。这里的学习资源涵盖了多个https://www.itmop.com/key/zaixianjiaoyu/
12.在线视频直播教育平台有哪些平台导航钉钉帮助中心为您提供在线视频直播教育平台有哪些相关问题的回答,更多在线视频直播教育平台有哪些问题相关解答可以注册咨询钉钉人工客服。https://m.dingtalk.com/qidian/help-keyword-67045
13.www.tibox.cn/xxxr65079235.htm临海有借款的平台有黄片没有 台湾永久裸体时装 十八禁爱情岛污 微彩注册 麻7IIII2扣不错 黄色97视频 FreeXXXXHDsex二区 欧美尸交 三级黄色福利视频 国产原创AV在线 林俊逸肏周涛的穴 下载狗日人的片子 插进去爽刺激在线免费 美女露出来奶头屁股和全身app 白丝足交软件 大学生日批批一区二区三区 http://www.tibox.cn/xxxr65079235.htm
14.中职在线教育平台官网入口,怎么注册4.1.1.6教师可通过平台上传课程所需要的教材、参 考书、参 考文献、视频等资源。课程的内容建设,参 考资料,课程介绍等任何位置都可以使用平台提供的海量图书、图片、视频的资源一键式搜索插入,插入的资源可以直接点击在线播放查阅,也支持自己上传资料,支持引用图书馆资源和联盟共享资源。 https://www.zhijiao.cn/news/detail/77842
15.葡媒:尤文有意安东尼奥席尔瓦,但本菲卡不会在冬窗出售他葡媒:尤文有意安东尼奥-席尔瓦,但本菲卡不会在冬窗出售他-直播吧 三国杀移动版模拟战怎么刷三星武将 直播吧11月30日讯 据《纪录报》报道,本菲卡不会在冬窗出售尤文的引援目标安东尼奥-席尔瓦。 据《米兰体育报》报道称,尤文总监琼托利希望通过租借+强制买断的方式引进安东尼奥-席尔瓦,尤文还可以借助与门德斯的良好关系http://www.acdbb.top/256830.html
16.东奥视频直播平台有哪些,东奥视频直播平台有哪些平台东奥视频直播平台有哪些,东奥视频直播平台有哪些平台 本文目录: 1、东奥视频怎么在电视上看 2、东奥直播的名称是什么 3、在国外用什么APP看东奥不受限制 4、开幕式怎么没直播 5、西瓜视频能看冬奥会吗 1、东奥视频怎么在电视上看 想要将东奥听课的内容投屏到电视上,首先需要确保你的手机上安装了会计云课堂APP,https://www.kuisao.com/193244.html
17.抖音在线刷视频(免费业务自助下单平台)当我们再次投屏的时候,会是什么效果? 最后,从各个方面上看,相信我这样的折腾效果也是首发吧,横竖切换功能。再来瞧一瞧无线投屏效果,咳咳,又和手机干上了,投屏!!堡碉了,简单玩了一下。其实不难,只要把控好各个细节就好,若死活切换不了,也可以进入开发者模式、ROOT、USB调试各种办法都去尝一下吧,生命在有折腾嘛https://www.dzpc.net/resources/network-digest/4991.html
18.慕课慕课教育平台因为慕课平台有很多,每个平台都有自己的特点和优势。学堂在线是国内领先的慕课平台,拥有大量的优质课程资源;中国大学MOOC则侧重于高校课程,可以让学员享受到高等教育资源;网易云课堂则提供了很多实用技能类的课程,适合想要提升自己技能的学员。总的来说,慕课作为一种新型的教育模式,为广大学员提供了便捷、高效的学习途径https://www.yunduoketang.com/article/lwt936.html
19.线上教学方案(合集15篇)为切实做好疫情防控工作,20xx届高三年级部在学校疫情防控工作领导小组安排部署下迅速开展相关工作。信息摸排、疫情报告、政策宣传、知识普及、消毒清洁、联动管控等各项工作有条不紊开展。 开学虽推迟,教育不停步。学校精准施策,积极构建信息化资源平台,面向学生开展网络教学、线上答疑等活动,保证我校20xx届高三学生在延https://www.wenshubang.com/fangan/2969132.html
20.产品分析:为何斑马英语成吸金怪兽?在斑马英语应用中以及整个C端幼儿启蒙市场中,主要有三大参与方:平台方,内容消费者,投资者,不论任何公司以及产品想要生存以及更好的发展都必须平衡满足各方的需求,这十分考究一个产品经理的平衡决策能力。 下面将从斑马英语为引,探究一下在启蒙教育中三方究竟有哪些需求,以及斑马英语是如何满足并平衡各方需求发展的,对https://maimai.cn/article/detail?fid=1412879648&efid=zblQwE8w7plsQQLXOcx_Nw
21.www.jxmzxx.com/appnews亚运延期后,杭州亚运会开创了国内综合性体育赛事场馆赛前向社会开放的先例,亚运竞赛场馆和训练场馆全部实现惠民开放。打造的“亚运场馆在线”平台自2022年5月26日上线以来,参与健身人数超950万人次。__。 11月1日至2日,第七届(中国)广州商务航空展暨通航低空产业博览会在广州举行,现场展示了多款公务机、直升机、电http://www.jxmzxx.com/appnews_20241102/88385074.html
22.十大在线视频网站十大影视网站排行榜居前十的有:腾讯视频、爱奇艺iQIYi、优酷Youku、芒果TV、哔哩哔哩bilibili、西瓜视频、咪咕视频、央视频、央视影音、1905电影网等,上榜在线视频十大品牌榜单和著名在线视频品牌名单的是口碑好或知名度高、有实力的品牌,排名不分先后,仅供借鉴参考,想知道什么牌子的在线视频好?您可以多比较,选择自己满意的!在线视频品牌https://www.maigoo.com/maigoo/929net_index.html
23.《八戒》网剧在线观看入口在哪里?如何在线观看这部经典网剧?此外,许多平台会根据你的观看历史和兴趣推荐相关的剧集或电影。如果你对《八戒》网剧非常喜欢,也可以关注平台推荐的其他类似剧集,或者加入剧集的粉丝社群,与其他观众讨论剧情,分享观看心得。 总的来说,想要在线观看《八戒》网剧,选择一个可靠的视频平台,并根据个人需求调整画质、下载、投屏等功能,都会让你的观看体验更加http://www.yunzhiju.net/jxfsxf/15185.html
24.基于Qtffmpeg开发跨平台安卓实时投屏软件在线视频教程掌握基于Qt开发跨平台实战项目的基本流程 提高c++编码实战能力 适用人群 计算机相关专业学生,C++开发人员 课程介绍 基于Qt ffmpeg开发的安卓实时投屏软件,将安卓手机视频实时投屏到电脑端,并使用电脑键鼠实时控制安卓手机,还支持键鼠玩吃鸡手游。项目中使用Qt、ffmpeg等开发,涉及多进程、多线程、网络编程、视频解码、视频渲https://edu.csdn.net/course/detail/10750/
25.效率工具横评:钉钉飞书企业微信哪家强?在三款产品中,企业微信的微文档最简单,所有功能都很基础,既没有像WPS一样强大功能,也没有飞书高效协作体验。 即时沟通:体验最重要 作为一个效率工具,沟通功能是否好用,一定程度上反应了这个平台的用户体验。 飞书:强大的沟通体验 飞书在提高沟通效率方面做了很多内功,例如在聊天窗口中,可以直接单独回复、pin一下等https://www.51cto.com/article/613404.html
26.免费追剧神器遍地!十大无广告可投屏的追剧软件大揭秘!有没有合适十大无广告可投屏的追剧软件大揭秘!有没有合适的呢?此标题满足您的要求,符合用户搜索需求,同时带有疑问,以吸引用户点击和了解更多信息。标题字数超过20个字符,且使用了 标签。"> 作为国内领先的在线视频平台之一,爱奇艺不仅提供了丰富的影视资源,还支持无广告投屏功能。用户可以轻松找到想看的剧集,享受大屏观影的http://m.yujiataste.com/yujiajc/866.html