Flutter 库:提升开发体验——Quick

news2024/11/15 11:46:41

Flutter 库:提升开发体验——Quick

文章目录

  • Flutter 库:提升开发体验——Quick
  • 一、概述
    • 1、简介
    • 2、功能
    • 3、官方资料
    • 4、思考
  • 二、基本使用
    • 1、安装
    • 2、基本使用
    • 3、运行结果
  • 三、List 列表扩展示例
  • 四、Map 映射扩展示例
  • 五、其它示例

一、概述

1、简介

Quick 是一个功能强大的 Flutter 包,旨在通过为字符串、列表和映射等类型提供多种扩展方法来增强开发体验,从而实现更高效、更清晰的编码体验。它的灵感来自 BootstrapTailwind CSS,并使用Flutter和Dart构建。该软件包提供了广泛的实用程序功能,例如将填充、可见性和文本样式应用于小部件。通过导入包并在小部件上使用提供的扩展方法,可以轻松地将其集成到代码中。

2、功能

  1. 有用的小部件和类的集合:Quick提供了一系列有用的小部件和类,用于快速创建常见的UI元素。

  2. 常用任务的实用函数:Quick提供了常用任务的实用函数,例如数据验证和格式化。

  3. 性能优化工具:Quick提供了性能优化工具,用于改善应用程序的整体性能。

总之,对于任何希望改进开发工作流程并创建高质量、精致应用程序的Flutter开发人员来说,Quick都是必不可少的工具。

3、官方资料

GitHub仓库:

https://github.com/Aniketkhote/Quickly

pub.dev:

https://pub.dev/packages/quickly

文档:

https://pub.dev/documentation/quickly/latest/quickly/quickly-library.html

4、思考

这是对 Dart 扩展类的功能的一个示例,可以参考这个库的实现代码自定义自己的扩展!这一点很重要!基于此可以做很多有意思的事情!

二、基本使用

1、安装

flutter pub add quickly

2、基本使用

import 'package:flutter/material.dart';
import 'package:quickly/quickly.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Flutter Demo Home Page', style: TextStyle(color: Colors.white)),
          backgroundColor: Colors.deepPurple,
        ),
        body: Container(
          color: Colors.white,
          child: Center(
            child: Container(
              color: Colors.blueGrey,
              width: 500,
              height: 500,
              child: Column(
                children: [
                  // 文本样式
                  Text('Quickly').red500.xl.bold.italic.underline.center,
                  Text('12 Padding from all side', style: TextStyle(fontSize: 30)).p12,
                  Text('4 Padding from top and bottom side', style: TextStyle(fontSize: 30)).py4,
                  Text('16 Padding from all side except top', style: TextStyle(fontSize: 30)).pnt(16),
                  // 可见性
                  Text('Show this widget', style: TextStyle(fontSize: 30)).show(true),
                  // 圆角
                  60.hBox(Container(color: Colors.blue).rounded),
                  // 盒子
                  100.hBox(Container(color: Colors.red)),
                ],
              ),
            ),
          ),
        ),
      ),
    );
  }
}

3、运行结果

image-20230613161923237

三、List 列表扩展示例

// 示例数据
numbers = [5, 2, 9, 1, 7]
people = [{'name': 'Bob', 'age': 30}, {'name': 'Alice', 'age': 25}]

// list.sorted():返回一个新列表,其中元素按升序排序。
numbers.sorted()  // [1, 2, 5, 7, 9]

// list.sortedDec():返回一个新列表,其中元素按降序排序。
numbers.sortedDec()  // [9, 7, 5, 2, 1]

// list.sortedBy(key):返回按提供的键排序的新对象列表。
people.sortedBy('age')  // [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 30}]

// list.chunk(n):将列表划分为大小为 n 的相等块,并返回列表列表。
numbers.chunk(2)  // [[5, 2], [9, 1], [7]]

// list.split(n):将列表分成 n 个相等的部分并返回列表列表。
numbers.split(3)  // [[5, 2], [9], [1, 7]]

// list.pluck(key):从对象列表中检索给定键的所有值。
people.pluck('name')  // ['Bob', 'Alice', 'Charlie']

