一,背景
数字时代,需要记住的密码太多,但是人一上了岁数记忆力难免下降,不得不借助第三方工具,不过第三方的工具又信不过,没办法自己开发一个吧。
二,功能规划
好的软件一定要简单,初步规划一共三个页面,登陆验证页面,密码展示列表,修改及创建页面。
登陆验证当前采用手势,可以扩展到指纹和人脸等。
密码记录留有名称、账号、密码、邮箱、手机、备注 等信息,基本够用了。
设置验证信息,包括手势,密码,指纹等。
导入或者导出也或者直接同步到云端。
可以搜索。
主流程就是:登陆-》展示当前已有密码-》(可以新建,可以修改,可以删除)
三,实现
使用flutter框架
1,手势识别 使用 gesture_recognition 这个插件,也是初始页面
2,验证成功 路由跳转到主界面
3,主界面 初始状态 从数据库读取所有密码
4,新建,修改,删除 共用同一个页面。根据初始时的type来 隐藏和显示按钮。
5,事件传递 使用 event_bus 这个插件,因为其它的不会
eventBus.on<CustomEvent>().listen((event) {
setState(() {
_eventInfo = event.info;
List<String> cmd = _eventInfo.split('_');
if (cmd.length != 2) return;
if (cmd.contains('get')) {
//查询
print('command get ' + cmd[1]);
_getItem(int.parse(cmd[1]));
} else if (cmd.contains('insert')) {
//新建
Navigator.push(context, MaterialPageRoute(builder: (context) {
return PwdInfoPage(
type: 1,
);
}));
} else if (cmd.contains('update')) {
//刷新
_getDataFromDb();
}
});
});
6,密码存储 使用sqlite 数据库 ,好像当前flutter 也就支持这个
7,密码直接存数据库,那岂不是很危险,使用AES 加个密
四,最终效果(只完成了主要功能)
扫码有惊喜: