# 新闻阅读类行业实践 **Repository Path**: zeyuli981029/News_Framework_Code_V1 ## Basic Information - **Project Name**: 新闻阅读类行业实践 - **Description**: 新闻阅读类行业实践 https://developer.huawei.com/consumer/cn/doc/architecture-guides/practice-news-app-architecture-v1-0000001938013088 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-05-29 - **Last Updated**: 2025-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 简介 本设计为新闻日报类应用APP的鸿蒙化架构设计实践,应用设备形态只有手机端,提供新闻日报类应用常见的新闻资讯展示,新闻视频播放,用户评论互动等应用功能。 - Stage开发模型+声明式UI开发方式。 - 按照应用设备形态,规划一个手机设备Entry类型HAP包。 - 本实践性能优先,应用程序包大小可控,且无单独加载模块场景,业务模块包类型采用HAR包。 ## 应用布局 > 说明 > > 实践应用框架代码运行图,开发者可以基于框架代码替换相关资源文件,以保证应用良好的使用体验。 - 应用首页采用各类APP常见页面导航布局。 - 首页底部导航包含新闻,视频,直播,我的四个功能入口,分别对应四个功能模块。 - 新闻页面上部是新闻分类,包括:头条、体育、时政等,用户可以根据自己的喜好进行切换。 - 新闻详情页下面是用户互动区域,用户可以针对新闻进行评论、收藏、点赞、转发等。 - 我的页是用户账号管理,包括:用户账号登录,用户的评论记录、用户的收藏记录等。 ![img](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20241021160803.19352809076523420792125209139046:50001231000000:2800:9C338DDB0D29FEC541E530C6370AE22DE400CF285C62E1BEADB2D97F1B34D66D.gif?needInitFileName=true?needInitFileName=true) ## 应用架构设计 ### 模块划分 根据行业应用的功能,按照高内聚,低耦合的原则,常见新闻日报类应用功能以及职责划分模块如下,开发者在实际设计过程中,可以根据模块的复杂程度实际情况再进一步细分: | 模块名称 | 功能点 | | -------- | ------------------------------------------ | | 新闻 | 新闻列表、新闻详情、新闻分类等 | | 视频 | 视频列表、视频播放等 | | 直播 | 直播列表等 | | 我的 | 用户登录、账号管理,用户评论、点赞、收藏等 | ### 软件视图设计 应用分层模块类型划分指导,参见[分层模块化实践](https://developer.huawei.com/consumer/cn/doc/architecture-guides/practice-common-app-layered-v1-0000001916033058)。 产品定制层:本实践只涉及手机端,设计为一个Hap,包含页面框架、导航、手机独有资源等。 基础特性层:“新闻”、“视频”、“直播”、“我的” 等功能模块设计为Har包,被上层引用。 公共能力层:本实践将“账号”、“网络交互”、“DFX”等基础公共模块打包为Har包被上层业务组件引用。 **图1** 软件视图 ![点击放大](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20241021160803.85707625833617616152328973195432:50001231000000:2800:8A2C9F36F8C2CA7BA802F50A4C23723931EAF6AD564F6D973465AD051716886D.png?needInitFileName=true?needInitFileName=true) ## 逻辑视图设计 根据本应用功能的模块以及依赖,分解对原生基础服务以及三方的依赖,逻辑视图如下: **图2** 逻辑视图 ![点击放大](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20241021160803.22198192720595219809595299934201:50001231000000:2800:B0FA9051EFD12DB0A469B43FB6F69163F9DB1F9A76C7FFD55BDAFDC77483050B.png?needInitFileName=true?needInitFileName=true) ## 工程目录 ``` common/src/main/ets/ |---components // 基础组件 | |---CommonWeb.ets // 通用web | |---LocalList.ets // 本地生活列表组件 |---constants // 通用常量 | |---BreakpointConstants.ets // 断点 | |---CommonConstants.ets // 通用样式 | |---StyleConstants.ets // 通用样式 |---preferences //首选项 |---|---Preferences.ets //首选项 |---utils // 通用工具类 | |---BreakpointSystem.ets // 断点系统管理 | |---BreakpointType.ets // 断点类型 | |---CommonDataSource.ets // 通用数据管理 | |---HttpUtil.ets // http请求 | |---Logger.ets // 日志 |---viewmodel // 数据模型 | |---LocalDataModel.ets // 本地生活model | |---NewsData.ets // 新闻model | |---NewsDataSource.ets // 新闻数据model | |---VideoModel.ets // 视频model | |---ViewData.ets // 视频model feature: live/src/main/ets/ |---components | |---Live.ets // 直播页 news/src/main/ets/ |---components | |---AllClass.ets // 所有分类 | |---Comment.ets // 新闻评论 | |---PullToRefreshNews.ets // 新闻首页 | |---NewsContent.ets // 新闻详情 |---viewmodel | |---NewsModel.ets // 新闻model personal/src/main/ets/ |---components | |---Personal.ets //个人中心 |---viewmodel | |---QuitLoginDialog.ets // 退出登录弹窗 vedio/src/main/ets/ |---components | |---Vedio.ets //视频页 product/phone: src/main/ets/ |---constants | |---PageConstants.ets // 页面常量 | |---CommonConstants.ets // 页面常量 |---entryability | |---EntryAbility.ets |---entrybackupability | |---EntryBackupAbility.ets |---pages | |---MainPage.ets // 首页 | |---SplashPage.ets // 开屏页面 | |---LoginPage.ets // 登录页面 | |---VerifyPage.ets // 注册页面 |---database | |---tables // 主页model |---|---|---AccountTable.ets // 工具类 |---|---Rdb.ets //rdb数据库 |---viewmodel | |---AccountInfo.ets // 页面常量 | |---ConstantsInterface.ets // 页面常量 | |---MainPageData.ets // 主页model ```