Flutter核心功能扩展插件sdev_flutter_core的使用

Flutter核心功能扩展插件sdev_flutter_core的使用

[sdev_flutter_core] 是一个用于开发Flutter应用程序时处理所有样板代码的包。

特性

  • Adapter接口
  • 日期、时间、字符串的常用扩展
  • 导航工具
  • 响应式工具
  • 存储工具
  • 验证器

开始使用

要开始在你的Flutter应用中使用该包,首先需要将它作为依赖项安装。

使用方法

日期扩展

final date = DateTime.now();
print(date.stringify); // 输出当前日期的字符串形式

字符串扩展

"Message".showBottomSnackBar(context); // 在底部显示消息

时间扩展

final time = TimeOfDay.now();
time.stringify; // 输出当前时间的字符串形式

轻松存储数据(通过存储类)

将数据存储到文件

首先定义一个可序列化的类:

class Profile implements Serializable {
    final String name;

    Profile({required this.name});

    @override
    Map<String, dynamic> toMap() {
        return {
            "name": name,
        };
    }
}

然后定义适配器:

class ProfileAdapter implements IAdapter<Profile, Map<String, dynamic>> {
  @override
  Profile convert(Map<String, dynamic> data) {
    return Profile(name: data['name']);
  }
}

接着创建存储库:

class ProfileStoreRepo extends FileStoreRepo<Profile> {
  ProfileStoreRepo({
    super.filename = "profile.txt",
  }) : super(adapter: ProfileAdapter());
}

使用存储库进行保存和读取:

final storeRepo = ProfileStoreRepo();
final Profile p = await network.fetchProfile(); // 获取配置文件数据
await storeRepo.save(p); // 保存数据到文件

final savedProfile = await storeRepo.fetch(); // 从文件读取数据
if(savedProfile == null) {
    print("No saved Profile Found"); // 如果没有找到保存的配置文件,打印提示信息
}

将数据存储到Shared Preferences

首先定义一个可序列化的类:

class Token implements Serializable {
  final String accessToken;
  Token({
    required this.accessToken,
  });

  @override
  Map<String, dynamic> toMap() {
    return {
      "access_token": accessToken,
    };
  }
}

然后定义适配器:

class TokenAdapter implements IAdapter<Token, Map<String, dynamic>> {
  @override
  Token convert(Map<String, dynamic> data) {
    return Token(accessToken: data['access_token']);
  }
}

接着创建存储库:

class TokenStoreRepo extends PrefsStoreRepo<Token> {
  TokenStoreRepo({
    required super.prefs,
    super.key = "@token",
  }) : super(adapter: TokenAdapter());
}

使用存储库进行保存和读取:

final storeRepo = TokenStoreRepo();
final Token p = await network.login(email, password); // 登录并获取令牌
await storeRepo.save(p); // 保存令牌到SharedPreferences

final savedToken = await storeRepo.fetch(); // 从SharedPreferences读取令牌
if(savedToken == null) {
    print("No saved Token Found"); // 如果没有找到保存的令牌,打印提示信息
}

使用验证器

TextFormField(
    validator: Validator.validateEmpty, // 验证输入是否为空
)

更多关于Flutter核心功能扩展插件sdev_flutter_core的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter核心功能扩展插件sdev_flutter_core的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


sdev_flutter_core 是一个 Flutter 核心功能扩展插件,旨在为 Flutter 开发者提供一些常用的工具和功能扩展,以简化开发流程并提高开发效率。以下是关于如何使用 sdev_flutter_core 的一些基本指南和功能示例。

1. 安装插件

首先,你需要在 pubspec.yaml 文件中添加 sdev_flutter_core 依赖:

dependencies:
  flutter:
    sdk: flutter
  sdev_flutter_core: ^latest_version

然后运行 flutter pub get 来安装插件。

2. 导入插件

在你的 Dart 文件中导入 sdev_flutter_core

import 'package:sdev_flutter_core/sdev_flutter_core.dart';

3. 核心功能使用示例

sdev_flutter_core 提供了多种功能扩展,以下是其中一些常见功能的示例:

3.1 网络请求

sdev_flutter_core 提供了一些简化的网络请求工具。

import 'package:sdev_flutter_core/sdev_flutter_core.dart';

void fetchData() async {
  var response = await SDevHttpClient.get('https://jsonplaceholder.typicode.com/posts');
  if (response.statusCode == 200) {
    print('Data: ${response.body}');
  } else {
    print('Failed to load data');
  }
}

3.2 本地存储

sdev_flutter_core 还提供了简化的本地存储功能。

import 'package:sdev_flutter_core/sdev_flutter_core.dart';

void saveData() async {
  await SDevStorage.saveString('key', 'value');
}

void getData() async {
  String value = await SDevStorage.getString('key');
  print('Value: $value');
}

3.3 日期时间格式化

sdev_flutter_core 提供了日期时间格式化的工具。

import 'package:sdev_flutter_core/sdev_flutter_core.dart';

void formatDate() {
  DateTime now = DateTime.now();
  String formattedDate = SDevDateUtils.format(now, 'yyyy-MM-dd');
  print('Formatted Date: $formattedDate');
}

3.4 字符串工具

sdev_flutter_core 提供了一些常用的字符串处理工具。

import 'package:sdev_flutter_core/sdev_flutter_core.dart';

void stringUtils() {
  String text = 'Hello World';
  bool isEmpty = SDevStringUtils.isEmpty(text);
  print('Is Empty: $isEmpty');
}

3.5 日志工具

sdev_flutter_core 提供了简化的日志工具。

import 'package:sdev_flutter_core/sdev_flutter_core.dart';

void logMessage() {
  SDevLogger.log('This is a log message');
  SDevLogger.error('This is an error message');
}
回到顶部