if (kReleaseMode) {
//正式环境
text = "release";
} else {
//测试环境 debug
text = "debug";
}
配置一些app的通用配置
///配置抽象
class AppConfig extends InheritedWidget {
//主页标题
final String appName;
//接口域名
final String apiBaseUrl;
AppConfig(
{@required this.appName,
@required this.apiBaseUrl,
@required Widget child})
: super(child: child);
//方便其子Widget在Widget树中找到它
static AppConfig of(BuildContext context) {
return context.inheritFromWidgetOfExactType(AppConfig);
}
//判断是否需要子Widget更新.由于是应用入口,无需更新
@override
bool updateShouldNotify(InheritedWidget oldWidget) {
return false;
}
}
///为不同的环境创建不同的应用入口
//main_dev.dart 这个是正式环境的入口
void main() {
var configuredApp = AppConfig(
appName: 'dev', //主页标题
apiBaseUrl: 'http://dev.example.com/', //接口域名
child: MyApp(),
);
runApp(configuredApp);
}
//main.dart 这个是测试环境的入口
/*void main(){
var configuredApp = AppConfig(){
appName: 'example',//主页标题
apiBaseUrl: 'http://api.example.com/',//接口域名
child: MyApp(),
}
runApp(configuredApp);
}*/
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
var config = AppConfig.of(context);
return MaterialApp(
title: config.appName,
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
var config = AppConfig.of(context);
return Scaffold(
appBar: AppBar(
title: Text(config.appName),
),
body: Center(
child: Text(config.apiBaseUrl),
),
);
}
}
//运行开发环境应用程序
//flutter run -t lib/main_dev.dart
//运行生产环境应用程序
//flutter run -t lib/main.dart
/*
*
//打包开发环境应用程序
flutter build apk -t lib/main_dev.dart
flutter build ios -t lib/main_dev.dart
//打包生产环境应用程序
flutter build apk -t lib/main.dart
flutter build ios -t lib/main.dart
* */
// 正式环境 将debugPrint指定为空的执行体, 所以它什么也不做
debugPrint = (String message, {int wrapWidth}) {};
debugPrint('test');
//开发环境就需要打印出日志
debugPrint = (String message, {int wrapWidth}) =>
debugPrintSynchronously(message, wrapWidth: wrapWidth);
void main() {
//Debug Painting 界面调试工具
//有点像原生的显示布局边界
debugPaintSizeEnabled = true;
runApp(MyApp());
}
还可以使用Flutter Inspector去查看更详细的可视化信息.
阶段 | 子任务 | 命令 |
---|---|---|
工程初始化 | App工程 | flutter create --template=app hello |
工程初始化 | Dart包工程 | flutter create --template=package hello |
工程初始化 | 插件工程 | flutter create --template=plugin hello |
构建 | Debug构建 | flutter build apk --debug flutter build ios --debug |
构建 | Release构建 | flutter build apk --release flutter build ios --release |
构建 | Profile构建 | flutter build apk --profile flutter build ios --profile |
集成原生工程 | 独立App打包 | flutter build apk --release flutter build ios --release |
集成原生工程 | Pod/AAR打包 | flutter build apk --release flutter build ios --release |
扫一扫
在手机上阅读