HarmonyOS鸿蒙Next开发案例:生活服务类行业官方模板介绍 (Part1:日历应用模板)

HarmonyOS鸿蒙Next开发案例:生活服务类行业官方模板介绍 (Part1:日历应用模板)

鸿蒙生态市场

💡摘要: 本模板来自华为生态市场(Huawei Partner Market),本文选取了生活服务类行业的一个官方模板——日历应用模板,并进行了简要的介绍与分析。各位开发者伙伴们,更多行业模板与组件请进入生态市场查看!

一、概述

  1. 优秀案例概览
    • Stage开发模型 + 声明式UI开发范式
    • 分层架构设计 + 组件化拆分,支持开发者在开发时既可以选择完整使用模板,也可以根据需求单独选用其中的业务组件
    • 本模板已集成华为账号等服务,只需做少量配置和定制即可快速实现华为账号的登录
万年历 黄历 我的
万年历 黄历 我的

本模板主要页面及核心功能如下所示:

日历模板
 |-- 万年历
 |    |-- 日历选择
 |    |-- 吉日查询
 |    |-- 日期计算
 |    |-- 节日节气
 |    └-- 宜忌展示
 |-- 黄历
 |    |-- 日期切换
 |    |-- 宜忌展示
 |    |-- 五行、冲煞 
 |    |-- 彭祖百忌
 └-- 我的
 |     |-- 个人信息
 |     └-- 设置
 |       └-- 主题切换
 |       └-- 隐私协议
 |       └-- 用户协议  

二、应用架构设计

1. 分层模块化设计

  • 产品定制层: 专注于满足不同设备或使用场景的个性化需求,作为应用的入口,是用户直接互动的界面。
    • 本实践暂时只支持直板机,为单HAP包形式,包含路由根节点、底部导航栏等。
  • 基础特性层: 用于存放相对独立的功能UI和业务逻辑实现。
    • 本实践的基础特性层将应用底部导航栏的每个选项拆分成一个独立的业务功能模块。
    • 每个功能模块都具备高内聚、低耦合、可定制的特点,支持产品的灵活部署。
  • 公共能力层: 存放公共能力,包括公共UI组件、数据管理、外部交互和工具库等共享功能。
    • 本实践的公共能力层分为公共基础能力和可分可合组件,均打包为HAR包被上层业务组件引用。
    • 公共基础能力包含日志、文件处理等工具类,公共类型定义,网络库,以及弹窗、加载等公共组件。
    • 可分可合组件将包含行业特点、可完全自闭环的能力抽出独立的组件模块,支持开发者在开发中单独集成使用,详见业务组件设计章节。

本模板详细工程结构可见工程结构章节。

2. 业务组件设计

为支持开发者单独获取特定场景的页面和功能,本模板将功能完全自闭环的部分能力抽离出独立的行业组件模块,不依赖公共基础能力包,开发者可以单独集成,开箱即用,降低使用难度。

三、行业场景技术方案(待补充)

  1. 个人信息 1)场景说明 2)技术方案
  2. 黄历 1)场景说明 2)技术方案
  3. 万年历 1)场景说明 2)技术方案
  4. 节日节气 1)场景说明 2)技术方案

四、模板代码

1. 工程结构

详细代码结构如下所示:

