Flutter量化交易插件quantactions_flutter_plugin的使用
Flutter量化交易插件quantactions_flutter_plugin
的使用
QuantActions
插件允许开发者在Flutter应用中添加所有QuantActions
功能。这包括:
- 自动数据收集
- 访问经过处理的指标和见解(Tap Intelligence Engine, TIE)
- 启用设备通信
- 订阅不同的用户群组
QuantActions
插件可以通过几个简单的步骤进行设置。对于一个实际的例子,请查看example
目录。
重要提示:为了让插件正常工作,你需要从QuantActions
获取一个api_key
。如果你还没有收到你的api_key
,请联系我们。
初始Flutter设置
首先,在你的pubspec.yaml
文件中添加依赖项:
dependencies:
quantactions_flutter_plugin: ^0.2.1
初始Android设置
我们建议使用Android Gradle Plugin (AGP) 8.5+ 和 Kotlin 2.0+。在你的build.gradle
文件中添加github maven
仓库,其中包含QuantActions
Android SDK。推荐使用个人访问令牌:
allprojects {
repositories {
...
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/QuantActions/quantactions-android-sdk")
credentials {
username = '...'
password = '...'
}
}
}
}
推荐添加一些Android特定的自定义配置。你还需要直接依赖项到你的app/build.gradle
文件中:
implementation 'com.quantactions:quantactions-android-sdk:1.1.1'
这些步骤足以正确地将插件集成到应用程序(Android端),但继续阅读QuantActions Android SDK
文档以了解如何设置必要的Android权限来开始数据收集。
初始iOS设置
对于iOS,你可以遵循QuantActions iOS SDK
文档中的说明,特别是从添加你的api_key
开始:
api_key=your_api_key
注意,你可以跳过安装原生SDK的步骤,因为这是由插件完成的。
在原生iOS文档中,你会看到需要添加一个自定义键盘扩展
,它负责收集数据。完成后,你需要向你的应用Podfile中添加以下行,以确保QuantActions
SDK正确链接到键盘扩展:
target 'Runner' do
use_frameworks!
use_modular_headers!
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
target 'NameOfYourKeyboardExtension' do
inherit! :search_paths
end
end
添加QA功能到应用
整个QA
功能可以在代码中的任何地方通过单例QA
访问。可以这样实例化:
import 'package:quantactions_flutter_plugin/quantactions_flutter_plugin.dart';
final qa = QAFlutterPlugin();
在使用任何功能之前,QA
单例需要初始化。为此,你需要一个由QuantActions
提供的api_key
。如果还没有收到你的api_key
,请联系我们。
推荐使用flutter_dotenv
来处理Flutter中的API密钥。在项目的根目录下创建一个.env
文件,并添加以下内容:
api_key=your_api_key
在你的main.dart
文件中,你可以检索API密钥:
import 'package:flutter_dotenv/flutter_dotenv.dart';
void main() async {
await dotenv.load(fileName: ".env");
static final String tempApiKey = dotenv.env['api_key'] ?? '';
runApp(MyApp());
}
然后你可以在代码中访问它并初始化QuantActions
插件:
qa.init(
api_key: dotenv.env['api_key'],
age: 1991,
gender: Gender.other,
selfDeclaredHealthy: true
);
注册到用户群组
为了跟踪设备,必须订阅该设备到一个用户群组。只需使用QA
提供的cohortId
:
qa.subscribe(subscriptionIdOrCohortId: 'your_cohort_id');
当使用cohortId
订阅设备时,设备会自动分配一个subscriptionId
,可以使用以下代码检索此ID:
final List<Subscription> subscriptions = await _qa.getSubscriptions();
请注意,每个用户可以同时订阅多个用户群组。
多个设备(目前仅限Android)
可以通过提供identityId
和密码
在初始化SDK时链接多个设备到同一个用户。SDK将能够将来自不同设备的数据链接到同一个用户。
在第一个设备上,检索identityId
和密码
:
final String identityId = await qa.identityId;
final String? password = await qa.password;
然后在第二个设备上,使用identityId
和密码
初始化SDK:
qa.init(
api_key: '',
identityId: identityId,
password: password
);
重要提示:由于QuantActions
与用户身份没有任何关联,因此无法在设备丢失或损坏的情况下恢复数据。建议将QuantActions
的identityId
和password
与用户的账户信息一起存储。在设备丢失或损坏的情况下,可以在新设备上使用用户的identityId
和password
重新初始化QuantActions
SDK,以恢复数据并保证旧设备和新设备之间指标的连续性。
设置注意事项
- 检查是否已正确添加
api_key
(Info.plist + .env文件) - [Android] 检查是否已请求必要权限
- [iOS] 检查是否已正确添加键盘并修改Podfile
确认一切运行正常
在SDK集成完成后,你可以添加一些检查以确保一切正常。
- 使用
qa.isDeviceRegistered()
检查SDK是否已正确初始化(返回布尔值) - 使用
qa.isDataCollectionRunning()
检查数据收集是否正常运行(返回布尔值) - 使用
qa.getSubscriptions()
检查设备是否已在QA
后端注册和/或注册到用户群组成功
qa.getSubscriptions();
暂停数据收集
虽然不推荐这样做,但可以通过QA
单例提供的方法暂停/恢复数据收集:
qa.pauseDataCollection();
qa.resumeDataCollection();
获取指标和趋势
虽然数据收集和同步在SDK内自动化完成,但为了访问应用所需的一小部分指标和趋势,需要手动在应用内检索。
可以通过以下方式程序化检索指标和趋势(返回一个Stream对象):
qa.getMetric(metric: Metric.sleepScore, interval: MetricInterval.month),
qa.getMetric(metric: Trend.sleepScore, interval: MetricInterval.month),
qa.getMetric(metric: Metric.cognitiveFitness, interval: MetricInterval.month),
qa.getMetric(metric: Trend.cognitiveFitness, interval: MetricInterval.month),
检查Metric
和Trend
以获取当前版本SDK中可用的指标和趋势列表,还检查MetricInterval
以获取可用的时间间隔。
该函数返回一个包含TimeSeries
对象的异步Flow。
由于用户的指标需要2到7天才能可用(见ETA
),开发人员可以访问一个每天更新的采样设备的样本指标:
qa.getSampleMetric(api_key: api_key, metric: Metric.sleepScore, interval: MetricInterval.month);
注意,此方法需要传递api_key
,因为它可以在无需SDK初始化的情况下调用。
日记功能
SDK还允许使用日记功能记录一系列条目。每个条目包括:
- 日期
- 描述条目的小文本
- 预定义事件列表
- 条目中每个事件的评分(1到5分)
预定义事件可以从以下位置获取:
qa.getJournalEventKinds();
添加(或编辑)条目可以通过以下方式完成:
qa.saveJournalEntry(...);
条目也可以删除:
qa.deleteJournalEntry(...);
所有条目可以通过以下方式检索:
qa.getJournalEntries();
更多关于Flutter量化交易插件quantactions_flutter_plugin的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html