安装Flutter
mac系统:
- 使用镜像
open .bash_profile
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
source .bash_profile
- 下载Flutter SDK
git clone -b beta https://github.com/flutter/flutter.git
- 配置环境变量
export PATH=
pwd
/flutter/bin:$PATH
-
检验,执行flutter
- 相关依赖工具下载 flutter doctor
Android Studio 集成Flutter插件
-
配置flutter路径
第一个程序Hello world
- 创建
File>New Flutter Project
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Welcome to Flutter',
home: new Scaffold(
appBar: new AppBar(
title: new Text('Welcome to Flutter'),
),
body: new Center(
child: new Text('Hello World'),
),
),
);
}
}
分析
main函数使用了(
=>
)符号, 这是Dart中单行函数或方法的简写。该应用程序继承了 StatelessWidget,这将会使应用本身也成为一个widget。 在Flutter中,大多数东西都是widget,包括对齐(alignment)、填充(padding)和布局(layout)
Scaffold 是 Material library 中提供的一个widget, 它提供了默认的导航栏、标题和包含主屏幕widget树的body属性。widget树可以很复杂。
widget的主要工作是提供一个build()方法来描述如何根据其他较低级别的widget来显示自己。
本示例中的body的widget树中包含了一个Center widget, Center widget又包含一个 Text 子widget。 Center widget可以将其子widget树对其到屏幕中心。
问题:会出现 Resolving dependencies... 报错
多尝试重启了几次就好了···
体验热重载(⚡️图标的按钮)
在IOS真机上运行
在IOS真机上运行项目需要安装一些必要的软件,在命令行中别分执行如下命令:
brew update
brew install --HEAD libimobiledevice
brew install ideviceinstaller ios-deploy cocoapods
pod setup
安装完毕之后打开hello_world/ios目录下的
在运行之前需要配置bundle identifier和签名
不然会出现如下提示
-
使用外部包(package)
pubspec文件管理Flutter应用程序的assets(资源,如图片、package等)
尝试增加english_words外部包
在Android Studio的编辑器视图中查看pubspec时,单击右上角的 Packages get,依赖包会安装到项目中。控制台中看到以下内容:
flutter packages get
Running "flutter packages get" in startup_namer...
Process finished with exit code 0
在 lib/main.dart 中, 引入 english_words
import 'package:flutter/material.dart';
import 'package:english_words/english_words.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final wordPair = new WordPair.random();
return new MaterialApp(
title: 'Welcome to Flutter',
home: new Scaffold(
appBar: new AppBar(
title: new Text('Welcome to Flutter'),
),
body: new Center(
// child: new Text('Hello World'),
child:new Text(wordPair.asPascalCase),
),
),
);
}
}