首页 > 其他分享 >Flutter 库:提升开发体验——Quick

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

时间:2023-06-17 21:03:24浏览次数:51  
标签:name 示例 age 30 列表 体验 Quick quickly Flutter


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});

  @override
  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、运行结果

Flutter 库:提升开发体验——Quick_扩展方法

三、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


标签:name,示例,age,30,列表,体验,Quick,quickly,Flutter
From: https://blog.51cto.com/u_13272819/6506215

相关文章

  • Flutter 使用 Key 强制重新渲染小部件
    Flutter使用Key强制重新渲染小部件文章目录Flutter使用Key强制重新渲染小部件一、Key的作用二、强制重新渲染小部件的步骤1、创建一个Key2、将Key分配给小部件3、强制重新渲染小部件三、代码案例一、Key的作用Key在Flutter中是一个抽象类,它有两个主要的子类:LocalK......
  • flutter系列之:做一个图像滤镜
    简介很多时候,我们需要一些特效功能,比如给图片做个滤镜什么的,如果是h5页面,那么我们可以很容易的通过css滤镜来实现这个功能。那么如果在flutter中,如果要实现这样的滤镜功能应该怎么处理呢?一起来看看吧。我们的目标在继续进行之前,我们先来讨论下本章到底要做什么。最终的目标是希......
  • flutter系列之:做一个图像滤镜
    目录简介我们的目标带滤镜的图片打造filter按钮打造可滑动按钮最后要解决的问题简介很多时候,我们需要一些特效功能,比如给图片做个滤镜什么的,如果是h5页面,那么我们可以很容易的通过css滤镜来实现这个功能。那么如果在flutter中,如果要实现这样的滤镜功能应该怎么处理呢?一起来看看......
  • 初体验
    vscode写博客初体验st=>start:开始框op=>operation:处理框cond=>condition:判断框(是或否?)sub1=>subroutine:子流程io=>inputoutput:输入输出框e=>end:结束框st->op->condcond(yes)->io->econd(no)->sub1(right)->op$$t+4=3$$print(123)......
  • delphi7使用QuickReport快速生成报表
    QuickReport报表组件是Delphi7之前版本广泛使用的数据库报表设计工具组件,在Delphi7版本中默认没有加载在Delphi7的工具栏上。因此,需要手动安装加载一下,安装QReport组件插件步骤如下:①在Delphi7中执行菜单[Component]==>[InstallPackages...];②点击按钮[Add...],出现‘AddDesi......
  • 在 Eclipse 3.1 中体验 J2SE 5.0 的新特性: 第三部分 :范型
    2005年7月01日本文将介绍J2SE5.0中三个比较重要的特性:枚举类型,注释类型,范型,并在此基础上介绍在如何在Eclipse3.1开发环境中开发枚举类型,注释类型和范型应用。J2SE5.0(Tiger)的发布是Java语言发展史上的一个重要的里程碑,是迄今为止在Java编程方面所取得的最......
  • NVC低功耗语音芯片制氧机方案,提升用户体验同时降低开发成本
    家用制氧机是一种可以通过空气中提取氧气,制造出高浓度的氧气供给需要氧气治疗的患者使用的设备。为了提高用户使用体验和操作便捷性。很多厂商会通过加入语音芯片实现语音提示功能,用户可以通过听到语音提示来了解制氧机的状态和操作指引,从而更加方便地使用制氧机。 那么家用......
  • FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡
    图片逐渐成为互联网主要的内容构成,相应的图片处理需求也在高速成长,移动应用与用户生产内容(UGC)正在驱动数据中心图像处理的业务负载快速增加。本文深维科技联合创始人兼CEO樊平详细剖析了图片加速的必要性、当前实际的图片解决方案与部署方式以及如何通过FPGA+CPU异构计算的方案维护......
  • 体验 TDengine 3.0 高性能的第一步,请学会控制建表策略
    正如我们之前所言,在3.0当中,我们在产品底层做了很大的变化调整,除了架构更加科学高效以外,用户体验也是我们重点优化的方向。以之前一篇文章为例:对于Update功能,用户不再需要任何配置,默认即是比2.0更完善的机制。(https://mp.weixin.qq.com/s/7E8kl9W8IXROx_K0EGQPkg)切换到3.0......
  • 视频播放器的极致体验优化
    Photoby VladaKarpovich from Pexels视频体验由开始的视频清晰流畅,演变到现在的视频快速响应、即点即放、快速切换等等。基于这些优化林勇平将介绍播放器的一些技巧,使得视频体验在较少改动的情况下就能达到极致体验的效果。文/林勇平整理/LiveVideoStack直播回放https://w......