project-structure.mdc 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. ---
  2. description: TTMusic项目结构与关键文件指南
  3. globs: ["**/*.ets", "**/*.ts"]
  4. alwaysApply: true
  5. ---
  6. # TTMusic项目结构与关键文件指南
  7. ## 项目概述
  8. TTMusic是一个基于鸿蒙ArkTS开发的音乐播放器应用,支持本地音乐播放、歌词显示、主题切换等功能。
  9. ## 核心目录结构
  10. ### 1. 应用入口
  11. - `entry/src/main/ets/entryability/EntryAbility.ets` - 应用入口点
  12. - `entry/src/main/ets/MyAbilityStage.ets` - 应用生命周期管理
  13. ### 2. 页面组件
  14. - `entry/src/main/ets/pages/` - 所有页面组件
  15. - `MainIndex.ets` - 主页面,包含底部导航栏
  16. - `SplashIndex.ets` - 启动页
  17. - `SettingPage.ets` - 设置页面
  18. - `PlaylistDetailPage.ets` - 播放列表详情页
  19. - `UserCenter.ets` - 用户中心页面
  20. ### 3. 视图组件
  21. - `entry/src/main/ets/view/` - 可复用视图组件
  22. - 音乐播放控制组件
  23. - 歌词显示组件
  24. - 列表项组件
  25. ### 4. 视图模型
  26. - `entry/src/main/ets/viewmodel/` - 数据模型与业务逻辑
  27. - `MainViewModel.ets` - 主页面数据模型
  28. - `ItemData.ets` - 列表项数据模型
  29. - `Playlist.ets` - 播放列表模型
  30. ### 5. 控制器
  31. - `entry/src/main/ets/controller/` - 控制器层
  32. - `AvSessionController.ets` - 音频会话控制器
  33. - `KnockController.ets` - 敲击检测控制器
  34. ### 6. 公共资源
  35. - `entry/src/main/ets/common/` - 公共工具和常量
  36. - `AppTheme.ets` - 主题配置
  37. - `PlayStatus.ets` - 播放状态枚举
  38. - `constants/CommonConstants.ets` - 通用常量
  39. - `util/` - 工具类集合
  40. ### 7. 对话框
  41. - `entry/src/main/ets/dialog/` - 对话框组件
  42. - `PlaylistDialog.ets` - 播放列表对话框
  43. - `UserPrivacyDialog.ets` - 用户隐私对话框
  44. ### 8. 原生模块
  45. - `ijkplayer/` - FFmpeg播放器原生模块
  46. - `lib/` - 歌词解析库
  47. ## 关键文件说明
  48. ### 主题系统
  49. 项目支持多主题切换,主题配置在 `AppTheme.ets` 中定义:
  50. - `DefaultColors` - 默认浅色主题
  51. - `TwilightColors` - 暮色深色主题
  52. - `ForestColors` - 森林浅色主题
  53. - `CoralColors` - 珊瑚浅色主题
  54. - `MidnightColors` - 极夜深色主题
  55. ### 常量配置
  56. `CommonConstants.ets` 包含应用中使用的所有常量:
  57. - API端点
  58. - 文件格式支持列表
  59. - 播放状态枚举
  60. - 微信支付配置
  61. ### 日志系统
  62. 使用 `common/util/Logger.ets` 进行统一日志记录,基于鸿蒙系统的hilog实现。
  63. ## 开发注意事项
  64. 1. 所有页面组件应使用 `@Entry` 和 `@Component` 装饰器
  65. 2. 状态管理使用 `@State` 和 `@StorageProp` 装饰器
  66. 3. 遵循ArkTS语法限制,特别是避免使用解构赋值和计算属性名
  67. 4. 使用项目定义的常量而非硬编码值
  68. 5. 遵循项目的命名规范和代码风格