Ferry-200 5507d85142 添加开发文档和使用手册 7 bulan lalu
..
.vscode 13877f0a76 把项目移至 Flutter 目录下 8 bulan lalu
android 13877f0a76 把项目移至 Flutter 目录下 8 bulan lalu
assets 13877f0a76 把项目移至 Flutter 目录下 8 bulan lalu
ios c585a76448 iOS: 声明摄像头权限、把应用名改成 MaxKey 8 bulan lalu
lib c3ca555eab 去除预设主机地址的端口号,以免误导用户以为需要指定端口 8 bulan lalu
windows 13877f0a76 把项目移至 Flutter 目录下 8 bulan lalu
.metadata 13877f0a76 把项目移至 Flutter 目录下 8 bulan lalu
README.md 5507d85142 添加开发文档和使用手册 7 bulan lalu
analysis_options.yaml 13877f0a76 把项目移至 Flutter 目录下 8 bulan lalu
l10n.yaml 13877f0a76 把项目移至 Flutter 目录下 8 bulan lalu
pubspec.lock 13877f0a76 把项目移至 Flutter 目录下 8 bulan lalu
pubspec.yaml 13877f0a76 把项目移至 Flutter 目录下 8 bulan lalu

README.md

maxkey_flutter

MaxKey APP 客户端 Flutter 开发项目

功能

  • 账密登录
  • 保留登录状态
  • 账号信息
  • 扫码登录
  • 登出
  • TOTP 录入、展示和编辑
  • TOTP 与账号绑定的持久化
  • 检测 token 是否有效
  • 多语言
  • 切换日夜间模式
  • 指定主机和测试链接
  • 查看日志

编译帮助

  1. 安装 Flutter 开发环境 Install | Flutter。本项目使用 Flutter 3.24.1
  2. (可选)自定义主机地址。在 [lib/persistent.dart](lib/persistent.dart) 中修改 MaxKeyPersistent_DEFAULT_HOST
  3. 终端运行命令:
    1. 获取依赖库:flutter pub get
    2. 生成多语言文件:flutter gen-l10n
    3. 构建 Release(Android):flutter build apk。详见 Build and release an Android app
    4. 构建 Release(iOS)。详见 Build and release an iOS app

使用到的 Package

dio: 网络请求 go_router: 路由管理 mobile_scanner: 扫码 shared_preferences: 持久化 auth_totp: TOTP logger: 日志

目录结构

  • lib
    • l10n // 多语言
    • app_en.arb // 英语
    • app_zh.arb // 中文
    • maxkey // MaxKey API
    • maxkey.dart // MaxKey API 单例
    • services // MaxKey API(参照 maxkey-web-app/src/app/service
    • pages // 页面
    • app_color_scheme.dart // 从 MaxKey 图标生成的主题色
    • main.dart
    • persistent.dart // 持久化
    • repeat_tween_animation_builder.dart // 动画组件
    • totp.dart // TOTP 相关逻辑
    • utils.dart // Logger, route path, str extension