Flutter之环境配置与项目搭建

Flutter之环境配置与项目搭建

一,介绍

1.1,Dart

Dart 是一种 易于学习、 易于扩展、并且可以部署到 任何地方 的 应用 编程 语言。并且同时借鉴了Java和JavaScript。Dart在静态语法方面和Java非常相似,如类型定义、函数声明、泛型等,而在动态特性方面又和JavaScript很像,如函数式特性、异步支持等。

1.2,Flutter

Flutter 是 Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart语言开发 App,一套代码同时运行在 iOS 和 Android平台。 Flutter提供了丰富的组件、接口,开发者可以很快地为 Flutter添加 native扩展。同时 Flutter还使用 Native引擎渲染视图。

二,开发环境配置

2.1,安装Flutter

第一步:配置镜像

由于在国内访问Flutter有时可能会受到限制,Flutter官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户环境变量中:

1 export PUB_HOSTED_URL=https://pub.flutter-io.cn
2 export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

如下图所示:

第二步:获取Flutter SDK

去flutter官网下载其最新可用的安装包,下载地址:https://flutter.dev/docs/development/tools/sdk/releases ,打开后如图所示:

    1. 将安装包zip解压到你想安装Flutter SDK的路径(如:D:\flutter;注意,不要将flutter安装到需要一些高权限的路径如C:\Program Files\)。
    2. 在Flutter安装目录的flutter文件下找到flutter_console.bat,双击运行并启动flutter命令行,接下来,你就可以在Flutter命令行运行flutter命令了。

第三步:配置环境变量

如果不配置环境变量,在全局环境中是无法使用flutter命令的,转到 “控制面板>用户帐户>用户帐户>更改我的环境变量”,在Path下添加D:\flutter\bin条目,保存即可。

第四步:运行 flutter doctor命令

在Flutter命令行运行如下命令来查看是否还需要安装其它依赖,如果需要,安装它们:

1 flutter doctor

该命令检查你的环境并在命令行窗口中显示报告。Dart SDK已经在打包在Flutter SDK里了,没有必要单独安装Dart。安装完成后再运行flutter doctor命令来验证是否安装成功。

2.2,windows与mac本配置(模拟器)

windows下sdk与jdk配置,可参考React-Native windows环境搭建记录

mac本下sdk与jdk配置,可参考React Naive之macOs环境配置记录(iOS Android)

2.3,编辑器配置

常用编辑器是VS Code,故此这儿主要介绍VS Code的配置,VS Code支持Flutter运行和调试。

安装flutter插件

    1. 启动 VS Code。
    2. 调用 View>Command Palette…。
    3. 输入 ‘install’, 然后选择 Extensions: Install Extension action。
    4. 在搜索框输入 flutter ,在搜索结果列表中选择 ‘Flutter’, 然后点击 Install。
    5. 选择 ‘OK’ 重新启动 VS Code。
    6. 验证配置
      • 调用 View>Command Palette…
      • 输入 ‘doctor’, 然后选择 ‘Flutter: Run Flutter Doctor’ action。
      • 查看“OUTPUT”窗口中的输出是否有问题

创建Flutter应用

    1. 启动 VS Code
    2. 调用 View>Command Palette…
    3. 输入 ‘flutter’, 然后选择 ‘Flutter: New Project’ action
    4. 输入 Project 名称 (如myapp), 然后按回车键
    5. 指定放置项目的位置,然后按蓝色的确定按钮
    6. 等待项目创建继续,并显示main.dart文件

VS Code格式化dart代码的快捷方式是shift+alt+f

三,项目搭建

第一步:创建Flutter应用

1 flutter create yingqi_flutter

第二步:底部tab

Flutter中的路由管理和原生开发类似,无论是Android还是iOS,导航管理都会维护一个路由栈,路由入栈(push)操作对应打开一个新页面,路由出栈(pop)操作对应页面关闭操作,而路由管理主要是指如何来管理路由栈。

