Flutter 项目中管理你的 Assets Texts Widgets

news2024/10/7 5:26:25

Flutter 项目中管理你的 Assets Texts Widgets

alt

原文 https://medium.com/@mustafatahirhussein/managing-your-assets-texts-and-widgets-professionally-a-must-read-flutter-guide-ffb93b19eff0

前言

这篇文章是 Mustafa Tahir 写的关于 Flutter 项目管理的技巧,可以看得出也确实是开发中出现的业务需求,让我们开始吧。

正文

Assets 资源管理

无论应用程序是小型的、中型的还是企业级的,确保它包含相关的 Assets 都是一项方便的任务。因此,我们需要处理它的方式,如果它得到转移到其他开发人员,他/她也可以轻松地管理它。

这应该是 Assets 结构

assets/
 logo/
 avatars/
 components/
 icons/

注意: 它可能因项目而异,但是需要根据结构进行分离。

我们要怎么利用它?

  • 错误方式
dart file "a.dart"
Image.asset("assets/icons/a.png"),
dart file "b.dart"
Image.asset("assets/icons/a.png"),
  • 正确方式
dart file "image_assets.dart"
class ImageAssets {
 static const String fb = "assets/icons/fb.png";
 static const String ig = "assets/icons/ig.png";
}
dart file "a.dart"
Image.asset(ImageAssets.fb),
dart file "b.dart"
Image.asset(ImageAssets.ig),

你看,这有多简单,代码也干净多了。

现在,让我们对 「Texts」 也这样做。

管理文字 Texts

让我们加快一点速度,“不要再草草记下整个段落”。

如果我们的项目具有本地化功能,那么就必须专业地使用文本,否则它将成为大多数开发人员的头痛。

dart file "a.dart"
Text("some text"),
dart file "b.dart"
Text("some text"),
dart file "c.dart"
Text("some text"),
  • 正确的方法。
dart file "image_assets.dart"
class Strings {
 static const String appTitle = "e-comm App";
 static const String appDesc = "Lorem Ipsum";
}
dart file "a.dart"
Text(Strings.Strings),
dart file "b.dart"
Text(Strings.appDesc),

就这么简单。

现在,让我们用更多的方法来管理我们的 Widgets。

管理 Widgets

在这里,我要向大家介绍派对的“ extension ”。

这是 Dart 2.7 版本中引入的一个特性。它的基础是相当牢固的,因为它使代码更容易阅读,甚至对新生也是如此。

下面是 extension 的代码片段

extension "name_of_extension" on "type" {
 "return_type" get => "the_type_you_want";

别担心,我通过一个例子让你明白。

这样吧

考虑到我们需要从 Flutter 内置的 DateTime 中挑选出“日期和年份”,我们将如何做到这一点。

  • 第一种方法

我们可以使用包“ date_format”或“ intl”来完成工作。

  • 第二种方法

我们可以通过在需要特性的页面上指定字符串拼接来处理它。

但是通过 extension ,我们可以在不影响代码质量的情况下轻松地处理它。

create a file project_extensions.dart
extension ExtendedDate on DateTime {
  String get formatted => "$day-$year";
}

现在,用这个:

Text(DateTime.now().formatted),

注意: 只要有日期时间,您将默认看到“格式化”。

这就是我们如何使我们的 widget 具有更好的可读性。

另外,如果我们有多个类型,比如“ . png”和“ . svg”,我们也可以使用 extension 名,特别是对于 Asset。

结束语

如果本文对你有帮助,请转发让更多的朋友阅读。

也许这个操作只要你 3 秒钟,对我来说是一个激励,感谢。

祝你有一个美好的一天~


© 猫哥

  • 微信 ducafecat

  • https://wiki.ducafecat.tech

