老板要求两天开发一个App,半天搞定!!!
在快节奏的工作环境中,开发周期往往是制约团队效率的关键因素。尤其是当老板突然要求在短短两天内完成一个App时,这看似不可能完成的任务,却通过AiFlutter低代码平台轻松实现了。仅仅半天的时间,我们就顺利搞定了整个App的开发,打破了传统开发的时间限制。接下来,让我们一起看看是如何通过AiFlutter的高效开发工具,快速实现一个完整App的。
项目介绍
这个项目是一个通过手机测量心率的APP,利用手机内置的加速度计感知因心脏跳动引起的微小胸部振动,从而计算心率。加速度计将手机的位移变化转化为电信号,平台以100Hz的频率每秒采集100个样本,记录三个方向上的加速度数据,精准反映心脏的运动状态。
APP演示
手机与血氧仪心率测量对比的效果图如下
APP从0到1开发视频
需求调研与立项
- 大家各自整理资料文档,通过讨论群传递资料、展开沟通
- 讨论结束后额外整理,对涉及到的素材进行分类归纳
平台实现
创建项目
- 登录AIFlutter
- 点击
新增项目
在平台内部创建项目 - 在跳出的弹窗中输入项目名称、项目描述,建议结合项目功能描述命名,便于检索
- 输入完成后点击确定
创建页面
点击项目进入到操作界面
创建项目后默认会有一个页面
HomePage
,一个项目至少有一个页面创建两个页面
test1
和test2
- 点击
添加页面
图标 ->创建空白
- 在跳出的弹窗中输入
页面名称
和页面描述
- 最后点击确定即可
- 点击
UI设计
效果图

在HomePage
页面中进行设计,实现流程如下
- 打开顶部导航栏,将文本小部件拖入到顶部中,并设置
- 顶部导航栏背景色
#006FFFFF
- 文本内容
Heart Rate Monitor
- 文本颜色
#FFFFFFFF
- 文本大小
18
- 顶部导航栏背景色
- 拖入折线图小部件到画布中,并设置图表属性
- 宽
无限
- 高
100
- 背景颜色
#E6E6E6FF
- 折线1线条颜色
#000000FF
- 折线1线条宽度
2
- 宽
- 再次拖入折线图小部件到画布中,设置图表属性与上述一致
- 拖入左右布局到画布中,依次拖入两个文本小部件到左右布局中,并设置属性
- 文本内容分别为
Heart Rate:
和heartrate
- 文本大小分别为
26
和23
- 文本内容分别为
- 再次拖入左右布局到画布中,依次拖入两个
图标按钮
小部件到左右布局中,并设置属性- 按钮大小
60
- 圆角大小
15
- 背景颜色
#006FFFFF
- 图标颜色
#FFFFFFFF
- 图标分别设置为
play
和stop
- 按钮大小
- 拖入容器小部件到画布中,并设置
- 背景颜色
#C8C8C800
- 背景颜色
- 拖入文本小部件到画布中,并设置
- 文本内容
This app uses the accelerometer that comes with your phone to measure your heart rate
- 字体粗细
700
- 文本大小
16
- 最大行数
3
- 文本内容
- 拖入容器小部件到画布中,并设置
- 背景颜色
#C8C8C800
- 背景颜色
- 在
test1
、test2
和HomePage
中打开底部导航栏- 设置活跃图标颜色
#006FFFFF
- 分别设置活跃图标为
top
、bottom
和HomePage
- 设置活跃图标颜色
顶部导航栏
底部导航栏
变量绑定
上述只是完成了一个静态页面,还需要将数据动态渲染出来
- 添加页面变量,变量定义如下
- 变量名称
chatz1
,变量类型为Double
,是列表类型 - 变量名称
CHATZ
,变量类型为Double
,是列表类型 - 变量名称
CHATZ1
,变量类型为Double
,是列表类型 - 变量名称
chiatzItemold
,变量类型为Double
,默认值0
- 变量名称
heartrate
,变量类型为Int
,默认值0
- 变量名称
- 选择两个折线图分别绑定
chatz1
和CHATZ
变量 - 选择
heartrate
内容的文本小部件,绑定变量heartrate
添加变量
绑定变量
配置流程图
变量绑定好了之后,接下来我们需要再流程图中修改变量的值,从而动态渲染页面数据。
- 选中
play
按钮并在右侧属性界面中打开流程图 - 打开动作流程编辑器,点击
+
添加动作 - 点击动作,在右侧属性中选择
硬件动作
->加速度(不含重力)
- 选择操作类型为
开始数据监听
- 配置
接受数据与页面变量关联
chiatzItemold
->z轴
chatz1
->z轴
,固定长度500
- 添加自定义代码块处理数据
- 代码块内容见波形数据处理
- 因为心率波形分析的算法在第三方包实现,所以需要添加第三方的依赖,内容如下
- 依赖名称
sensor_measures_hr_flutter_package
- git地址
https://github.com/nonagontech/sensor-measures-hr-flutter-package.git
- ref
051c4e571ce9e43d897f0d511b76bff40572b328
- 依赖名称
- 添加官方依赖
- 依赖名称
ffi
- 版本号
2.1.3
- 依赖名称
- 选中
stop
按钮并在右侧属性界面中打开流程图,添加动作并选择操作类型为停止数据监听
开启流程图
波形数据处理
datahandle(double value) {
int dataLength = 500;
double a = firFilterLib(value);
CHATZ1.add(a);
setState(() {
CHATZ.add(a);
if (CHATZ.length >= 500) {
CHATZ.removeAt(0);
}
});
if (CHATZ1.length % 100 == 0) {
ffi.Pointer<ffi.Double> _dataPtr = calloc<ffi.Double>(dataLength + 5);
for (int i = 0; i < CHATZ.length; i++) {
_dataPtr[i] = CHATZ[i];
}
heartrate = hrAlgorithimLib(_dataPtr, CHATZ.length, 100);
}
}
添加自定义代码块
源码下载
点击AiFlutter低代码平台顶部的下载源码按钮,直接将源码下载到本地
App下载
对于没有Flutter开发环境的同学来说,可以直接下载App到手机中安装使用。
下载流程如下:
点击AiFlutter低代码平台顶部的下载应用按钮,跳出下载应用配置弹窗
选择Android开发平台后点击下载按钮,页面跳转到打包日志界面
等待App打包直到打包完成。点击下载按钮即可将App下载到本地