1  final result =
2         await Navigator.of(context).push(MaterialPageRoute(builder: (context) {
3       return LoginPage();
4     }));
1  Navigator.pop(context, "refresh");

  1 class AppHomeState extends State<AppHome> {
  2   final appBarTitles = [‘首页‘, ‘资讯‘, ‘产品‘, ‘我的‘];
  3
  4   ...
  5
  6   int _tabIndex = 0;
  7
  8   var tabImages;
  9   var _body;
 10   var pages;
 11
 12   Image getTabImage(path) {
 13     return Image.asset(path, width: 20.0, height: 20.0);
 14   }
 15
 16   @override
 17   void initState() {
 18     super.initState();
 19
 20    ...
 21
 22     });
 23     pages = <Widget>[HomePage(), NewsPage(), ProductPage(), MyPage()];
 24     if (tabImages == null) {
 25       tabImages = [
 26         [
 27           getTabImage(‘images/ic_nav_news_normal.png‘),
 28           getTabImage(‘images/ic_nav_news_actived.png‘)
 29         ],
 30         [
 31           getTabImage(‘images/ic_nav_tweet_normal.png‘),
 32           getTabImage(‘images/ic_nav_tweet_actived.png‘)
 33         ],
 34         [
 35           getTabImage(‘images/ic_nav_discover_normal.png‘),
 36           getTabImage(‘images/ic_nav_discover_actived.png‘)
 37         ],
 38         [
 39           getTabImage(‘images/ic_nav_my_normal.png‘),
 40           getTabImage(‘images/ic_nav_my_pressed.png‘)
 41         ]
 42       ];
 43     }
 44   }
 45
 46   TextStyle getTabTextStyle(int curIndex) {
 47     if (curIndex == _tabIndex) {
 48       return tabTextStyleSelected;
 49     }
 50     return tabTextStyleNormal;
 51   }
 52
 53   Image getTabIcon(int curIndex) {
 54     if (curIndex == _tabIndex) {
 55       return tabImages[curIndex][1];
 56     }
 57     return tabImages[curIndex][0];
 58   }
 59
 60   Text getTabTitle(int curIndex) {
 61     return Text(appBarTitles[curIndex], style: getTabTextStyle(curIndex));
 62   }
 63
 64   @override
 65   Widget build(BuildContext context) {
 66     _body = IndexedStack(
 67       children: pages,
 68       index: _tabIndex,
 69     );
 70     return MaterialApp( 74       home: Scaffold( 80         body: _body,
 81         bottomNavigationBar: CupertinoTabBar(
 82           items: <BottomNavigationBarItem>[
 83             BottomNavigationBarItem(
 84                 icon: getTabIcon(0),
 85                 title: getTabTitle(0)),
 86             BottomNavigationBarItem(
 87                 icon: getTabIcon(1),
 88                 title: getTabTitle(1)),
 89             BottomNavigationBarItem(
 90                 icon: getTabIcon(2),
 91                 title: getTabTitle(2)),
 92             BottomNavigationBarItem(
 93                 icon: getTabIcon(3),
 94                 title: getTabTitle(3)),
 95           ],
 96           currentIndex: _tabIndex,
 97           onTap: (index) {
 98             setState((){
 99               _tabIndex = index;
100             });
101           },
102         ),
103       ),
104     );
105   }
106 }

第三步:包管理与资源配置

Flutter项目默认的配置文件是pubspec.yaml,包与资源配置,均修改此文件

包配置如下图所示:

    • dependencies:应用或包依赖的其它包或插件。
    • flutter:flutter相关的配置选项。

http: ^0.12.0就是项目中需要使用外部包配置,使用如下命令即可下载:

1 flutter packages get

资源配置如下图所示:

需要使用什么资源,以图片中的格式在assets下继续添加即可。

第四步:数据缓存

1,在pubspec.yaml文件中,添加如下包:

1   shared_preferences: ^0.4.3

2,数据记录类

1 import ‘package:shared_preferences/shared_preferences.dart‘;
2 import ‘dart:async‘;
3
4 class DataUtils {
5
6 ...
7
8 }

3,用户登录信息操作

 1   static const String SP_USER_NAME = "name";
 2   static const String SP_USER_ID = "userId";
 3   static const String SP_IS_LOGIN = "isLogin";
 4
 5   // 保存用户登录信息,data中包含了token等信息
 6   static saveLoginInfo(Map data) async {
 7     if (data != null) {
 8       SharedPreferences sp = await SharedPreferences.getInstance();
 9       String userId = data[‘UserId‘];
10       await sp.setString(SP_USER_ID, userId);
11       String name = data[‘Name‘];
12       await sp.setString(SP_USER_NAME, name);
13       await sp.setBool(SP_IS_LOGIN, true);
14     }
15   }
16
17   // 清除登录信息
18   static clearLoginInfo() async {
19     SharedPreferences sp = await SharedPreferences.getInstance();
20     await sp.setString(SP_USER_ID, "");
21     await sp.setString(SP_USER_NAME, "");
22     await sp.setBool(SP_IS_LOGIN, false);
23   }
24
25  // 获取用户登录信息
26   static Future<LoginInfo> getLoginInfo() async {
27      SharedPreferences sp = await SharedPreferences.getInstance();
28     bool isLogin = sp.getBool(SP_IS_LOGIN);
29     if (isLogin == null || !isLogin) {
30       return null;
31     }
32     LoginInfo loginInfo = LoginInfo();
33     loginInfo.userId = sp.getString(SP_USER_ID);
34     loginInfo.name = sp.getString(SP_USER_NAME);
35     return loginInfo;
36   }

下一章->Flutter之网络请求

