flutter商业案例(flutter设计)

网友投稿 1433 2022-12-23

本篇文章给大家谈谈flutter商业案例,以及flutter设计对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享flutter商业案例的知识,其中也会对flutter设计进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Archsummit 2019重磅分享|闲鱼Flutter&FaaS云端一体化架构

作者:闲鱼技术-国有

国有flutter商业案例,闲鱼架构团队负责人。在7月13号落幕的2019年Archsummit峰会上就近一年来闲鱼在FlutterFaaS一体化项目上的 探索 和实践进行flutter商业案例了分享。

随着无线flutter商业案例,IoT的发展,5G的到来,移动研发越发向多端化发展。传统的基于Native+Web+服务端的开发方式,研发效率低下,显然已经无法适应发展需要。

我们希望 探索 闲鱼这样规模的独立APP的高效研发架构。主要思路是围绕Flutter解决多端问题,并使Flutter与FaaS等无服务容能力打通,形成云端一体化的研发能力,支持一云多端的发展需要。在某些场景已经取得效果,希望分享过程中的思考,与大家交流。
闲鱼选择Flutter主要是出于高性能的考虑。Flutter高性能主要来源于2个原因:
更多比较:
没有银弹的解决方案,Flutter与RN各有优点。如何选择因素很多,关键看如何取舍,举个例子:

云端技术栈的打通,是减少协同的不错的解法。以往前端+Node.js的一体化方案大家应该不会陌生,然而如果端侧使用了Flutter,那云侧Dart自然是第一选择。
FaaS的本质是运行在云端,那Dart适合用在云/Server上吗flutter商业案例

Dart语言早于Flutter,在最初的设计上,Dart就可以用于Web、Server。Dart具备一些服务端语言的特点:

闲鱼首先尝试将Dart作为普通的Server,替代传统的Java Server,然后再将Dart容器嵌入到FaaS容器中。建立Dart Server能力是第一步,也是主要的工作量所在。

闲鱼在Dart Server方面的建设思路:
开发期:

运行期:

上述内容实现了FlutterDart FaaS的技术栈的统一,但仅技术栈统一还远远不够,端、云的同学仍然无法真正互补和一体化打通,原因在于还有更多深入问题需要考虑:
面向这些问题,闲鱼的解法思路:

案例一,一体化在资源均衡方面的体现。在近期的一个项目中,云端一体化使原本2个月的项目时间,减少了20天。
案例二,一体化在业务闭环方面的体现。负责增长的一位开发同学,专注在增长业务上,在合适的情况下为合适的人投放合适的内容,以此带来用户的增长和活跃效果。一体化的方式下,可以统一云、端的切面,业务研发不再受云、端的限制。
一体化是建设高效研发框架的方向,并不是所有场景都需要一体化的开发,但一体化的Flutter、FaaS等技术组件,可以独立使用,也会带来效率提升,并且与原有的开发模式兼容。从一体化的思路去建设,可以使整体架构体系更加一致,也有机会做一体的架构沉淀。

未来闲鱼希望在一体化上做更多尝试和深入 探索 ,包括一体化工具、一体化业务平台、数据化智能化等方向。

Flutter开发 -- [12 - 监听滚动事件]

ListView、GridView的组件控制器是ScrollController,我们可以通过它来获取视图的滚动信息,并且可以调用里面的方法来更新视图的滚动位置。

另外,通常情况下,我们会根据滚动的位置来改变一些Widget的状态信息,所以ScrollController通常会和StatefulWidget一起来使用,并且会在其中控制它的初始化、监听、销毁等事件。

我们来做一个案例,当滚动到1000位置的时候,显示一个回到顶部的按钮:

如果我们希望监听什么时候开始滚动,什么时候结束滚动,这个时候我们可以通过 NotificationListener 。

案例: 列表滚动, 并且在中间显示滚动进度

Flutter PageView使用案例

现在的小目标是要实现一个 「图片轮播」的效果flutter商业案例flutter商业案例我们在 Android 中可以使用 ViewPager 结合 handler 或者 Timer 去实现。

而我们在 Flutter 中flutter商业案例,其实也是类似的。
那么,在 Flutter 中,代替 Android 中的 ViewPager 组件是 PageView ,而且,这个 PageView 相比 ViewPager 扩展性更高。

我们来看一下

Flutter PageView 官网

根据官网的介绍, PageView 在需要展示的页面很多时,有「控件复用」功能,而且,我们还可以通过

来设置滚动的方向,也就是说,我们还可以完成「纵向滚动」,真的很棒有么有flutter商业案例

偷的小米官网的轮播图

看一下效果图

GestureDetector ,或者直接返回一个 button 类型的 Widget 即可

ok,了解了这个PageView,接下来,我们想法子搞一个「轮播效果」,请见下一篇文章。

flutter 慢慢退出了吗?

看点:Flutter 的争议
InfoQ:我们在看到一些比较比较消极的看法,他们认为 Flutter 正在被悄悄放弃,怎么看待这些声音?

