鸿蒙生态市场

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

一、概述

  1. 行业洞察(待补充)

    1)行业痛点

  2. 优秀案例概览

    基于以上行业分析,本期将介绍鸿蒙生态市场购物类行业模板——优惠券元服务模板,为行业提供常用功能的开发案例,模板主要分首页、订单和我的三大模块

    • Stage开发模型 + 声明式UI开发范式

    • 分层架构设计 + 组件化拆分,支持开发者在开发时既可以选择完整使用模板,也可以根据需求单独选用其中的业务组件

    • 本模板已集成华为账号等服务,只需做少量配置和定制即可快速实现华为账号的登录

首页 订单 我的

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

优惠券模板
 |-- 首页
 |    |-- 顶部广告
 |    |-- 为你推荐
 |    |-- 新品上市
 |    └-- 时尚秋装
 |-- 订单
 |    |-- 发货自提
 |    |     |-- 发货方式
 |    |     └-- 收货信息
 |    └-- 订单信息
 |          |-- 商品规格
 |          |-- 配送服务
 |          |-- 选择优惠券入口
 |          |-- 订单总金额(含减免)
 |          └-- 备注信息
 └-- 我的
      |-- 关联账号
      |-- 分类订单
      └-- 常用服务
           |-- 全部优惠券入口
           |-- 地址管理
           |-- 客服中心
           └-- 个人信息

二、应用架构设计

1. 分层模块化设计

  • 产品定制层:专注于满足不同设备或使用场景的个性化需求,作为应用的入口,是用户直接互动的界面。

    • 本实践暂时只支持直板机,为单HAP包形式,包含路由根节点、底部导航栏等。
  • 基础特性层:用于存放相对独立的功能UI和业务逻辑实现。

    • 本实践的基础特性层将应用底部导航栏的每个选项拆分成一个独立的业务功能模块。

    • 每个功能模块都具备高内聚、低耦合、可定制的特点,支持产品的灵活部署。

  • 公共能力层:存放公共能力,包括公共UI组件、数据管理、外部交互和工具库等共享功能。

    • 本实践的公共能力层分为公共基础能力和可分可合组件,均打包为HAR包被上层业务组件引用。
    • 公共基础能力包含日志、文件处理等工具类,公共类型定义,网络库,以及弹窗、加载等公共组件。
    • 可分可合组件将包含行业特点、可完全自闭环的能力抽出独立的组件模块,支持开发者在开发中单独集成使用,详见业务组件设计章节。

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

2. 业务组件设计

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

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

  1. 账号管理

    1)场景说明

    2)技术方案

  2. 广告推荐

    1)场景说明

    2)技术方案

  3. 订单信息

    1)场景说明

    2)技术方案

  4. 优惠券管理

    1)场景说明

    2)技术方案

四、模板代码

1. 工程结构

详细代码结构如下所示:

CouponsModule
  |- commons                                       // 公共层
  |   |- commonlib/src/main/ets                    // 公共工具模块(har)
  |   |    |- constants 
  |   |    |     CommonContants.ets                // 公共常量
  |   |    |- models
  |   |    |     FullLoading.ets                   // 网络请求弹窗
  |   |    |     Router.ets                        // 路由管理工具
  |   |    |- types 
  |   |    |     Types.ets                         // 公共类型
  |   |    └- utils 
  |   |          CommonUtil.ets                    // 设备配置工具
  |   |          Logger.ets                        // 日志管理工具
  |   |  
  |   |- componentlib/src/main/ets                 // 公共组件模块(har)
  |   |     └- components 
  |   |          CommonHeader.ets                  // 公共标题栏         
  |   |   
  |   └- network/src/main/ets                      // 网络模块(har)
  |        |- apis                                 // 网络接口  
  |        |- mocks                                // 数据mock   
  |        |- models                               // 网络库封装    
  |        └- types                                // 请求和响应类型   
  |
  |- features/other
  |   └- scenes/src/main/ets                       // 优惠券使用场景
  |        └- pages                     
  |              HomePage.ets                      // 首页        
  |              MinePage.ets                      // 我的        
  |              OrderPage.ets                     // 订单        
  |- features/service
  |   └- coupons/src/main/ets                      // 优惠券核心模块
  |        |- components 
  |        |     CouponCardComp.ets                // 优惠券单体卡片
  |        |     TabComp.ets                       // 动画条Tab组件
  |        |- constants 
  |        |     Constants.ets                     // 默认页签和样式
  |        |- pages
  |        |     MyCouponsPage.ets                 // 全部优惠券页面
  |        |     SelectCouponsPage.ets             // 选择优惠券页面
  |        |- types 
  |        |     Types.ets                         // 界面样式类型和优惠券接口类型
  |        └- utils 
  |              Utils.ets                         // 获取数据和样式内容方法
  └- products                                      // 产品层  
      └- phone/src/main/ets                        // 主包(hap)                                                     
           |- constants                            // Tabs配置
           |- entryability                         // 生命周期管理                                            
           └- pages                              
                 MainEntry.ets                     // 主页面

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参考和示例代码,将组件集成在自己的对应场景中。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