HarmonyOS鸿蒙NEXT开发案例:餐饮行业官方模板介绍(Part1:美食菜谱模板)

HarmonyOS鸿蒙NEXT开发案例:餐饮行业官方模板介绍(Part1:美食菜谱模板) 鸿蒙生态市场

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

一、概述

  1. 行业洞察

    1)行业痛点:

    • 内容质量参差不齐:网络菜谱步骤描述模糊,用料配比不精确,成功率低
    • 个性化不足:缺乏根据用户口味偏好、饮食限制(素食/低糖/无麸质)的智能推荐
    • 购物不便:菜谱食材无法一键购买,特殊调料难以配齐
    • 数据价值未挖掘:用户烹饪行为数据未形成精准画像
    • 互动体验差:用户作品分享渠道单一,缺乏专业厨师点评指导
  2. 优秀案例概览

    基于以上行业分析,本期将介绍鸿蒙生态市场餐饮行业模板——美食菜谱应用模板,为行业提供常用功能的开发案例,涵盖分类搜索、作品分享、菜谱用料、热量计算、饮食计划等多个实用功能。

    • Stage开发模型 + 声明式UI开发范式
    • 分层架构设计 + 组件化拆分,支持开发者在开发时既可以选择完整使用模板,也可以根据需求单独选用其中的业务组件
    • 集成华为账号、支付等服务,只需做少量配置和定制即可快速实现华为账号的登录、菜谱上传等功能

    基于本模板构建的【XX菜谱】应用已正式发布上线,开发者反馈模板高度适配业务需求,显著提升了团队开发效率。

首页 分类 热量计算 我的
首页 分类 热量计算 我的

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

功能一级 功能二级 功能三级 具体描述
开屏页 应用启动时的初始页面
广告 展示广告内容
首页 banner 展示轮播图或推荐内容
搜索 提供搜索功能
分类搜索 综合搜索 按综合条件搜索菜谱
收藏最多 展示收藏最多的菜谱
浏览最多 展示浏览最多的菜谱
菜谱瀑布流 以瀑布流形式展示菜谱
博主详情 展示博主的详细信息
博主关注 提供关注博主的功能
分类 分类列表 展示菜谱分类
菜谱详情 收藏 收藏菜谱的功能
加入菜篮子 将菜谱加入菜篮子
菜篮子 全部用料 展示菜篮子中所有用料
菜谱用料 展示特定菜谱的用料
菜谱新增用料 添加新用料到菜谱
删除菜谱 从菜篮子中删除菜谱
热量计算 日/周热量 展示每日或每周的热量摄入
饮食计算 管理饮食计划 管理个人饮食计划
食物自定义重量 自定义食物重量
搜索食物 搜索特定食物
添加自定义食物 添加自定义食物到饮食计划
我的 用户信息 登录 用户登录功能
用户信息 展示用户信息
开通会员 开通会员功能
支付 会员支付功能
我的菜谱 新增菜谱 添加新菜谱
我的收藏 展示用户收藏的菜谱
服务 浏览记录 展示用户浏览记录
菜篮子 展示用户菜篮子内容
设置 个人信息
隐私协议
用户协议
清除缓存
退出登录
通知 展示系统或用户通知

二、应用架构设计

1. 分层模块化设计

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

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

    • 本实践的基础特性层将应用底部导航栏的每个选项拆分成一个独立的业务功能模块,包含首页、分类、热量计算和我的。
    • 每个功能模块都具备高内聚、低耦合、可定制的特点,支持产品的灵活部署。
  • 公共能力层: 存放公共能力,包括公共UI组件、数据管理、外部交互和工具库等共享功能。

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

    分层模块化设计

本模板整体工程共分为7个包, 详细工程结构可见工程结构章节。

2. 业务组件设计

为支持开发者单独获取特定场景的页面和功能,例如开发者已搭建了一个自己的美食菜谱元服务工程,只想单独取用本模板中的菜篮子或热量计算功能,本模板将功能完全自闭环的部分能力抽离出独立的行业组件模块,不依赖公共基础能力包,开发者可以单独集成,开箱即用,降低使用难度。