四、Map 映射扩展示例

// 示例数据
person = {'name': 'Bob', 'age': 30, 'gender': 'male'}

// map.has(“key”,“value”):返回一个布尔值,指示映射中是否存在提供的键值对。
person.has('gender', 'male')  // true

// map.getId:返回与键“id”关联的值(如果存在),否则返回 NULL。
person.getId  // null

// map.getString('key'):返回与提供的键关联的值(如果存在),否则返回 NULL。
person.getString('name')  // 'Bob'

// map.getBool('key'):返回与提供的键关联的布尔值(如果存在),否则返回 false。
person.getBool('gender')  // false

// map.retainKeys(keys):返回一个新映射,其中只有与提供的键匹配的键值对。
person.retainKeys(['name', 'age'])  // {'name': 'Bob', 'age': 30}

// map.match(key, [defaultValue]):返回与提供的键关联的值(如果存在),否则返回提供的默认值,如果未提供默认值,则返回“无效输入”。
person.match('age', 'Unknown')  // 30

五、其它示例

https://pub.dev/documentation/quickly/latest/quickly/quickly-library.html

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

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

相关文章

打印杨辉三角

这个公式,不好算,我觉得还是杨辉三角算起来方便:c#代码如下: double 打印杨辉三角(int n)//n必须是偶数,展开项是n1,中间项是n/2,此处返回中间项的概率202306131722 { //for (int i 0…

3个月面过字节测开岗,拿个20K不过分吧?

计算机专业,代码能力一般,之前有过两段实习以及一个学校项目经历。第一份实习是大二暑期在深圳的一家互联网公司做前端开发,第二份实习由于大三暑假回国的时间比较短(小于两个月),于是找的实习是在一家初创…

浅聊一下 C#程序的 内存映射文件 玩法

一:背景 1. 讲故事 前段时间训练营里有朋友问 内存映射文件 是怎么玩的?说实话这东西理论我相信很多朋友都知道,就是将文件映射到进程的虚拟地址,说起来很容易,那如何让大家眼见为实呢?可能会难倒很多人&…

耗时3个月,线下访谈30+ csdn大佬,规划出了我的云原生学习路线

前言 大家好,我是沐风晓月,最近线下拜访不少云原生方向的大佬和csdn其他方向的大佬,受益匪浅。 于是在 5月23日,我定下来自己的目标: 我的目标: 可以说,这个世代给予的机遇,让我…

WWDC苹果高管脱口秀,Mike Rockwell透露Vision Pro开发的秘密

WWDC2023之后例行的“The Talk Show”脱口秀如期展开,深入讨论了WWDC上的一切。本次脱口秀分别谈及Mac游戏、Vision Pro以及操作系统和AI,由John Gruber主持,嘉宾包括:苹果技术发展部副总裁Mike Rockwell、以及Greg Joswiak、John…

上线客流人数统计系统实现资源的最大化利用

在流量管理方面,智慧客流采集系统的应用可以帮助商家实现资源的最大化利用。通过对客流量数据的分析,商家可以准确把握客流量变化规律,进而制定出最优化的资源配置方案。 AI客流视觉监控 一、某汽车4S店智慧客流采集系统案例展示 以某汽车4S…

人民大学中外合作办学_人大女王金融硕士——国际顶尖的金融硕士学位等你来拿

进入金融圈后,你会发现学历是筛选手段之一,之后的晋升更是看重学历。一个金融学士学位可以让你跨过门槛进入到金融行业,想要得到更好的发展,就需要从知识和证书等多方面进行提升了。辞职去攻读硕士学位不太现实,幸好遇…

vsftpd安装配置,Linux系统配置FTP服务器教程(CentOS 7)

vsftpd(very secure FTP daemon)是Linux下的一款小巧轻快、安全易用的FTP服务器软件。今天飞飞将和你分享Linux系统安装并配置vsftpd,搭建FTP环境。 先让我们来认识下FTP! FTP(File Transfer Protocol)是一…

C语言-运算符

1 运算符的概念以及分类 运算符的概念 用运算符将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为C表达式运算对象包括常量、变量、函数等 运算符的分类 1、双目运算符:即参加运算的操作数有两个 例&…