Application
├──├──commons
│   ├──common                                // 公共能力层
│     ├──src/main/ets                        // 基础能力
│     │  └──components                       // 公共组件
│     │  └──dividerTmp                       // 下划线公共组件
│     │  └──https                            // 网络请求库
│     │  └──models                           // 公共接口常量
│     │  └──quickLogin                       // 华为账号一键登录
│     │  └──style                            // 公共样式
│     │  └──utils                            // 工具类
│     │  └──viewmodels                       // 接口层
│     └──Index.ets                           // 对外接口类
│  ├──router_module                          // 全局路由组件
├──├──components                             // 公共组件
│   ├──base_apis                             // 通用组件(模态框,弹窗,选择器等)
│   ├──base_calendar                         // 日历组件
│   ├──calendar_almanac                      // 黄历组件
│   ├──calendar_events                       // 重要提醒组件
│   ├──date_calculation                      // 日期计算组件
│   ├──festival_solar                        // 节日节气组件
│   ├──login_info                            // 登录组件组件
│   ├──vip_center                            // 开通会员组件
│   ├──traffic_restriction                   // 城市限行组件
│   ├──yiji_query                            // 宜忌查询组件
├──features                                  // 基础特性层
│  ├──almanac/src/main/ets                   // 黄历
│  │  ├──pages                               // 首页入口
│     │  ├──AlmanacView                      // 黄历入口
│  ├──almanac/src/main/resources             // 资源文件目录
│  ├──almanac/Index.ets                      // 对外接口类
│  ├──perpetual/src/main/ets                 // 万年历
│  │  ├──components                          // 万年历组件
│  │  ├──pages                               
│     │  ├──PerpetualCalendar                // 万年历组件入口
│  ├──perpetual/src/main/resources           // 资源文件目录
│  ├──perpetual/Index.ets                    // 对外接口类
│  ├──mine/src/main/ets                      // 我的(包含一键登录)
│  │  └──pages                               // 我的入口页
│     │  ├──MinePage                         // 登录
│  │  └──components                          // 我的页面入口
│  └──mine/src/main/resources                // 资源文件目录
└─product/entry/src/main   
   ├─ets
   │  ├─widget
   │  │  ├──pages            
   │  │      ├──WidgetCard.ets       // 服务卡片    
   │  ├─entryability
   │  │      ├──EntryAbility.ets             // 应用程序入口
   │  ├─page
   │  │  ├──Index.ets                        // 入口
   │  │  ├──PrivacyPage.ets                  // 隐私协议   
   │  │  ├──SafePage.ets                     // 隐私协议弹窗  
   │  │  ├──SplashPage.ets                   // 闪屏页        
   │  │  ├──TabContainer.ets                 // tab页入口
   └─resources

2. 关键代码解读(待补充)

  • 待补充

3. 模板集成

本模板提供了两种代码集成方式,供开发者自由使用。

1)整体集成

  • 开发者可以选择直接基于模板工程开发自己的应用工程。
  • 模板代码获取:
  • 打开模板工程,根据README说明中的快速入门章节,将自己的应用信息配置在模板工程内,即可运行并查看模板效果。
  • 对接开发者自己的服务器接口,转换数据结构,展示真实的云侧数据。
    • 将commons/lib_common/src/main/ets/httprequest/HttpRequestApi.ets文件中的mock接口替换为真实的服务器接口。
    • 在commons/lib_common/src/main/ets/httprequest/HttpRequest.ets文件中将云侧开发者自定义的数据结构转换为端侧数据结构。
  • 根据自己的业务内容修改模板,进行定制化开发。

2)按需集成

  • 若开发者已搭建好自己的应用工程,但暂未实现其中的部分场景能力,可以选择取用其中的业务组件,集成在自己的工程中。
  • 组件代码获取:
  • 下载组件源码,根据README中的说明,将组件包配置在自己的工程中。
  • 根据API参考和示例代码,将组件集成在自己的对应场景中。

更多关于HarmonyOS鸿蒙Next开发案例:生活服务类行业官方模板介绍 (Part1:日历应用模板)的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

鸿蒙Next日历应用模板基于ArkUI开发,提供日程管理核心功能。该模板包含日程添加、查看、编辑模块,采用声明式UI实现界面布局。数据管理使用分布式数据库,支持跨设备同步。模板已集成鸿蒙特性:原子化服务能力、卡片预览功能。UI组件采用方舟开发框架构建,适配多种设备尺寸。模板结构清晰,包含entry、feature、library分层,可直接基于模板进行二次开发。

更多关于HarmonyOS鸿蒙Next开发案例:生活服务类行业官方模板介绍 (Part1:日历应用模板)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个日历应用模板展示了HarmonyOS Next在生活服务类应用中的典型开发模式。模板采用分层架构设计,将功能模块化为万年历、黄历和个人中心三大模块,每个模块都可以独立集成使用。

技术实现上主要特点:

  1. 使用Stage模型+声明式UI开发范式
  2. 采用组件化设计,公共能力封装为HAR包
  3. 已集成华为账号登录等基础服务
  4. 支持服务卡片等HarmonyOS特色功能

工程结构清晰,分为产品定制层、基础特性层和公共能力层,开发者可以根据需要选择整体集成或按需集成特定组件。模板提供了完整的日历功能实现,包括日期计算、节日节气展示等常见场景,可以作为类似应用的开发参考。

回到顶部