  • https://video.ducafecat.tech

本文由 mdnice 多平台发布

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

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

相关文章

音视频SDP协议详解(描述会话的协议)

前言 ①SDP协议是会话描述协议(Session Description Protocol)的缩写,是一种会话描述格式,一种描述流媒体初始化参数的格式,为描述多媒体数据而设计。 文末卡片领取音视频免费资料合集 (流媒体是指在传输过…

csdn月入过万的作者是如何练成的?

很多年前,我有一个成为作家的梦想。 后来从事了技术,觉得与作家梦越来越远了。 虽然梦想远去,但写字的欲望没有停止。 这些年,一直在有道云笔记上记录自己的工作心得,偶尔会来csdn上写一写。 我在csdn真正发力的时候…

自己怎么搭建一个网站?【自己建立网站】

说到建立网站,有些动手能力比较强的小伙伴可能就在想自己怎么搭建一个网站。想自己搭建一个网站,至少也是需要看懂html和cssdiv这些编程代码的,如果不懂代码就只能另寻方法了。那么自己怎么搭建一个网站? 现在市面上有很多的建站…

数据分析基础入门_环境安装

前言 python版本为3.6.8 主要记录一下数据分析入门或者人工智能入门基础所用到的库文件的环境安装过程。 1.批量安装所需库文件 新建 requirements.txt 文件,将以下内容复制到文本文件中保存。 matplotlib2.2.2 numpy1.14.2 pandas0.20.3 tables3.5.2 jupyter1…

Qt 中捕获三方库自身标准打印方法

【写在前面】 很多时候,我们为了方便调试,常常需要加入一些打印。 例如 Qt 中的 QDebug,C 和 C 中的 printf / cout 等等,又或者是三方库提供的标准打印接口。 然而大部分时候,这些打印相当不统一(格式和位置)&#xf…

高清架构整洁之道PDF下载

架构整洁之道高清PDF下载,请扫描如下二维码,支付3元。并加微信,发给你。谢谢。

你想制作一款属于自己的游戏吗?

💂 个人网站:【海拥】【摸鱼游戏】【神级源码资源网站】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】💬 免费且…

无线传感器网络(Wireless Sensor Networks)概述

文章目录IntroductionSensor Mote PlatformsLow-End-PlatformsHigh-End-PlatformsWSN Architecture and Protocol StackWSN Design ConsiderationsHardware ConstraintsFault ToleranceScalabilityProduction CostWSN TopologyTransmission MediaPower ConsumptionSensingData …

编译原理11:LR分析、句柄、LR文法

LR分析法概述 句柄和规范归约 LR分析法 s:shitf 移进 r:reduce 规约 LR分析示例 LR文法 k越大,处理能力越强,但复杂度越高 会人工消除冲突,使得符合LR文法 小结

动态规划算法学习一:DP的重要知识点、矩阵连乘算法

文章目录前言一、矩阵连乘问题1、问题描述2、完全加括号3、问题分析4、最优子结构性质5、状态表示和递推方程6、自问题个数和求解顺序二、计算最优值示例1、问题描述2、计算最优值示例*****3、构造最优解4、算法实现三、基本要素-最优子结构四、基本要素-重叠子问题五、递归方法…

具有生物活性的天然产物——雷公藤

雷公藤为卫矛科雷公藤属植物,是我国一种资源比较丰富的传统中草药,迄今为止,已有超过 500 多种化合物从雷公藤中分离出来,包括萜类、生物碱类、黄酮类、木脂素类等。其结构多样的有效成分具有抗炎、抗感染、免疫抑制和抗肿瘤等作用…

腾讯云TRTC服务实现Web视频会议

腾讯云TRTC服务实现Web视频会议 背景 近期公司承接了某高校智慧校园的项目建设工作,其中在家校协作的板块中需要进行视频教学,以及线上屏幕共享,为了完成这一需求,我在自研与第三方服务的选择之间选择了第三方,主要因…

【交通标志识别】基于BP神经网络实现交通标志识别系统(含语音报警)附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

java在Windows配置Path环境变量

java在Windows配置Path环境变量 在命令行窗口输入java时,命令行提示’java’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 第一步:鼠标右键点击我的电脑,点击“属性” 第二步:点击“高级系统设置” 第三步&…

ProNas-振动噪声工程界新一代的前沿技术

作者:张工 随着汽车、船舶、高铁动车、轨道车辆、商用飞机、起重机械等交通运输工具和风电机组、家用电器、航天器等振动噪声。仿真模型的日益精细和庞大,现代噪声、振动及舒适性(NVH)仿真计算及验证领域面临着计算效益&#xf…

FL Studio21水果体验尝鲜版音乐宿主程序FL2023

FL Studio21从大家看来的音乐玩具,逐渐发展成相当严肃的DAW。如今,正被全球大量用户使用。它总是有着自己的方式,在工作流程和设计上,都不与竞争者相仿。 FL Studio是一款功能强大的虚拟音乐制作软件,通过它创作wav,MP3,MIDI,loo…

iOS多项选项卡TYTabPagerBar和分页控制器TYPagerController使用小结

最近做项目的时候,用到了顶部选项卡和底部分页控制器相关的功能。之前做的话都是自己手动封装,通过两个UIScrollView联动来实现。公司同事给推荐了一个封装好的库, TYPagerController,内部也是通过ScrollView的联动来实现的&…

微信小程序 java ssm电影迷爱好者交流平台

电影交流平台是基于java编程语言,mysql数据库,idea开发工具开发的后台,前端是微信小程序开发工具开发。本设计分为用户和管理员两个角色,其中用户可以登陆微信端,查看电影信息,查看电影分类,对电…

Inobitec DICOM Viewer Pro 2.8.0 Crack

Inobitec DICOM Viewer Pro 2.8.0扩大医生可见和可能的极限。通过为医疗行业提供优质的创新 IT 解决方案,我们可以为改善全球人民的健康做出很多贡献。 动态渐进版(每季度发布)扩展功能 高级 3D 重建 以 OBJ、STL、PLY 格式导出表面 先进的…

SpringBoot2.x 自动化生成代码整合Mybatis

前言 Mybatis 是一个持久层ORM框架,负责Java与数据库数据交互,也可以简易理解为中介,相对于它,还有个中介是hibernate,不过在mybatis中sql语句的灵活性,可优化性比较强,这也是现在大多数人选择的原因。 1. …