业务组件设计

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

  1. 账号管理 1)场景说明 2)技术方案
  2. 分类搜索 1)场景说明 2)技术方案
  3. 饮食计划 1)场景说明 2)技术方案
  4. 热量计算 1)场景说明 2)技术方案

四、模板代码

1. 工程结构

详细代码结构如下所示:

Recipes
  ├─commons/commonlib/src/main
  │  ├─ets
  │  │  ├─components
  │  │  │      BaseHeader.ets                 // 一级页面标题组件
  │  │  │      BuildTitleBar.ets              // 二级页面标题组件
  │  │  │      HeaderMenuBuilder.ets          // 标题菜单内容组件
  │  │  │      MenuItemBuilder.ets            // 下拉菜单选项
  │  │  ├─constants
  │  │  │      CommonContants.ets             // 公共常量
  │  │  │      CommonEnums.ets                // 公共枚举值
  │  │  ├─types
  │  │  │      Types.ets                      // 公共抽象类
  │  │  └─utils
  │  │         AccountUtil.ets                // 账号工具类
  │  │         DialogUtil.ets                 // 弹窗工具类
  │  │         FormatUtil.ets                 // 格式化工具类
  │  │         Logger.ets                     // 日志工具类
  │  │         PermissionUtil.ets             // 权限获取工具类
  │  │         PreferenceUtil.ets             // 数据持久化工具类
  │  │         RouterModule.ets               // 路由工具类
  │  │         WindowUtil.ets                 // 窗口管理工具类
  │  └─resources
  ├─commons/network/src/main
  │  ├─ets
  │  │  ├─apis
  │  │  │      APIList.ets                    // 网络请求API
  │  │  │      HttpRequest.ets                // 网络请求
  │  │  ├─mocks
  │  │  │  └─MockData
  │  │  │         Calories.ets                // 热量mock数据
  │  │  │         Mine.ets                    // 我的mock数据
  │  │  │         Notice.ets                  // 通知mock数据
  │  │  │         RecipeList.ets              // 菜谱mock数据
  │  │  │      AxiosMock.ets                  // mock请求
  │  │  │      RequestMock.ets                // mock API
  │  │  └─types
  │  │         Calories.ets                   // 热量抽象类
  │  │         Member.ets                     // 会员抽象类
  │  │         Notice.ets                     // 通知抽象类
  │  │         Recipe.ets                     // 菜谱抽象类
  │  └─resources
  │─components/aggregated_ads/src/main   
  │  ├─ets
  │  │  ├─common
  │  │  │      Constant.ets                   // 常量类
  │  │  ├─components
  │  │  │      AdServicePage.ets              // 广告服务组件
  │  │  │      HwAdService.ets                // 华为广告
  │  │  ├─util
  │  │  │      UIUtil.ets                     // UI工具类
  │  │  └─viewmodel
  │  │         AggreagetedAdVM.ets            // 广告页面数据模型
  │  └─resources
  │─components/aggregated_login/src/main   
  │  ├─ets
  │  │  ├─common
  │  │  │      Constant.ets                   // 常量类
  │  │  │      Logger.ets                     // 日志类
  │  │  ├─components
  │  │  │      AgreementDialog.ets            // 协议弹窗组件
  │  │  │      LoginService.ets               // 登录组件
  │  │  ├─model
  │  │  │      Index.ets                      // 数据类型
  │  │  │      WXApiWrap.ets                  // 微信登录数据类型
  │  │  └─viewmodel
  │  │         AggregatedLoginVM.ets          // 登录组件数据模型
  │  └─resources
  │─components/aggregated_payment/src/main   
  │  ├─ets
  │  │  ├─common
  │  │  │      Constant.ets                   // 常量类
  │  │  ├─components
  │  │  │      AggregatedPaymentPicker.ets    // 支付组件
  │  │  ├─model
  │  │  │      Index.ets                      // 数据类型
  │  │  │      WXApiWrap.ets                  // 微信支付数据类型
  │  │  └─viewmodel
  │  │         AggregatedPaymentVM.ets        // 支付组件数据模型
  │  └─resources
  │─components/base_ui/src/main   
  │  ├─ets
  │  │  ├─components
  │  │  │      BaseTabs.ets                   // Tabs组件
  │  │  └──types
  │  │         Index.ets                      // 数据类型
  │  └─resources
  │─components/calorie_calculation/src/main   
  │  ├─ets
  │  │  ├─components
  │  │  │      BarChart.ets                   // 协议弹窗组件
  │  │  │      CalorieCalculation.ets         // 热量计算组件
  │  │  │      CaloriesSummary.ets            // 热量汇总组件
  │  │  │      FoodDiary.ets                  // 饮食计划组件
  │  │  ├─types
  │  │  │      Index.ets                      // 数据类型
  │  │  └─viewModels
  │  │         CaloriesSummaryVM.ets          // 热量计算数据模型
  │  └─resources
  │─components/featured_recipes/src/main   
  │  ├─ets
  │  │  ├─components
  │  │  │      FeaturedRecipes.ets            // 菜谱瀑布流组件
  │  │  │      RecommendedCard.ets            // 菜谱卡片
  │  │  │─types
  │  │  │      Index.ets                      // 数据类型
  │  │  └─utils
  │  │         LazyDataSource.ets             // 懒加载对象
  │  │         Logger.ets                     // 日志工具
  │  │         ObservedArray.ets              // 数组监听工具
  │  └─resources
  │─components/home_search/src/main   
  │  ├─ets
  │  │  ├─components
  │  │  │      HomeSearch.ets                 // 搜索组件
  │  │  │      SearchKeys.ets                 // 热搜词组件
  │  │  │      SearchResult.ets               // 搜索结果组件
  │  │  └─types
  │  │         Index.ets                      // 数据类型
  │  └─resources
  │─components/link_category/src/main   
  │  ├─ets
  │  │  ├─components
  │  │  │      LinkCategory.ets               // 分类列表组件
  │  │  └─types
  │  │         Index.ets                      // 数据类型
  │  └─resources
  │─components/personal_homepage/src/main   
  │  ├─ets
  │  │  ├─components
  │  │  │     

