Flutter+Mobx实战,写一个App应用

本文介绍了使用Flutter和Mobx构建App应用的实战经验,包括路由配置、状态管理、参数传递和编码解码。文章强调了正确使用Mobx的状态管理,避免在多个页面中直接实例化导致的问题,并提供了项目的GitHub链接供参考。
摘要由CSDN通过智能技术生成

说明

目前增加了路由跳转,可以带参数跳转页面。下拉可以自定义刷新样式,IOS点击Status Bar回到顶部,目前已经测试过。状态管理器使用Mobx,我自己觉得对于Redux使用起来会复杂一点,下面是提供的预览GIF图,卡顿现象是因为屏幕录制的帧率有点低。

项目地址:https://github.com/Tecode/flutter_book,不定时的更新,欢迎start。

安卓预览

IOS预览

依赖库

environment:
  sdk: ">=2.1.0 <3.0.0"
dependencies:
  flutter:
    sdk: flutter
  mobx:
  flutter_mobx: // Mobx
  cupertino_icons: ^0.1.2
  flutter_svg: ">=0.12.4" // 处理SVG图片
  carousel_slider: ^1.3.0 // 轮播图
  fluro: "^1.4.0" // 路由
  provider: ^2.0.1 // 用于包裹mobx

dev_dependencies:
  flutter_test:
    sdk: flutter
  build_runner: ^1.3.1 //Mobx依赖
  mobx_codegen: // Mobx依赖

Flutter版本

Flutter 1.5.9-pre.223 • channel master • https://github.com/flutter/flutter.git
Framework • revision b76a1e8312 (25 hours ago) • 2019-05-13 09:06:30 +0100
Engine • revision 816d3fc586
Tools • Dart 2.3.1 (build 2.3.1-dev.0.0 a0290f823c)

修改系统状态栏颜色

import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_book/containers/Entrance.dart';
import 'package:flutter_book/helpers/constants.dart' show AppColors;
import 'package:flutter/services.dart';

void main() {
  // 修改系统状态栏颜色
  SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
    systemNavigationBarColor: Color(AppColors.themeColor), // navigation bar color
    statusBarColor: Color(AppColors.themeColor), // status bar color
  ));
  runApp(MyApp());wenti
}

自定义appBar左侧导航显示的内容

appBar: AppBar(
...
        leading: IconButton(
          alignment: Alignment.centerRight,
          icon: SvgPicture.asset(
            'assets/icon/icon_trophy.svg',
            width: Constants.appBarIconSize + 5.0,
            height: Constants.appBarIconSize + 5.0,
          ),
          onPressed: () {
            print("ok");
          },
        )
...
)

媒体查询

MediaQuery.of(context)

资源配置

  assets:
   - assets/icon/
   - lib/containers/
   - lib/model/
   - lib/helpers/
   - lib/routers/
   - assets/images/

路由配置

这里我使用的是fluro配置路由,这里我偷一下懒了,就没有使用原生的方法,不过他帮我们封装了好多的方法我们可以很方便的去使用它,下面说一下路由的配置。

lib\routers\routers.dart

配置路由对应的模块,可以理解成Vue-routerReact-router一样,先要将对应的路由配置到你要跳转的模块去。

import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:flutter_book/routers/route_handlers.dart';

class Routes {
  static String root = "/";
  static String setting = "/setting";
  static String detail = "/detail";
  static String demoSimpleFixedTrans = "/demo/fixedtrans";
  static String
实验目的: 1. 掌握Flutter应用程序开发的基本流程和技巧。 2. 熟悉Flutter和Dart语言的基本语法和应用。 3. 了解Flutter的UI组件和布局,以及它们在应用程序中的实际应用。 4. 学习如何使用Flutter和Dart来调用摄像头和文件系统API,实现拍照功能。 5. 学习如何使用Flutter和Dart来处理图像数据,以及如何在应用程序中显示和保存图像。 实验内容: 本次实验的主要内容是使用Flutter和Dart语言开发一个拍照应用程序,程序的主要功能包括: 1. 调用摄像头API,实现拍照功能。 2. 显示拍摄的照片,并支持手势缩放和旋转。 3. 保存拍摄的照片到本地文件系统中。 以下是实验的具体步骤: 1. 创建一个新的Flutter项目,使用Flutter提供的UI组件和布局来实现应用程序的UI设计。 2. 在应用程序中添加一个按钮,用于触发拍照功能。 3. 在应用程序中调用摄像头API,实现拍照功能,并将拍摄的照片数据保存到内存中。 4. 在应用程序中显示拍摄的照片,并支持手势缩放和旋转。您可以使用Flutter提供的GestureDetector和Transform组件来实现这些功能。 5. 在应用程序中将拍摄的照片保存到本地文件系统中。您可以使用Flutter提供的dart:io库来实现这个功能。 在完成上述步骤后,您可以在模拟器或实际设备上运行应用程序,并测试它的功能。如果需要,您还可以对应用程序进行进一步的优化和改进。 总之,本次实验将帮助您掌握Flutter和Dart语言的基本知识和技巧,以及如何使用它们来开发实际应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值