Flutter基础功能扩展插件flutter_snow_base的使用
Flutter基础功能扩展插件flutter_snow_base
的使用
🧰 Flutter Snow Base! 🧰
🧰 一个为你的项目提供基本工具的包,比如:
- 轻松配置暗黑主题
- 支持Flavors(风味)配置
- 集成了帮助测试响应式的
Device Preview
包 - 预配置了错误报告工具
Catcher
- 预配置多语言支持
- 集成了模块化开发工具
flutter_modular
- 扩展了网络资源获取工具
resource_network_fetcher
📝 升级从2.1.x到2.2.x
在此次更新中,我们移除了NetworkBoundResources()
构造函数,并将其所有方法改为静态方法。因此,你需要对旧代码进行一些更改。我们可以使用正则表达式来批量替换代码。
查找内容:
(?<=NetworkBoundResources)((.*?)\))(\n*)?(.*)?.as(.*?)\(
替换为:
.as$5$2
示例:
📄 目录
❓ 为什么应该使用
Flutter Snow Base 帮助你初始化项目时集成现成的工具,比如测试不同屏幕上的布局只需更改一个属性即可启用。或者捕获应用中的错误并发送到你的邮箱,无需额外努力,只需配置发送方式即可!
🎯 动机
我们意识到几乎所有项目都需要相同的基础功能,如崩溃报告器、风味配置、多语言支持等。因此,此包将这些常见功能整合在一起。
📦 示例
以下是一些使用flutter_snow_base
作为基础的示例项目:
- Daily Nasa photo
- Todo clean
- Todo modular
- Example clean
- Example clean complete
- Example MVC modular
- Example MVC modular complete
🔧 安装
按照以下步骤安装:
-
在
pubspec.yaml
中添加依赖:dependencies: flutter_snow_base: ^版本号
-
运行命令:
flutter pub get
🎉 使用
注意:此包与flutter_snow_blower
配合使用,如果对如何初始化有疑问,请查阅flutter_snow_blower
文档或直接创建项目查看其运行方式!
main.dart 文件
void main() {
RunAppSnow(
ModularApp( // Material app
module: AppModule(),
),
flavorValues: Constants.flavorDev, // 传递风味值
getItInit: () => Resource.setErrorMapper(ErrorMapper.from), // 在启动前执行某些操作
flavor: Flavor.dev, // 选择风味
enableDevicePreview: false, // 启用设备预览
errorReporter: (errorDetails) {}, // 自定义错误报告器
);
}
material_app.dart
这是使用SnowMaterialApp
的基本配置,你可以添加其他参数,与MaterialApp
一致。
class AppWidget extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return SnowMaterialApp(
theme: AppThemeData.themeDataLight, // 亮色主题
darkTheme: AppThemeData.themeDataDark, // 暗黑主题
);
}
}
📋 示例代码
以下是一个完整的示例代码,展示如何使用flutter_snow_base
构建一个简单的Flutter应用:
// main.dart
import 'package:flutter/material.dart';
import 'package:flutter_snow_base/flutter_snow_base.dart';
import 'app_widget.dart';
void main() {
RunAppSnow(
ModularApp(module: AppModule()), // 初始化模块化应用
flavorValues: Constants.flavorDev, // 设置开发环境
flavor: Flavor.dev, // 当前风味
enableDevicePreview: false, // 禁用设备预览
errorReporter: (errorDetails) {
print("Error Reported: $errorDetails"); // 自定义错误处理
},
);
}
// app_widget.dart
import 'package:flutter/material.dart';
import 'package:flutter_snow_base/flutter_snow_base.dart';
class AppWidget extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return SnowMaterialApp(
theme: ThemeData.light(), // 亮色主题
darkTheme: ThemeData.dark(), // 暗黑主题
home: const Center(child: Text('Hello Flutter Snow Base!')),
);
}
}
更多关于Flutter基础功能扩展插件flutter_snow_base的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter基础功能扩展插件flutter_snow_base的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_snow_base
是一个用于扩展 Flutter 应用基础功能的插件。它提供了许多常用的工具和功能,可以帮助开发者更高效地构建 Flutter 应用。以下是一些常见的使用方法和功能:
1. 安装插件
首先,你需要在 pubspec.yaml
文件中添加 flutter_snow_base
依赖:
dependencies:
flutter:
sdk: flutter
flutter_snow_base: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装插件。
2. 常用功能
2.1 网络请求
flutter_snow_base
提供了简化的网络请求 API。你可以使用 SnowHttp
类来发起网络请求。
import 'package:flutter_snow_base/flutter_snow_base.dart';
void fetchData() async {
var response = await SnowHttp().get('https://jsonplaceholder.typicode.com/posts');
if (response.statusCode == 200) {
print('Data: ${response.body}');
} else {
print('Failed to load data');
}
}
2.2 本地存储
flutter_snow_base
提供了简单的本地存储功能,使用 SnowStorage
类来存储和读取数据。
import 'package:flutter_snow_base/flutter_snow_base.dart';
void saveData() async {
await SnowStorage().setString('key', 'value');
}
void readData() async {
String value = await SnowStorage().getString('key');
print('Value: $value');
}
2.3 日志记录
flutter_snow_base
提供了日志记录功能,使用 SnowLogger
类来记录日志。
import 'package:flutter_snow_base/flutter_snow_base.dart';
void logMessage() {
SnowLogger().i('This is an info message');
SnowLogger().d('This is a debug message');
SnowLogger().e('This is an error message');
}
2.4 路由管理
flutter_snow_base
提供了简单的路由管理功能,使用 SnowRouter
类来管理路由。
import 'package:flutter_snow_base/flutter_snow_base.dart';
void navigateToPage() {
SnowRouter().pushNamed('/home');
}
3. 配置
flutter_snow_base
允许你通过配置来定制插件的行为。你可以在应用的入口处进行配置。
import 'package:flutter_snow_base/flutter_snow_base.dart';
void main() {
SnowConfig(
baseUrl: 'https://jsonplaceholder.typicode.com',
enableLogging: true,
);
runApp(MyApp());
}
4. 其他功能
flutter_snow_base
还提供了其他一些功能,如:
- 设备信息:获取设备信息,如设备型号、操作系统版本等。
- 权限管理:简化权限请求流程。
- 图片加载:使用
SnowImage
类来加载和显示图片。
5. 示例代码
以下是一个简单的示例,展示了如何使用 flutter_snow_base
进行网络请求和本地存储:
import 'package:flutter/material.dart';
import 'package:flutter_snow_base/flutter_snow_base.dart';
void main() {
SnowConfig(
baseUrl: 'https://jsonplaceholder.typicode.com',
enableLogging: true,
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Flutter Snow Base Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: fetchData,
child: Text('Fetch Data'),
),
ElevatedButton(
onPressed: saveData,
child: Text('Save Data'),
),
ElevatedButton(
onPressed: readData,
child: Text('Read Data'),
),
],
),
),
),
);
}
void fetchData() async {
var response = await SnowHttp().get('/posts');
if (response.statusCode == 200) {
print('Data: ${response.body}');
} else {
print('Failed to load data');
}
}
void saveData() async {
await SnowStorage().setString('key', 'value');
}
void readData() async {
String value = await SnowStorage().getString('key');
print('Value: $value');
}
}