系统移植 网络环境配置和TFTP服务器搭建

目录 网络环境配置 1. 配置windows环境下协议 2. 配置linux环境下的网络 3. 开发板 4. Ping 不通解决办法 搭建TFTP服务器环境搭建 》1.验证tftp服务器环境是否搭建 》2.若是未安装,执行下面命令 》3.修改tftp服务器配置文件 》4.在ubuntu下创建工作目录并…

华为OD机试真题 JavaScript 实现【日志采集系统】【2023Q1 100分】

一、题目描述 日志采集是运维系统的的核心组件。日志是按行生成,每行记做一条,由采集系统分批上报。 如果上报太频繁,会对服务端造成压力;如果上报太晚,会降低用户的体验;如果一次上报的条数太多&#xf…

ffplay播放http-mp4视频提示 “stream 1, offset 0x1f85: partial file“错误

解决办法就是将非交织视频 重新 remux. ffmpeg -i a.mp4 -c copy -movflags faststart a1.mp4 -movflags faststart : 这个是将moov移动到 mp4头部,和remux没有关系. 这样处理也是通过HTTP 流式播放必须要做的一步.

Linux防火墙学习笔记11

iptables扩展动作:TARGET EXTENSION: filter: -j ACCEPT -j DROP -j REJECT -j LOG nat: -j SNAT: 源地址转换 -j MASQUERADE: 转换源地址(伪装) -j DNAT: 目的地址转换及端口 -j REDIRECT: 转换目标端口 本机端…

Java后端入职第六天,Nginx搭建负载均衡+反向代理

一:需求背景 Nginx相信大家应该不陌生吧!是一个高性能web服务器,可以做负载均衡或者是反向代理,比如,把静态页面直接部署到到html,实现动静分离,一个服务器部署多个服务,缓解服务压力,等等,都可以利用Nginx实现。 1.负载均衡 这个理解比较简单,其实就是压力分摊,…

Aspose.Pdf使用教程:获取PDF文档中的所有注释

Aspose.PDF 是一款高级PDF处理API,可以在跨平台应用程序中轻松生成,修改,转换,呈现,保护和打印文档。无需使用Adobe Acrobat。此外,API提供压缩选项,表创建和处理,图形和图像功能&am…

小马赠书【第7期】清华出版社 IT BOOK 多得活动(送书5本)

本期 敬 之 共精心挑选了 15 本 IT 相关书籍,包含 前端、后端、数据分析、人工智能、python、低代码 等各个领域。关于如何参与等具体活动信息请看活动详情页,以下是 15 本 IT 书籍介绍: 活动详情页:小马赠书【第7期】 1. C《C 高…

Django高级扩展之静态文件和ajax使用

目录 使用静态文件 创建静态文件目录 Settings.py配置 创建css文件 路由与视图 设置路由 视图 模板使用静态文件 调用css 调用js 调用图片 优化路径 加载标签 修改文件路径 修改图片路径 修改js路径 修改css路径 使用Ajax 应用场景 示例 路由 视图 模板…

Koordinator 最佳实践系列:精细化 CPU 编排

作者:乔普、申信 介绍 在云原生环境中,集群提供者常常将不同类型的工作负载部署在同一个集群中,利用不同业务的不同峰值效果,实现资源分时复用,避免资源浪费。然而,不同类型负载之间混合部署常常会导致资…

字符集和java的编码与解码

一、ASCII和GBK字符集 计算机存储一个英文字符需要一个字节。 ASCII字符集,包括128(0000000B~1111111B)个数据,存储英文字母和字符,对于欧美国家够用。 例如,存储字符’a’,查询ASCII得到为97&a…

Java阶段四Day03

Java阶段四Day03 文章目录 Java阶段四Day03数据处理基本流程代码编写顺序开发DAO层,添加的依赖项配置数据源任务拆解内容管理MySQL中的数据类型和Java属性的类型对照关于MyBatis PlusMyBatis Plus的基本使用关于MyBatis Plus的使用建议汇总如下自动更新时间 关于Pro…