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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL-索引详解(五)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏&#xf…

设计模式(十三):行为型之模板方法模式

设计模式系列文章 设计模式(一):创建型之单例模式 设计模式(二、三):创建型之工厂方法和抽象工厂模式 设计模式(四):创建型之原型模式 设计模式(五):创建型之建造者模式 设计模式(六):结构型之代理模式 设计模式…

微服务_Hystrix

在每个服务中引用该组件,监控当前组件。可被GateWay、Fegin集成。简介 作用:防止服务雪崩 Hystrix是一个由Netflix开源的容错框架,它主要用于分布式系统中的服务间通信。Hystrix通过在调用服务的过程中添加各种容错机制,来保护系…

助你更好的理解 Python 字典

助你更好的理解 Python 字典 字典是Python中的常用数据类型之一,可将数据存储在键/值对中,同 Java 中的 Map 相似。 1、什么是字典理解? 字典理解是创建字典的一种优雅简洁的方法。 字典理解优化 使用字典理解优化函数。 示例&#xff…

深入理解Linux虚拟内存管理(七)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核 Linux 设备驱动程序 Linux设备驱动开发详解 深入理解Linux虚拟内存管理(一) 深入理解Linux虚拟内存管理(二) 深入理解Linux虚拟内存管理(三) 深入理…

chatgpt赋能python:Introduction

Introduction 在机器学习中,模型的训练是非常重要的步骤之一。模型训练意味着为数据拟合合适的参数,以便能够准确地预测未来的值。Python是一种功能强大的编程语言,提供许多库和框架来训练机器学习模型。在本文中,我们将探讨如何…

mysql 最常用的一些语句

1 数据库相关操作 CREATE DATABASE IF NOT EXISTS daily-test DEFAULT CHARSET utf8 COLLATE utf8_general_ci; drop database daily_test; use daily_test 具体操作如下图上所示: 2 mysql常用数据类型 MySQL 数据类型 | 菜鸟教程 3 数据库表相关操作…

CSS基础学习--13 Display(显示) 与 Visibility(可见性)

一、定义 display属性设置一个元素应如何显示 visibility属性指定一个元素应可见还是隐藏 二、隐藏元素 - display:none或visibility:hidden 隐藏一个元素可以通过把display属性设置为"none",或把visibility属性设置为"hidden"。但是请注意&am…

chatgpt赋能python:Python怎么抢优惠券?优惠不再是梦想!

Python怎么抢优惠券?优惠不再是梦想! 在如今的消费社会,优惠券已成为人们购物时追逐的目标。而优惠券的数量有限且抢手,往往仅能在短时间内领取,因此初次抢到心仪的优惠券可谓令人欣喜不已。而对于程序员们而言&#…

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

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

ESXi 7.0 U3m Dell (戴尔) 定制版 OEM Custom Installer CD

VMware ESXi 7.0 Update 3m - 领先的裸机 Hypervisor (All OEM Customized Installer CDs) ESXi 7.0 U3m Standard (标准版) ESXi 7.0 U3m Dell (戴尔) 定制版 OEM Custom Installer CD ESXi 7.0 U3m HPE (慧与) 定制版 OEM Custom Installer CD ESXi 7.0 U3m Lenovo (联想) 定…

python中变量与字符串详解!!

❄️作者介绍:奇妙的大歪❄️ 🎀个人名言:但行前路,不负韶华!🎀 🐽个人简介:云计算网络运维专业人员🐽 前言 初学者经常会遇到的困惑是,看书上或者是听课都懂…

django中url和视图函数path re_path views.py

目录 url的定义url的格式django中的urldjango中的创建自己的urldjango访问测试django中的path动态django中的path动态案例django中的path动态类型django中的path动态案例-计算器django的正则路由re_path() url的定义 url 统一资源定位符 url 用来表示互联网上某个资源的地址 …

详解c++---set的介绍

目录标题 set容器的介绍set的构造函数insert函数的介绍find函数erase函数count函数lower_boundupper_boundmultiset set容器的介绍 set容器可以看成我们上一篇文章学习的K结构的搜索二叉树,所以set容器不仅可以存储数据,还可以对数据进行排序和去重&…

新项目之初性能测试工作如何前移?

最近刚接手一个新项目,在最开始的时候要求对这个项目做性能测试,产品经理也给不出性能需求,只因为这个项目是电商项目,可能会有高并发,秒杀的场景,所以产品经理要求我们对这个项目必须做性能测试&#xff0…

【Linux:进程间信号】

文章目录 1 生活角度的信号2 技术应用角度的信号3 信号的产生3.1 由系统调用向进程发信号3.1.1 signal3.1.2 kill3.1.3 raise 3.2 由软件条件产生信号3.3 硬件异常产生信号3.4 通过终端按键产生信号3.5 总结思考一下 4 信号的保存4.1信号其他相关常见概念4.2在内核中的表示4.3 …

命令行创建uniapp项目

命令行创建uniapp项目 除了使用HBuilderX工具可视化搭建项目外,DCloud官方还提供了一个脚手架用于命令行搭建项目。 环境安装 全局安装vue-cli npm i vue/cli4 -g建议使用vue-cli 4.x版本,vue-cli 5.x与webpack存在冲突,会导致运行报错 …

【软件测试】测试用例设计要点总结

文章目录 考试题型简答题(一) 等价类划分1.1 划分等价类1.2 设计测试用例 (二) 边界值分析2.1 列出边界值分析表2.2 设计测试用例 (三) 因果图分析3.1 确定原因和结果3.2 确定原因和结果之间的逻辑关系3.3 在因果图上使用标准的符号标明约束条件 (四) 判定表驱动4.1 将因果图转…

如何利用ChatGPT写毕业论文

如何利用ChatGPT写毕业论文 ChatGPT是什么?利用ChatGPT写毕业论文的步骤1.准备数据2.训练模型3.生成论文4.检查论文 总结地址 ChatGPT是什么? ChatGPT是一个基于GPT-2模型的开源聊天机器人,它可以回答用户的问题,进行闲聊和提供各…

【头歌-Python】9.2 能带曲线绘制(project) 第1~3关

第1关:能带曲线绘制一 任务描述 本关任务:使用matplotlib绘制图形。 相关知识 为了完成本关任务,你需要掌握: 使用 matplotlib 绘制图形python 读取文件 python 读取文件 python读取文件可以用以下函数实现: # …