一、项目结构概览

entry/
├── src/main/
│   ├── ets/
│   │   ├── entryability/     # 应用入口能力
│   │   ├── pages/            # 页面文件
│   │   └── model/            # 数据模型
│   ├── resources/            # 资源文件
│   └── module.json5          # 应用配置文件

二、核心代码功能详解

1. 数据模型层 (WordData.ets)
功能作用:

定义单词数据结构和管理逻辑

提供单词的增删改查操作

管理应用状态(当前单词、提醒状态等)

export class Word {
  id: number;          // 单词唯一标识
  spelling: string;    // 单词拼写
  meaning: string;     // 单词释义
  page: number;        // 单词所在页码
  
  // 构造函数:创建单词实例
  constructor(id: number, spelling: string, meaning: string, page: number)
}

export class WordManager {
  private words: Word[];        // 单词列表
  private currentIndex: number; // 当前显示单词的索引
  private reminderEnabled: boolean; // 提醒是否开启
  
  // 核心方法:
  getCurrentWord(): Word     // 获取当前显示的单词
  nextWord(): void          // 切换到下一个单词
  previousWord(): void      // 切换到上一个单词
  deleteCurrentWord(): boolean  // 删除当前单词
  addWord(spelling: string, meaning: string, page: number): void // 添加新单词
}

2. 主页面层 (Index.ets)
功能作用:

实现用户界面和交互逻辑

处理用户操作(点击、滑动等)

管理页面状态和数据显示

卡片展示功能

// 卡片区域布局
Stack() → Column() → 
  Text(单词拼写)       // 突出显示单词
  Divider()          // 分割线
  Text(单词释义)       // 显示中文释义
  Text(页码信息)       // 显示页码

特点:

使用阴影和圆角创建卡片效果

清晰的视觉层次(字体大小、颜色区分)

响应式设计适配不同屏幕

卡片更换功能

// 实现方式:
1. 点击卡片切换:TapGesture().onAction() → nextWord()
2. 按钮切换:"上一个"/"下一个"按钮 → previousWord()/nextWord()
3. 循环逻辑:currentIndex = (currentIndex + 1) % words.length

交互体验:

多种切换方式,操作便捷

无缝循环,学习不中断

实时更新页码指示器

单词删除功能
// 删除逻辑:
deleteCurrentWord() {
  1. 检查单词数量(至少保留1个)
  2. 从数组中移除当前单词
  3. 调整当前索引
  4. 显示Toast提示
}

复习提醒功能

// 提醒实现:
toggleReminder() {
  if (!reminderEnabled) {
    // 开启提醒
    1. 设置定时器(每天20:00)
    2. 发送系统通知
    3. 更新状态为开启
  } else {
    // 关闭提醒
    1. 取消定时器
    2. 取消所有通知
    3. 更新状态为关闭
  }
}

标题:单词记忆助手

正文:该复习单词啦!坚持每天学习才能进步哦!

附加信息:点击查看今日单词

3. 配置层
module.json5:

定义应用基本信息

配置通知权限(用户同意后才能发送提醒)

设置应用入口页面

strings.json:

管理所有文本资源

便于多语言支持

统一文本管理

三、用户体验设计

1. 视觉设计

  • 色彩方案

    • 主色调:蓝色(#007AFF)用于重要操作

    • 辅助色:绿色(#34C759)用于确认/成功操作

    • 警示色:红色(#FF6B6B)用于删除操作

    • 中性色:灰色系用于背景和辅助信息

  • 布局层次

    • 标题区域 → 卡片区域 → 控制区域 → 操作区域 → 说明区域

    • 清晰的视觉焦点和操作流程

2. 交互设计

  • 即时反馈:Toast提示、状态变化

  • 防误操作:删除保护、输入验证

  • 操作便捷:多种切换方式、一键操作

3. 状态管理

@State currentWord: Word        // 当前显示单词
@State currentIndex: number     // 当前索引
@State totalWords: number       // 总单词数
@State reminderEnabled: boolean // 提醒状态
@State showAddDialog: boolean   // 对话框显示状态

四、技术特点


1. 鸿蒙特性应用
声明式UI:使用ArkTS声明式语法

组件化开发:模块化的组件结构

状态驱动:@State装饰器管理状态变化

资源管理:统一资源文件管理

2. 性能优化


数据管理:局部状态更新,避免全局重渲染

事件处理:合理的事件绑定和解绑

资源使用:按需加载和释放资源

3. 可扩展性


模块设计:数据、UI、逻辑分离

易于维护:清晰的代码结构和注释

功能扩展:方便添加新功能(如单词编辑、学习统计等)

五、运行流程


启动应用 → 初始化数据 → 显示第一个单词
    ↓
用户操作:
1. 点击卡片 → 显示下一个单词
2. 点击删除 → 移除当前单词
3. 点击添加 → 弹出输入对话框
4. 点击提醒 → 开启/关闭每日提醒
    ↓
实时更新UI状态和数据显示


六、总结


这个鸿蒙单词记忆助手应用实现了:

完整的学习功能:展示、切换、删除、添加单词

良好的用户体验:直观的界面、流畅的交互

实用的辅助功能:每日提醒、输入验证

标准的鸿蒙应用架构:符合鸿蒙开发规范和最佳实践

应用适合英语学习者使用,通过卡片式学习和定时提醒,帮助用户有效记忆单词,培养良好的学习习惯。代码结构清晰,易于理解和扩展,可以作为学习鸿蒙应用开发的参考示例

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