外国网站邀请做编辑广州做网站找酷爱网络

news/2025/9/28 16:44:29/文章来源:
外国网站邀请做编辑,广州做网站找酷爱网络,wordpress微信登陆插件,广州品牌设计公司排名前十强开源项目专题系列(八)1.开源项目名称#xff1a;magpie_fly2.github地址#xff1a;https://github.com/wuba/magpie_fly3.简介#xff1a;magpie_fly 是58集体出品组件库#xff0c;统一管理日常开发中的基础组件及高阶组件#xff0c;并提供了相对友好的方式介绍组件的具… 开源项目专题系列(八)1.开源项目名称magpie_fly2.github地址https://github.com/wuba/magpie_fly3.简介magpie_fly 是58集体出品组件库统一管理日常开发中的基础组件及高阶组件并提供了相对友好的方式介绍组件的具体使用方式。旨在降低日常开发中对组件的查找和学习成本实现技术组件的统一提升开发效率。全文大纲如下背景简介整体效果展示特点与优势实现方式现有组件list后期规划作者介绍背景相信很多公司都已经在研究flutter甚至已经把flutter运用到了自己的项目中它的流畅性热加载以及其丰富高效的UI表现力相信很多人都有体会。在开始magpie项目之前为了更多的了解flutter我们首先用安居客的有料界面做了尝试但是在开发有料界面的时候我们遇到了一些问题从上面的图中可以看出我们在现实开发中难免会遇到以下的问题flutter提供的组件不满足我们的开发需求我们需要自己封装或者使用第三方组件满足我们的开发需求。在不同平台上搜到很多相似组件的不同实现方式难以抉择。需要本地运行才能看见组件的真正样式因为作者介绍的效果图跟实际效果可能有偏差。需要把demo down下来之后才能找到组件效果实现的具体代码。没有符合我们集团内部统一风格的整套UI样式。写UI的同学重复造轮子。比如一个button的创建一个imageView的使用。magpie_fly要做什么我们希望统一组件管理以最友好的方式去介绍组件降低组件的查找和学习成本。所以我们需要一个组件库当然这个组件库是开放的我们希望更多的开发者将自己的组件贡献到组件库中。同一个集团下就应该要考虑体验一致性的问题所以我们希望像material-ui和fusion.design一样用flutter实现一整套统一UI风格的组件。聚集现有最优的高阶组件。我们希望通过设计图就能生成出对应的UI代码这样不但能解决UI图跟实际开发效果不一致性的问题同时能降低设计与开发的沟通成本解放了开发同学重复写UI代码的担子。目前我们只做了第一点剩下三个方面将是我们组件库后期开发的重点。整体效果展示58公众号动态显示58最新技术文章方便向外界宣传58技术widget库中管理的所有组件列表便于开发者进行查找组件详情组件介绍界面markdown效果代码的显示方式使用文档详细的描述了用源码的方式跑magpie_fly App的具体方法贡献流程详细的描述了我们应该怎么样去把自己写好的组件接入到组件库中特点与优势1、特点  集合所有日常开发中常用组件统一管理  文档、组件效果和代码同时显示  支持快速接入新的widget2、优势与Flutter-Go对比实现方式1、组件详情页 1.1 方案选择文档图片通常情况下都会想到用文本的方式去介绍一个组件的使用方式如果想要显示组件的样式基本都是通过嵌入图片或者gif的方式去显示一个组件的具体效果这样做的弊端是如果我修改了组件的样式就算只改了一点点我们都需要重新截图或者录gif动图。很显然这是很麻烦的。专门用widget实现一个完整的详情页开发者针对不同的组件自己去用widget实现一套自己的组件详情页但是我们这是一个组件库就希望统一详情页样式和风格所以让开发者自己实现自己的详情页是不可取的并且开发者自己全部开发一个详情页其实消耗的精力也是比较大的。文档组件效果代码我们希望在给开发者介绍组件的同时开发者能对组件进行操作增加开发者对组件的理解并且能直接看见实现该组件效果的对应代码方便开发者学习的同时还能一键复制到自己的工程中直接使用。这样大大降低了开发者的学习成本从而提高开发效率。于是我们借鉴了material-ui的思想实现了一套markdown widget效果(可以交互) 代码的方案。1.2 方案文档组件效果代码显示实现方式我们先来看下效果可以看出我们中间嵌入的组件是可以手动进行操作的而该组件是由下面的代码渲染出来的。那我们是怎么样实现这样的效果的呢虽然详情页看起来是由三部分组成实际上开发者只需要编写markdown文档并且在文档中添加我们规定的代码我们通过解析特定markdown文档的方式得到这样的效果。我们来看下需要嵌入组件的markdown的格式框出来的地方就是我们需要在.md中对应位置嵌入组件时的固定嵌入代码。我们会在解析markdown的时候专门对嵌入的代码进行处理。参数详解demo需要引入的样式的代码路径code默认true是否要展示widget对应的代码jump默认false在当前页面展示效果对应代码true则替换为占位符跳到二级页面展示我们拿到demo的value值从config.dart中得到对应的demo实例也就是自己组件的widget而正常的文档通过第三方库flutter_markdown转换成对应的flutter原生widget。于是整个markdown文档就全部转换成了多个widget组合的列表然后放到ListView中进行显示。那我们是怎么样把渲染组件的代码嵌入到markdown中的呢再来看下我们嵌入的代码{{demo: lib/demo/horizonal_scroll/HorizontalScrollDefault.dart, code: true}}这样我们就只需要修改代码效果和对应的代码都会同步展示出来。另外如果展示的效果是全屏的只需要加个jump:true的参数特殊代码就会解析成一个占位符点击跳转到二级页面展示效果点击右上角菜单即可查看对应的代码。代码关键字高亮展示方便阅读支持代码折叠、复制功能。2、快速接入组件既然是组件库就支持不断的往库中新增组件为了让开发者接入组件的时候更加简单方便我们提供了接入脚本脚本会根据输入的组件信息会自动在example/lib/demo文件创建一个组件模版接入方只需要修改自己组件相关的信息就能在界面中进行显示。具体设计参数详解.md文件组件详细描述markdown文件其中可插入组件效果的特定代码块需开发者自行编辑.dart文件对应组件的效果实现文件需提供组件的开发者自行实现相应效果.page.json根据执行脚本自动生成的组件信息文件供ListData读取显示在列表页中不需要开发者操作脚本主要做了两件个事情在example/lib/demo中生成对应组件的文件夹自动在ListDatas中加入需要在list中显示的组件然后在assets中配置自己的文件夹路径- lib/demo/test_wdiget/并且需要在util/config.dart中配置自己的demo数据lib/demo/test_widget/test_widget: () TestWidget(),至此就完成了一个简单的接入工作运行工程会在列表页看见加入的demo。现有组件list我们从安居客有料中提取了多个高阶组件下面我们来介绍下这些组件。1. video视频Feed流滚动探测播放插件我们经常会遇到这样的需求当视频滑动到列表的某一个位置时视频自动播放。甚至列表存在视频和其他帖子参差的数据这个时候我们就需要去动态的检测可视范围内符合条件的视频数据该组件就是在feed流中探测视频控件进行操作的插件。使用方式  1.1 使用ScrollDetectListener包裹ListViewListView为业务相关的视频流帖子。  1.2 视频帖子使用MetaConsumer包裹2. pinned_sliver 混合嵌套列列表中的吸顶安全区解决⽅方案在Flutter中使用AppBarLayout和SliverPersistentHeader都可以做出基本的吸顶效果。AppBarLayout内部使用的也是SliverPersistentHeader可以把它理解为一个Framework定制好的状态栏控件支持较多设置属性包括吸顶和float等。当吸顶遇到刘海屏时事情就会变得有些复杂一般来说我们希望  2.1 在没有吸顶前尽可能多的利用屏幕也就是需要使用沉浸式  2.2 当吸顶的时吸顶块需要在刘海之下也就是空出安全区而flutter本身的组件是不支持吸顶前后UI样式不一样的情况该组件就是为了解决这种情况诞生的。3. bannder_round 一个支持多种形式的高性能轮播组件滚播组件算是在日常开发中很常见的一种组件了该组件支持默认滚播图片和自定义滚播item样式可设置定时滚动等功能。4. horizonal_scroll 带尾部加载更多样式的横滑scrollview在日常开发中经常会遇到右滑加载更多的需求但是flutter提供的Scrollview是不提供底部加载更多效果的。为了减少开发时间提供了一个带阻尼回弹效果的横向加载更多组件底部加载更多可用自定义组件也可用组件内提供的默认样式和显示文字的样式。5. draggable_btn 一个跟随手指全屏拖动的按钮DraggableBtn是一个跟随手指全屏拖动的组件当手指按住时放大随着手指移动放开恢复原来大小停留在手指弹起的位置。可适用于悬浮广告位和debug时调试的悬浮按钮。6. popup_window 一个任意位置箭头跟踪View的弹层效果组件可指定上下左右方向弹出对应方向的弹层一般适用于弹出。后期规划希望更多开发者能积极的参与到我们的组件库中我们会不断丰富我们的内容使magpie_fly成为日常开发中必不可少的工具之一。作者介绍吴丹58同城二手车技术部-iOS高级开发工程师主要负责58同城App的二手车相关研发工作。金修博58同城商业智能中心-iOS高级开发工程师主要负责美事App的相关研发工作。李义新58安居客二手房经纪人Android高级开发工程师主要负责移动经纪人App的相关研发工作。Live58对外技术沙龙第五期Flutter专场——Flutter在58的应用实践系列话题系列2已准备就绪本周日晚7:00准时开幕扫码添加“58技术小秘书”微信 : jishu-58添加小秘书微信后由小秘书拉您进项目交流群END阅读推荐1. 详解站点压测利器——nGrinder2. 开源Magpie混合开发工程化框架3. Go服务在容器内CPU使用率异常问题排查手记4. 开源Magpie平台工具链开发实践5. 开源Magpie58跨平台技术应用及Flutter实践概览

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920846.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中国住房和城乡建设厅网站美食教做网站