宗心:Gartner 将每个技术成熟度曲线都将技术的生命周期划分为五个关键阶段。技术萌芽期:潜在的技术突破即将开始。早期的概念验证报道和媒体关注引发广泛宣传。通常不存在可用的产品,商业可行性未得到证明。期望膨胀期:早期宣传产生了许多成功案例 — 通常也伴随着多次失败。某些公司会采取行动,但大多数不会。泡沫破裂谷底期:随着实验和实施失败,人们的兴趣逐渐减弱。技术创造者被抛弃或失败。只有幸存的提供商改进产品,使早期采用者满意,投资才会继续。稳步爬升复苏期:有关该技术如何使企业受益的更多实例开始具体化,并获得更广泛的认识。技术提供商推出第二代和第三代产品。更多企业投资试验;保守的公司依然很谨慎。生产成熟期:主流采用开始激增。评估提供商生存能力的标准更加明确。该技术的广泛市场适用性和相关性明显得到回报。基于这个理论,Flutter 应该处于期望膨胀和泡沫破裂之间,一方面看好的人还会继续大力宣传和投入解决问题,同时在尝试落地失败后的公司和个人会极力唱衰,因此我们应该回归本质去看,跨平台技术本身有其特定场景下存在的价值,多平台的研发效能收益是真实的公司需求,目前行业的龙头企业都仍然在持续投入和改进中,谈被放弃为之尚早。

所谓原生级别的流畅,但实际很卡,体验差,而且有些跨端项目一开始用 Flutter,结果性能卡脖子,无奈又回到 Android 和 iOS 分开搞的局面嵌套之美,难以欣赏Flutter 是 KPI 项目,负责人升职完了,华丽转身,留下一地烂摊子……

Flutter | DefaultTextStyle 的运用

有时需要复用 TextStyle ,除了将 style 抽取出来,还可以考虑使用 DefaultTextStyle 。

- 案例1:完全复用 style:两个 style 完全相同的 label:

- 案例2:不完全复用 style:两个 style 不完全相同的 label:

Flutter 94: 初识 MediaQuery

      当flutter商业案例我们同时为手机和平板适配编写 app 针对不同屏幕尺寸进行 UI 布局或当用户偏好设置较大字号或是想要最大限度等减少动画等flutter商业案例;此时就需要 MediaQuery 来帮我们获取所用设备的信息以及用户设置的偏好信息flutter商业案例

       MediaQuery 一直存在于 WidgetsApp 和 MaterialApp 中, MediaQuery 继承自 InheritedWidget 是一个单独的 Widget ,但一般通过 MediaQuery.of(context) 来获取相关信息;

      当相关信息发生变化,例如屏幕旋转等时,屏幕中 Widget 会重新构建,以保持最新状态;我们可以通过 MediaQuery 构造函数和提供的静态方法手动设置对应的相关信息;

       MediaQueryData 包含关于媒介的相关信息;一般通过 MediaQuery.of(context) 获取;

       size 为媒介的尺寸大小,以逻辑像素为单位;

       devicePixelRatio 为像素密度;与设备物理像素有关,与横竖屏等无关;

       orientation 为横竖屏, Orientation.landscape 为横屏, Orientation.portrait 为竖屏;

       textScaleFactor 为
每个逻辑像素的字体像素数,小菜理解为字体的像素比;注意,小菜设置flutter商业案例了默认字体像素密度为标准的 1.2 倍之后调整设备系统字号,其 1.2 倍依旧是以标准字号为基础扩大 1.2 倍;

       platformBrightness 为当前设备的亮度模式;注意调整屏幕亮度并不会改变该模式,与当前系统支持的黑暗模式和明亮模式相关;

       alwaysUse24HourFormat 为当前设备是否为 24 小时制;

       accessibleNavigation 为是否使用 TalkBack 或 VoiceOver 之类的辅助功能与应用程序进行交互,用以辅助视力障碍人群;

       invertColors 为是否使用颜色反转,主要用于 iOS 设备;

       highContrast 为用户是否要求前景与背景之间的对比度高,主要用于 iOS 设备;

       disableAnimations 为平台是否要求禁用或减少动画;

       boldText 为平台是否要求使用粗体;

       padding 为屏幕内边距,一般是刘海儿屏或异形屏中被系统遮挡部分边距;

       viewInsets 为键盘弹出时等遮挡屏幕边距,其中 viewInsets.bottom 为键盘高度;

       systemGestureInsets 为手势边距,如 Android Q 之后添加的向左滑动关闭页面等;

       viewPadding 小菜理解为视图内边距,为屏幕被刘海儿屏或异形屏中被系统遮挡部分,从 MediaQuery 边界的边缘计算;此值是保持不变;例如,屏幕底部的软件键盘可能会覆盖并占用需要底部填充的相同区域,因此不会影响此值;

       physicalDepth 为设备物理层级,小菜暂时还未想到对应的应用场景;

      小菜在尝试获取其他子 Widget Size 时,有两点需要注意,首先要设置一个全局的 GlobalKey 来获取当前位置, key 需要为唯一的;第二通过 GlobalKey().currentContext 获取 BuildContext 上下文环境,从而获取对应尺寸;

       MediaQuery 案例尝试

      小菜对于部分 MediaQueryData 的应用和理解还不够深入;如有错误请多多指导!

关于flutter商业案例和flutter设计的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 flutter商业案例的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于flutter设计、flutter商业案例的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:车联网车载终端控制系统(车联网控制模块)
下一篇:色达县一体化政务服务平台(色达县公众信息网)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~