原文地址:https://www.cnblogs.com/jackson-yqj/p/11764720.html

时间: 2024-10-05 05:11:51

Flutter之环境配置与项目搭建的相关文章

Mac端Flutter的环境配置看这一篇就够了

前言 最近Flutter已经疯狂的刷屏了各个技术博客.技术网站,完全有一统天下的气势.所以最近也决定开始尝尝鲜,从零开始一步步的来探索Flutter的世界.就从环境搭建开始,记录一下自己探索Flutter的过程. 安装Flutter 首先我们可以在Flutter官网上面看到一些配置环境的步骤.这里就直接开干了,走起. 作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:763164022,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题.面试经验,讨论技术,

Spring学习随笔(2):Eclipse下Spring环境配置+入门项目

1 准备工作 (按需下载) Eclipse 下载:http://www.eclipse.org/downloads/eclipse-packages/ : Spring 下载:http://repo.spring.io/libs-release-local/org/springframework/spring/  版本自选: Spring aop另需的3个包:http://download.csdn.net/download/lk_lxn/6397895 2 Spring IDE help->E

webpack 4 :从0配置到项目搭建

webpack4发布以来,我写项目都是用脚手架,即使再简单的项目,真的是really shame..虽然道听途说了很多 webpack4 的特性,却没有尝试过,因为它给人的感觉就是,em...很难.但是今天我从最简单的部分开始,一点点搭建起一个项目. 0配置,配置了什么 让我们从0开始,新建一个项目,在终端执行以下语句: mkdir webpack-4-quickstart && cd webpack-4-quickstart npm init -y npm i webpack --sav

win8下cocos2dx-3.2+VS2012环境配置及项目创建

转自http://88cto.com/996655/article/details/33738.html 这是本人CSDN的第一篇博客,因为假期在学校做实训项目接触到了cocos2dx,觉得是一个特别适用强大,有不错的可移植性(虽然可移植性不错,但实际上写好的游戏往Android上移植,我的队友废了好大劲...),所以打算深入学习一下,写一些博客与大家共享,慢慢我发现CSDN博客真的是许多编程爱好者的乐土,所以想要在这里开辟出自己的一点儿空间,留下一些东西,给自己回味,给别人品评. 另外,情况是

Flutter开发环境配置-Windows

下载Flutter Sdk 系统要求: 安装运行Flutter,开发环境必须满足以下要求: 操作系统:Windows 7 或者以上版本,64位机器 硬盘空间:不包括IDE和工具在内,至少需要400M 软件工具: Windows PowerShell 5.0或者以上 Windows版Git 2.x,请确保Git可以正常运行 获取Flutter Sdk: 1. 点击这里下载最新版本的Flutter Sdk.如果想要获取更多Flutter Sdk或者下载以前版本的Flutter Sdk,请点击SDK

【图文讲解】TomCat服务器环境配置及项目部署

转载请注明出处:http://blog.csdn.net/caoyouxing/article/details/42644575 如何下载安装tomcat?如何配置环境变量?如何部署项目?在这过程中是否和作者一样经常出现错误? 请仔细读文及注意事项. 工具/原料 1,JDK:版本为jdk-7-windows-i586.exe 下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html 2,tomcat:版本为apa

php服务器环境安装及项目搭建

2安装运行环境及搭建项目2.1安装apache及测试1)安装apacheyum install httpd 启动apache systemctl start httpd.service 查看运行状态 systemctl status httpd.service 2)编辑测试页面echo "xingming">/var/www/html/index.html 3)打开浏览器输入公网ip地址,结果如下 2.2安装MySQL1)安装mysqlyum install mariadb-se

搭建flutter开发环境

最近入坑flutter,dart还没开始学,搭环境就干了我一天半,不容易,记录一下, 我们先立个目标,这是我已经配好的,我是真的有强迫症,需要打四个对勾,真的不容易,我们一个一先说一下每一个都代表什么, 1.flutterSDK 2.AndroidSDK 3.Android studio IDE  环境配置 4.是否链接模拟器和真机 0202年了,要求机器配置就不说了 ,基本都满足,直接开始 flutterSDK 有人用git下载,闹了半天,出了很多事故,还是决定手动下载安装包,下载地址:htt

PHP入门介绍与环境配置

浏览目录: 一.PHP的背景和优势: 二.PHP原理简介: 三.PHP运行环境配置: 四.编写简单的PHP代码以及测试. 一.PHP的背景和优势 1.1   什么是PHP? PHP是能让你生成动态网页的工具之一.PHP代表:超文本预处理器 (PHP: Hypertext Preprocessor).PHP是完全免费的, 你可以从PHP官方站点(www.php.net )自由下载.       PHP语言简介: PHP 独特的语法混合了 C.Java.Perl 以及 PHP 自创新的语法.用PHP