开源鸿蒙跨平台Flutter开发:备忘录小工具应用
摘要: 开源鸿蒙跨平台社区推出了一款基于Flutter开发的备忘录小工具,支持快速记录灵感、管理待办事项,并提供语音输入和提醒功能。系统采用分层架构(UI层、业务逻辑层、数据层),核心模块包括笔记管理(增删改查)、分类管理(多类型标签)、语音输入(模拟识别)和提醒设置(日期/时间选择)。技术栈选用Flutter 3.10+和Dart 3.0+实现跨平台兼容,Material Design 3规范U
欢迎加入开源鸿蒙跨平台社区:
https://openharmonycrossplatform.csdn.net
1. 项目概览
运行效果图




备忘录小工具是一款专为快速记录和管理个人信息设计的移动应用,旨在帮助用户捕捉灵感、管理待办事项,并通过提醒功能确保重要事情不被遗忘。
- 核心功能:快速记录灵感、待办事项、支持语音输入、设置提醒、重要事情不忘记
- 应用场景:日常笔记、灵感捕捉、任务管理、重要事件提醒
- 目标用户:学生、职场人士、创意工作者、需要管理个人事务的人群
2. 系统架构与技术选型
2.1 技术栈
| 技术/框架 | 版本 | 用途 | 来源 |
|---|---|---|---|
| Flutter | 3.10+ | 跨平台应用开发 | Flutter官网 |
| Dart | 3.0+ | 应用开发语言 | Dart官网 |
| Material Design 3 | - | UI设计规范 | Material Design |
| intl | ^0.18.0 | 日期时间格式化 | pub.dev |
2.2 系统架构
2.3 模块划分
| 模块 | 主要职责 | 文件位置 | 说明 |
|---|---|---|---|
| 笔记管理 | 创建、编辑、删除笔记 | lib/main_note_taker.dart | 核心功能模块 |
| 分类管理 | 管理笔记分类 | lib/main_note_taker.dart | 支持多种笔记类型 |
| 语音输入 | 语音转文字功能 | lib/main_note_taker.dart | 支持语音添加笔记 |
| 提醒管理 | 设置和管理提醒 | lib/main_note_taker.dart | 确保重要事项不忘记 |
| 数据存储 | 存储和同步数据 | lib/main_note_taker.dart | 支持本地存储和云同步 |
3. 核心功能模块
3.1 笔记管理
功能说明:用户可以快速创建、编辑和删除笔记,支持不同类型的笔记管理。
实现思路:
- 使用
Note类表示笔记,包含标题、内容、类型、提醒等信息 - 支持笔记的创建、删除和状态更新
- 提供笔记列表展示和详情查看
核心代码:
class Note {
final String id;
final String title;
final String content;
final NoteType type;
final bool isReminderSet;
final DateTime? reminderTime;
final DateTime createdAt;
final DateTime updatedAt;
final bool isCompleted;
Note({
required this.id,
required this.title,
required this.content,
required this.type,
this.isReminderSet = false,
this.reminderTime,
DateTime? createdAt,
DateTime? updatedAt,
this.isCompleted = false,
}) : createdAt = createdAt ?? DateTime.now(),
updatedAt = updatedAt ?? DateTime.now();
// 其他方法...
}
3.2 分类管理
功能说明:提供多种笔记分类,方便用户对笔记进行组织和管理。
实现思路:
- 使用
NoteType枚举定义预设分类 - 每个分类包含名称、emoji和颜色
- 支持按分类查看和管理笔记
核心代码:
enum NoteType {
灵感(label: '灵感', emoji: '💡', color: Colors.yellow),
待办事项(label: '待办事项', emoji: '✅', color: Colors.green),
笔记(label: '笔记', emoji: '📝', color: Colors.blue),
重要(label: '重要', emoji: '⭐', color: Colors.red),
其他(label: '其他', emoji: '📌', color: Colors.grey);
final String label;
final String emoji;
final Color color;
const NoteType({
required this.label,
required this.emoji,
required this.color,
});
}
3.3 语音输入
功能说明:支持语音输入添加笔记,提高用户操作效率。
实现思路:
- 提供语音输入按钮,切换语音输入模式
- 模拟语音识别功能,实际项目中可集成语音识别API
核心代码:
TextField(
controller: _contentController,
decoration: InputDecoration(
labelText: '内容',
hintText: '输入笔记内容',
suffixIcon: IconButton(
icon: Icon(_isVoiceInput ? Icons.mic : Icons.keyboard),
onPressed: () {
setState(() {
_isVoiceInput = !_isVoiceInput;
});
if (_isVoiceInput) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('语音输入已开启')),
);
}
},
),
),
maxLines: 4,
),
3.4 提醒管理
功能说明:支持为重要笔记设置提醒,确保用户不会忘记重要事项。
实现思路:
- 提供日期和时间选择器,设置提醒时间
- 支持查看所有设置了提醒的笔记
- 模拟提醒通知功能
核心代码:
void _setReminder(String noteId) {
showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime.now(),
lastDate: DateTime.now().add(const Duration(days: 365)),
).then((selectedDate) {
if (selectedDate != null) {
showTimePicker(
context: context,
initialTime: TimeOfDay.now(),
).then((selectedTime) {
if (selectedTime != null) {
final reminderTime = DateTime(
selectedDate.year,
selectedDate.month,
selectedDate.day,
selectedTime.hour,
selectedTime.minute,
);
setState(() {
final index = _notes.indexWhere((note) => note.id == noteId);
if (index != -1) {
_notes[index] = _notes[index].copyWith(
isReminderSet: true,
reminderTime: reminderTime,
updatedAt: DateTime.now(),
);
}
});
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('提醒已设置')),
);
}
});
}
});
}
3.5 待办事项管理
功能说明:支持创建和管理待办事项,标记完成状态。
实现思路:
- 为待办事项类型的笔记添加完成状态
- 提供复选框,方便用户标记完成状态
- 在笔记列表中显示待办事项的完成状态
核心代码:
void _toggleNoteCompleted(String noteId) {
setState(() {
final index = _notes.indexWhere((note) => note.id == noteId);
if (index != -1) {
_notes[index] = _notes[index].copyWith(
isCompleted: !_notes[index].isCompleted,
updatedAt: DateTime.now(),
);
}
});
}
4. 核心 API/类/函数
4.1 NoteTakerApp
说明:应用的主入口类,配置应用主题和初始页面。
参数:无
返回值:Widget - 应用根组件
核心方法:
build(BuildContext context): 构建应用UI,配置主题和路由
4.2 NoteTakerHomePage
说明:应用的主页面,包含笔记、分类、提醒和设置四个标签页。
参数:无
核心方法:
_addNote(): 添加新笔记_toggleNoteCompleted(String noteId): 切换待办事项的完成状态_deleteNote(String noteId): 删除笔记_setReminder(String noteId): 为笔记设置提醒_showAddNoteDialog(): 显示添加笔记的对话框
4.3 Note
说明:表示单个笔记,包含笔记的各种属性。
属性:
id: 笔记唯一标识符title: 笔记标题content: 笔记内容type: 笔记类型isReminderSet: 是否设置了提醒reminderTime: 提醒时间isCompleted: 待办事项是否完成
方法:
copyWith(): 创建笔记的副本,用于更新属性toJson(): 将笔记转换为JSON格式
4.4 NoteType
说明:笔记类型枚举,定义了预设的笔记分类。
值:
灵感: 创意灵感记录待办事项: 任务管理笔记: 普通笔记重要: 重要事项其他: 其他类型
属性:
label: 类型名称emoji: 类型表情符号color: 类型颜色
5. 技术实现路径
5.1 项目初始化
- 创建Flutter项目:使用Flutter CLI创建新项目
- 配置依赖:在pubspec.yaml中添加intl等必要的依赖
- 设置主题:配置Material Design 3主题
5.2 核心功能实现
-
数据模型设计:
- 定义NoteType枚举
- 实现Note类
-
主页面布局:
- 使用BottomNavigationBar实现标签页切换
- 设计笔记列表页面、分类页面、提醒页面和设置页面
-
笔记管理:
- 实现笔记的创建、删除功能
- 支持笔记列表展示
-
语音输入功能:
- 添加语音输入按钮
- 模拟语音识别功能
-
分类管理:
- 实现分类展示和统计
- 支持按分类查看笔记
-
提醒管理:
- 实现提醒设置功能
- 支持查看提醒列表
-
待办事项管理:
- 实现待办事项的完成状态切换
- 在界面上显示完成状态
5.3 测试与优化
- 功能测试:测试所有核心功能
- 性能优化:优化列表渲染和状态管理
- UI优化:确保界面美观、响应迅速
6. 界面设计
6.1 整体布局
- 底部导航栏:包含笔记、分类、提醒和设置四个标签
- 顶部AppBar:显示当前页面标题和操作按钮
- 内容区域:根据当前标签显示不同内容
- 浮动操作按钮:在笔记页面提供快速添加笔记的按钮
6.2 页面设计
| 页面 | 主要组件 | 功能 | 设计特点 |
|---|---|---|---|
| 笔记列表页 | 笔记卡片、浮动操作按钮 | 管理和查看笔记 | 卡片式设计,分类标签 |
| 分类管理页 | 分类网格 | 查看和管理分类 | 彩色图标,清晰分类 |
| 提醒页面 | 提醒列表 | 查看所有提醒 | 时间排序,突出显示 |
| 设置页面 | 设置项、关于信息 | 配置应用设置 | 简洁明了,功能清晰 |
6.3 交互设计
- 添加笔记:点击浮动操作按钮或使用语音输入
- 标记完成:点击待办事项的复选框
- 设置提醒:点击提醒按钮,选择日期和时间
- 删除笔记:点击删除按钮
- 切换分类:在分类页面点击分类卡片
7. 部署与集成方案
7.1 构建与打包
- Android:使用Flutter CLI构建APK或AAB
- iOS:使用Xcode构建IPA
- HarmonyOS:使用DevEco Studio构建HAP
7.2 数据存储
- 本地存储:使用SharedPreferences或SQLite存储数据
- 云同步:集成云存储服务,实现多设备同步
7.3 权限配置
- 麦克风权限:用于语音输入功能
- 通知权限:用于提醒功能
- 网络权限:用于云同步功能
8. 代码安全性
8.1 注意事项
- 数据安全:确保用户数据的安全存储
- 权限管理:合理申请和使用系统权限
- 输入验证:验证用户输入,防止恶意数据
- 错误处理:妥善处理异常情况
8.2 解决方案
- 数据加密:对敏感数据进行加密存储
- 权限请求:使用Flutter的权限管理库,遵循最佳实践
- 输入验证:在添加笔记时验证输入内容
- 错误捕获:使用try-catch捕获异常,提供友好的错误提示
9. 扩展与维护
9.1 功能扩展
- 云同步:实现笔记的云端同步,支持多设备访问
- 标签系统:添加标签功能,更灵活地组织笔记
- 搜索功能:支持笔记内容搜索
- 导出功能:支持将笔记导出为多种格式
- 备份恢复:支持笔记数据的备份和恢复
9.2 维护建议
- 定期更新:保持应用更新,修复bug和添加新功能
- 用户反馈:收集用户反馈,持续改进应用
- 性能监控:监控应用性能,优化用户体验
- 文档维护:保持文档更新,方便团队协作
10. 总结与亮点回顾
10.1 项目总结
备忘录小工具应用是一款功能完整、用户友好的笔记管理工具,通过以下特点为用户提供便捷的笔记体验:
- 快速记录:支持快速创建笔记,捕捉瞬间灵感
- 语音输入:支持语音添加笔记,提高操作效率
- 分类管理:提供多种笔记分类,方便组织和管理
- 提醒功能:支持为重要笔记设置提醒,确保不忘记重要事项
- 待办事项:支持创建和管理待办事项,标记完成状态
- 美观界面:采用Material Design 3设计,界面美观、响应迅速
10.2 技术亮点
- 模块化设计:采用清晰的模块化结构,代码组织合理
- 响应式布局:适配不同屏幕尺寸,提供一致的用户体验
- 状态管理:使用setState进行状态管理,简单高效
- 数据模型:设计合理的数据模型,支持复杂的笔记场景
- 用户交互:提供流畅的用户交互,增强用户体验
- 日期时间处理:使用intl库处理日期时间格式化
10.3 应用价值
- 提高效率:快速记录和管理信息,提高工作和学习效率
- 捕捉灵感:随时记录创意灵感,避免灵感流失
- 管理任务:有效管理待办事项,提高任务完成率
- 避免遗忘:通过提醒功能,确保重要事项不被遗忘
- 组织信息:通过分类功能,更好地组织和管理个人信息
备忘录小工具应用不仅是一款实用的工具,更是个人知识管理的好帮手,通过技术手段让信息管理变得更加轻松高效。
更多推荐


所有评论(0)