过了面试,后面的在线测评还会刷人吗?完全有可能刷,如果不是为了刷,何必要给你做线上测评,我说的有道理不? 好吧,说到为什么在线测评要刷人,怎么刷? 怎么才能确保不被刷&…

web服务器配置步骤有哪些?如何建立一个web服务器

建立一个 Web 服务器 并配置它,是托管网站、应用程序或服务的基础任务。以下是完整的 Web 服务器配置步骤,涵盖从准备服务器到部署网站的流程,包括选择技术栈、安装软件、配置安全性和优化性能。1. 准备工作 1.1 选…

题解:P10005 [集训队互测 2023] 基础寄术练习题

好牛的计数题。 题意:很简单了,不再赘述。 做法: 首先看到这个前缀和的乘积的倒数太难算了,一般来说肯定是考虑拆成 \(a\) 怎么样算一下,经过一定的手玩以后会发现 \(\sum\prod\limits_{i}\frac{1}{s_i}=\prod\fr…

详细介绍:Linux----gcc、g++的使用以及一些问题

详细介绍:Linux----gcc、g++的使用以及一些问题pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", …

网页和网站有什么关系网络建设与维护是什么

工厂模式用于干掉大量的if-else ,策略模式用于挪去臃肿的业务代码,还可以进一步升级加上模板模式,以及抽取成Starter public interface HandlerStrategy extends InitializingBean {void findSyncOrders(); }public class SalesPlatformFact…

网站logo怎么设计哪个网站可以做立体字的模板

文章目录1. 题目2. 解题1. 题目 设计一个支持下述操作的食物评分系统: 修改 系统中列出的某种食物的评分。返回系统中某一类烹饪方式下评分最高的食物。 实现 FoodRatings 类: FoodRatings(String[] foods, String[] cuisines, int[] ratings) 初始化…

电子商务网站开发常用工具建筑资料管理规程

最近很多朋友(Andrew、BENEN1)都在问如何让Lookup显示InActive记录,研究后发现可以通过Plugin来实现这样的功能,MSCRM真是无所不能,没有做不到,只有想不到!实现步骤:一、自定义实体->工程项目->表单和视图->查找视图->…

网站制作有哪些技术外贸电商网站建设

RPC和WebService的关系RPC(Remote Procedure Call)— 远程过程调用,是一个很大的概念, 它是一种通过网络从远程计算机程序上跨语言跨平台的请求服务,rpc能省略部分接口代码的开发,可以跨机器之间访问对象(java rmi),可以有更方便的…

学院网站建设时间控制变更申请表北京软件开发公司排行榜最新

在Spring Cloud Gateway中,GlobalFilter接口允许你创建全局过滤器,这意味着该过滤器会应用到所有的路由上,无论它们是否匹配特定的路由规则。Ordered接口用于定义过滤器的执行顺序。 以下是一个AuthFilter类的示例,该类实现了Glo…

同步和互斥的基本概念

同步与互斥的基本概念 临界资源 我们将一次仅允许一个进程使用的资源称为临界资源 什么是进程同步 直接制约关系,他是指为了完成某种任务而建立的两个或多个进程,这些进程因为需要某些位置上协调他们的工作次序而产生…

Sep 28

只整理 T1, T2. 原题是 「ROI 2012 Day 1」密码 和 「ROI 2012 Day 2」剧院始于演员,可以与 LOJ 提交。 T1 考试的时候忘记 return 0, 导致一口气把所有答案都输出出来了,100->30,再次警示使用 break 的时候一定…

图像采集卡:连接镜头与机器的“视觉神经”,释放工业智能核心动力

什么是图像采集卡? 身处机器视觉、智能制造、医疗影像等行业前沿的你,是否常听到“图像采集卡”这个词?它绝非简单的配件,而是现代工业应用中的关键“视觉神经”。简单来说,图像采集卡(又称视频采集卡或帧抓取器…

2025 年生态木厂商最新推荐榜单:TOP 前五企业实力解析及厂商选择指南生态木方通/户外地板/装饰线条/隔断/背景墙厂商推荐

在环保装饰材料需求持续攀升的当下,生态木(WPC)凭借环保、耐用等优势,成为家装与工装领域的热门选择,但市场乱象却让采购方陷入困境。一方面,大量中小品牌缺乏核心技术,产品在防水、防火、环保性上不达标,且同…

盲盒一番赏小应用用户需求分析:从行为动机到功能诉求的深度拆解

盲盒一番赏小应用用户需求分析:从行为动机到功能诉求的深度拆解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "C…

C++ IO 库全方位解析:从基础到实战 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

解题报告-泥路(muddyroad.*)

泥路(muddyroad.*) 题目背景 yxr 热爱多级跳,而且他十分喜欢在泥路上练习多级跳。 不幸的是,有一天下雨了,yxr 穿着的却是一双新的鞋子。yxr 心疼自己的鞋子,但是又不舍得放弃练习多级跳,于是他决定先勘察泥路。 …

洛谷P10112 [GESP202312 八级] 奖品分配

传送门 原题 题目描述 班上有 \(N\) 名同学,学号从 \(0\) 到 \(N-1\)。有 \(M\) 种奖品要分给这些同学,其中,第 \(i\) 种奖品总共有 \(a_i\) 个 (\(i=0,1, \cdots ,M-1\))。 巧合的是,奖品的数量不多不少,每位同…

P10400 『STA - R5』消失的计算机

传送门 原题 题目描述 本题为提交答案题。 后台有一个正整数 \(n\)(你不知道 \(n\) 具体的值)。 你有 \(10^3\) 个变量 \(p_1,p_2,\cdots,p_{10^3}\),初始 \(p_1=n\),\(p_2=p_3=\cdots=p_{10^3}=0\)。 你需要写一个…

2025 地坪研磨机厂家推荐权威推荐排行榜:品牌深度解析及格力 / 宁德时代合作案例速递水磨石/遥控式/座驾式/小型地坪研磨机厂家推荐

伴随城市更新与智能制造升级,环氧地坪、固化混凝土等工程对研磨设备的精度、效率与稳定性提出严苛要求,地坪研磨机市场需求年均复合增长率达 3.5%。但市场中产品质量悬殊,动力不足、精度偏差、售后滞后等问题频发,…

太原网站建设 网站制作wordpress3.9主题

一、仅需实现在线预览,且文件地址公网可访问 (一)微软office免费预览(推荐) 支持doc/docx/xls/xlsx/ppt/pptx等多种office文件格式的免费预览 //示例代码//​在https://view.officeapps.live.com/op/view.aspx?src…