更多关于HarmonyOS鸿蒙NEXT开发案例:餐饮行业官方模板介绍(Part1:美食菜谱模板)的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

更多关于HarmonyOS鸿蒙NEXT开发案例:餐饮行业官方模板介绍(Part1:美食菜谱模板)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS NEXT美食菜谱模板基于ArkTS语言开发,采用Stage模型与声明式UI架构。该模板集成了分布式数据管理能力,支持跨设备菜谱同步与收藏功能。通过自适应布局和响应式设计,实现手机、平板等多端统一体验。模板内置资源分类管理模块,提供本地化数据持久化方案。UI组件采用ArkUI开发,符合鸿蒙设计规范。

这个美食菜谱模板展示了HarmonyOS NEXT在餐饮行业的典型应用架构。采用Stage模型和声明式UI开发,分层架构设计合理,包含产品定制层、基础特性层和公共能力层。模板提供了完整的业务功能模块,如分类搜索、热量计算、菜篮子管理等,同时支持组件化拆分,开发者可以按需集成独立功能模块。

工程结构清晰,包含7个主要包,通过HAR包实现模块复用。关键特性包括华为账号登录、支付服务集成,以及mock数据支持快速原型开发。模板提供了两种集成方式:整体工程开发和按需组件集成,适配不同开发场景。

代码组织遵循HarmonyOS最佳实践,使用ViewModel进行数据管理,组件间耦合度低。对于已有项目的开发者,可以单独提取如热量计算、菜篮子等业务组件进行集成。

回到顶部