【Day 28】练习专案 1/2 - NFC、Barcode、fontFamily、Stack、sliding_up_panel

今日要点
》前言
》介绍 Demo 专案
》程序架构研究


前言

前面精选了很多在 Github 上很多高手写的专案,都很值得我继续研究学习。接下来2几天,记录一下我的第一个 Flutter 专案。这是我接解触 Flutter 一个星期後完成的,虽然後面没有再继续写下去,但对 Flutter 感到更有兴趣了。因为很阳春,所以内容不多,纯綷记录一下。

介绍 Demo 专案

这是一个 Demo 专案,他的功能很简单,取得会员资料,取得的方式可以是扫描一个会员条码,或用 nfc 去感应会员,或直接输入会员卡编号。之後显示会员资料,然後记录会员这次要领取的记念品,并印出收据。

因为是公司内部使用,所以要求画面不要太花俏,刚好我刚学也还没法设计的太复杂,所以看起来就是单纯的资料表格。有把字型换一下,比预设的字型好看一点。

主要的画面。

画面的布局如下:

  • APP Bar
  • 登入资讯
  • 会员资讯
  • 读取会员卡
  • 领取记念品

NFC扫描的画面。

Barcode扫描的画面。

领取记念品的画面。

程序架构研究

程序就先列一下重点的地方

专案用到 plugin
以下是我专案用到的 plugin

pubspec.yaml

  cupertino_icons: ^0.1.3
  auto_size_text: ^2.1.0      
  flutter_nfc_reader: ^0.1.0  
  provider: ^4.3.1            
  flutter_barcode_scanner: any 
  sliding_up_panel: ^1.0.2       
  printing: ^3.5.0            
  pdf: ^1.9.0       
  fdottedline: ^1.0.1 

main.dart 主要是在 runApp 里把 providers 加进来。

  runApp(
    MultiProvider(
      providers: [
        Provider<int>.value(value: textSize),
        Provider<String>.value(value: 'jason test'),
        ChangeNotifierProvider(create: (_) => CounterModel()),
        ChangeNotifierProvider(create: (_) => MyGlobalModel()),
        ChangeNotifierProvider(create: (_) => TicketSelectButtonModel()),
        ChangeNotifierProvider(create: (_) => UserInfoModel()),
        ChangeNotifierProvider(create: (_) => TestDataModel()),
      ],
      child: MyApp(),
    ),
  );

画面的布局

  • 因为有些栏位要跟其他画面共用,所以把资料栏位切成二个 Widget 来存放
  • 再来是一个扫描按键面版的 Widget
  • 最後是领取认念品的按键

今天就先这样罗

第 28 天写完.


<<:  Laravel帮你做好的会员登入系统

>>:  《Day 27》【软件资料库】SQLServer Log shipping建置PART 2

[Day 3] 资料产品第一层 - 原始资料的类型

原始资料可能来自非常多不同的地方,我们可以根据资料产生的方式来加以分类 感应器资料 这边泛指各种 S...

Day 09 流程控制

在JavaScript中,想要控制流程,就要设计流程中的条件。 条件判断 if...else 望文生...

JavaScript的执行阶段: Execution Context

为了知道那些常被拿来考观念的专有名词是哪里来的, 这篇要先整理 JS的 Execution Cont...

Day10 - 基础篇总结 ,CI/CD 的功用为何 ?

如何实现一套基础开发流程? 在前面的章节里谈到了 GCP、Docker、Cloud Run 等技术,...

【Day6】ERP核心模组篇-Sales

#odoo #开源系统 #数位赋能 #E化自主 销售模组相信是许多公司在踏入数位管理路上,常见的第一...