Flutter基础功能扩展插件agent_dart_base的使用

Flutter基础功能扩展插件agent_dart_base的使用


Agent Dart

Pub License

一个为Internet Computer构建的代理库,用于Dart和Flutter应用。

加入Discord频道: Discord


📃 目录


⚡️ 快速开始

针对Dart/Flutter应用

最新稳定版本是:

dependencies:
  agent_dart: ^latest-version
针对iOS项目

当你在包含iOS平台的Flutter项目中使用插件时,请确保你已经完成了以下设置:

  1. 打开 ios/Runner.xcworkspace
  2. 在左侧文件视图中选择 Runner,然后选择 Project -> Runner
  3. 选择 Build SettingsAllCombined 并在过滤输入字段中键入 strip style
  4. 切换 Strip Style 并选择 Non-Global Symbols

开发插件
  1. 克隆并遵循 先决条件,确保你的Flutter已正确安装。
  2. 必须操作: 初始化你的项目
./scripts/bootstrap.sh

🚦 先决条件


🧰 资源

📖 文档
🔧 工具/辅助工具
💡 示例
  • 简单计数器, 一个简单的计数器,演示如何使用agent_dart,后端有一个canister。
  • 授权计数器, 一个需要用户从Internet-Identity授权的计数器,演示如何与agent_dart_auth结合使用。
  • 记账应用, 一个演示如何导入助记词并进行交易的记账应用。

🧘‍♂️ 动机

Internet Computer由区块链驱动,其主要影响是将WebApp真正去中心化。然而,我们正处于移动互联网时代,即使我们可以在手机上使用Safari或Chrome,但大多数普通用户,而不是加密爱好者,更可能使用原生移动应用,主要用户在那里。

吸引这些用户使用Internet Computer的DApp非常重要,通过提供稳定、快速且完全集成到Dfinity区块链的应用程序。我们希望进一步解决“去中心化”和“效率”之间的平衡。但首先,我们必须使移动原生应用工作。

agent-rsagent-js 是实际的底层客户端SDK,就像Ethereum生态系统中的ether.jsweb3.js。此库旨在移植和复制这些功能。此库主要用于移动应用连接canisters,而不是部署合约(如果你想这样做,可以使用dart直接实现)。

我们已经尽力迁移了大部分JavaScript版本的接口样式,但由于不同编程语言之间存在限制和差异,我们将尽可能多地记录它们。


🏆 里程碑

  • 里程碑1: ✅ 核心功能/库实现。
  • 里程碑2: ✅ 增强构建工具和更多示例应用
  • 里程碑3: 👷 文档和社区驱动开发

👨‍💻 贡献

通过为agent_dart贡献,你同意你的贡献将被授权为MIT许可证。

  1. 分叉此库并添加自己的分支,如 {feat|fix|test|dep}-{detail}
  2. 遵循 先决条件
  3. 为所有支持的平台构建rust依赖:
sh ./scripts/bootstrap
  1. 启动示例。
cd example
flutter run
  1. 测试。(单元测试和集成测试)
flutter test
  1. 提交并发起pull请求。

🔗 参考和相关项目

自由在此处列出你的项目,你可以提交在这里。


⚠️ 常见问题

在iOS/MacOS上构建rust库
  • 所有的rust方法都必须写在 SwiftAgentDartPlugin.swift 中,以避免XCode的树摇动。
macOS上的网络问题
  • 如果你在运行示例或构建flutter应用时遇到此问题:
[macOS] SocketException: Connection failed (OS Error: Operation not permitted, errno = 1)
  • 前往macOS的macos/Runner目录。
  • DebugProfile.entitlementsReleaseProfile.entitlements 中添加以下内容:
<key>com.apple.security.network.client</key>
<true/>

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

1 回复

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


agent_dart_base 是一个为 Flutter 项目提供基础功能扩展的插件,它通常包含了一些常用的工具类、扩展方法、以及一些基础功能的封装,帮助开发者更高效地开发 Flutter 应用。以下是如何使用 agent_dart_base 插件的一些基本步骤和功能示例。

1. 安装插件

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

dependencies:
  flutter:
    sdk: flutter
  agent_dart_base: ^版本号 # 替换为最新的版本号

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

2. 导入插件

在你的 Dart 文件中导入 agent_dart_base 插件:

import 'package:agent_dart_base/agent_dart_base.dart';

3. 使用插件提供的功能

agent_dart_base 插件通常包含以下一些基础功能:

3.1. 工具类

插件可能提供了一些工具类,例如 StringUtilsDateUtils 等,用于处理字符串、日期等常见操作。

// 示例:使用 StringUtils 工具类
String str = "Hello, World!";
String reversedStr = StringUtils.reverse(str);
print(reversedStr); // 输出: !dlroW ,olleH

// 示例:使用 DateUtils 工具类
DateTime now = DateTime.now();
String formattedDate = DateUtils.format(now, "yyyy-MM-dd");
print(formattedDate); // 输出: 2023-10-05

3.2. 扩展方法

插件可能为一些常见的 Dart 类提供了扩展方法,例如 ListMap 等。

// 示例:使用 List 的扩展方法
List<int> numbers = [1, 2, 3, 4, 5];
int sum = numbers.sum();
print(sum); // 输出: 15

// 示例:使用 Map 的扩展方法
Map<String, int> map = {"a": 1, "b": 2, "c": 3};
Map<String, int> doubledMap = map.mapValues((value) => value * 2);
print(doubledMap); // 输出: {a: 2, b: 4, c: 6}

3.3. 基础功能封装

插件可能还封装了一些基础功能,例如网络请求、本地存储等。

// 示例:使用网络请求功能
void fetchData() async {
  var response = await HttpUtils.get("https://api.example.com/data");
  print(response);
}

// 示例:使用本地存储功能
void saveData() async {
  await StorageUtils.saveString("key", "value");
  String value = await StorageUtils.getString("key");
  print(value); // 输出: value
}

4. 自定义配置

agent_dart_base 插件可能允许你进行一些自定义配置,例如设置网络请求的超时时间、本地存储的路径等。

void configurePlugin() {
  HttpUtils.setTimeout(Duration(seconds: 10));
  StorageUtils.setStoragePath("/path/to/storage");
}
回到顶部