最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 企业级Flutter项目-走出第一步

    正文概述 掘金(会煮咖啡的猫)   2021-05-14   655

    企业级Flutter项目-走出第一步

    老铁记得 转发 ,猫哥会呈现更多 Flutter 好文~~~~

    微信 flutter 研修群 ducafecat

    原文

    参考

    • pub.dev/packages/fl…
    • pub.dev/packages/ch…
    • pub.dev/packages/js…
    • dart.dev/guides/lang…
    • plugins.jetbrains.com/plugin/1240…

    正文

    大多数时候你必须为你的应用程序的技术债务付款。如果你在 MVP 之后没有良好的体系结构,那么现在是时候停下来,重构一下,让你的未来变得更加容易。事实上,在没有架构的情况下编写较小的应用程序更容易---- 很难不同意这一点---- 但是作为一个成熟的技术专家来考虑。

    测试覆盖率,设计模式,代码分析,这些都是我正在考虑的。本文将介绍我们如何在提高代码质量和团队愉悦感的同时,交付出色的应用程序。

    从架构开始

    Provider, BLoC, Redux ーー如果这些词听起来不熟悉,请在继续前进之前对它们有基本的了解。

    它们都有优点和缺点,你可以自己选择。

    拥有 Flutter 的知识和如何人们已经适应项目结构 BLoC 似乎是最简单的方式开始。

    恕我直言,展示和理解 BLoC 如何工作的最好方式是看下面的图表。

    企业级Flutter项目-走出第一步

    • 表示层将事件发送到 BLoC
    • 数据层异步执行较长的操作,例如从 API 或数据库获取数据
    • 对用户界面产生返回值

    就这么简单。

    自己实现 BLoC 模式这真的是很好的锻炼,你应该一次性完全理解它背后的流程。如果你已经这样做了

    企业级Flutter项目-走出第一步

    然后使用..。

    BLoC 库

    幸运的是,社区没有让人失望。你不必每次都写 BLoC,只需使用这个方便的 library ー FlutterBloc。

    我想指出几个关键特征:

    • Event — 没有样板的事件-状态通信,
    • Dependency 依赖注入通过 BlocProvider,
    • BlocBuilder 根据接收的状态构建小部件,
    • BlocDelegate 使全局处理错误更加容易,
    • BLoC 可以(也应该)进行测试

    pub.dev/packages/fl…

    采用 REST API

    企业级Flutter项目-走出第一步

    如果你创建了一个移动应用程序,你将连接到一个远程数据源。最常用的方法是 REST api 和 JSON。当然,你已经这样做了很多次,所以没有更多的解释。

    来自 Android world 的消息表明你已经使用过 Retrofit、 GSON 或莫希 JSON 转换器。这些真的是非常棒的工具。

    Flutter 中使用 chopper 库

    pub.dev/packages/ch…

    在这两种情况下,您都需要为您的 API 定义抽象类,并使用 flutter pub run build_runner build 生成它。

    接下来,没有类似 GSON 的库可以将 JSON 转换为 POJO。您需要编写自己的映射器函数,或者使用 json_serializable,它通过注释 Dart 类自动生成转换到 JSON 和从 JSON 转换的代码。这个过程本身非常简单,你肯定会习惯的。

    pub.dev/packages/js…

    本地持久化

    企业级Flutter项目-走出第一步

    在大多数情况下,当需要缓存我们的数据时,Sqflite 是我们的首选。它只是一个 SQLite Dart 实现,支持:

    • 原始 SQL 查询,
    • 插入/查询/更新/删除的方便助手,
    • 批次ー避免性能问题。

    分析代码

    在项目中拥有并保持代码样式对于团队来说可能是至关重要的。与体系结构一样,它也是维护项目和团队成员之间的质量、一致性的关键因素。

    默认情况下,ide 集成了默认的静态分析,您可以根据需要扩展和调整这些分析。在他们的文档中很好地描述了 Effective 有自己的线头规则ーー Effective Dart。如果您喜欢这种风格(我确实喜欢) ,来自 Google 的开发团队就创建了一个带有这种规则集的包(pedantic | Dart 包)

    • Effective Dart dart.dev/guides/lang…

    • pedantic pub.dev/packages/pe…

    值得一提

    手动检查每个包的版本可能有点烦人。对于 Android Studio 用户,你可以查看这个插件 Flutter Pub Version Checker ー For IntelliJ IDEA,Android Studio 为你提供。突出显示带有新版本的软件包非常方便。

    plugins.jetbrains.com/plugin/1240…

    待续

    这是一个关于我们公司内部使用的库和方法的快速总结。如果你正在寻找一些开始点,它也应该有助于你的项目,但作为 Flutter 已经演变,我们有许多可行的解决方案,共同的问题,这只是其中之一。在下一篇文章中,我将展示体系结构图,解释特定的层,并实现一个列表屏幕(从远程、本地持久化获取)。


    © 猫哥

    ducafecat.tech/

    github.com/ducafecat

    往期

    开源

    GetX Quick Start

    github.com/ducafecat/g…

    新闻客户端

    github.com/ducafecat/f…

    strapi 手册译文

    getstrapi.cn

    微信讨论群 ducafecat

    系列集合

    译文

    ducafecat.tech/categories/…

    开源

    ducafecat.tech/categories/…

    Dart 编程语言基础

    space.bilibili.com/404904528/c…

    Flutter 零基础入门

    space.bilibili.com/404904528/c…

    Flutter 实战从零开始 新闻客户端

    space.bilibili.com/404904528/c…

    Flutter 组件开发

    space.bilibili.com/404904528/c…

    Flutter Bloc

    space.bilibili.com/404904528/c…

    Flutter Getx4

    space.bilibili.com/404904528/c…

    Docker Yapi

    space.bilibili.com/404904528/c…


    起源地下载网 » 企业级Flutter项目-走出第一步

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元