鸿蒙 HarmonyOS NEXT应用开发案例集

✍️作者简介:小北编程(专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向)
博客主页: 开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN
如果文章对您有一定的帮助请关注✨、点赞、收藏、评论。
如需转载请参考【转载须知】

文章目录

  • 概述
    • 分层架构设计
      • 应用通用开发范例App分层架构
    • 模块化设计
      • 应用通用开发范例App模块化结构
    • 工程框架和实现设计
      • 产品定制层
      • 基础特性层
    • 公共能力层
    • 应用通用开发范例App模块整理
      • 1. 主页瀑布流实现案例
      • 2. 滑动页面信息隐藏与组件位移效果案例
      • 3. 地址交换动画案例
      • 4. 阻塞事件冒泡案例
      • 5. 自定义TabBar页签案例
      • 6. 二级联动实现案例
      • 7. 列表编辑实现案例
      • 8. MpChart图表实现案例
      • 9. 读取Rawfile中文件部分内容案例
      • 10. 图片缩放效果实现案例
      • 11. Axios获取解析网络数据案例
      • 12. Tab组件实现增删Tab标签方案案例
      • 13. 使用AKI轻松实现跨语言调用
      • 14. 多层嵌套类监听案例
      • 15. 图片选择和下载保存案例
      • 16. 应用异常处理案例
      • 17. 深色模式案例
      • 18. 跑马灯案例
      • 19. 下拉刷新上滑加载案例
      • 20. 翻页动效案例
      • 21. 在Native侧实现进度通知功能
      • 22. 验证码布局
      • 23. 使用弹簧曲线实现抖动动画及手机振动效果案例
      • 24. 自定义日历选择器
      • 25. 状态栏显隐变化案例
      • 26. 自定义视图实现Tab效果
      • 27. 听歌识曲水波纹特效案例
      • 28. 城市选择案例
      • 29. 组件堆叠案例
      • 30. 网格元素交换案例
      • 31. 折叠屏音乐播放器案例
      • 32. 发布图片评论案例
      • 33. 视频全屏切换案例
      • 34. 多层级轮播图案例
      • 35. Worker子线程中解压文件案例
      • 36. 使用绘制组件实现自定义进度动画
      • 37. Lottie动画
      • 38. 图片压缩方案
      • 39. 投票动效实现案例
      • 40. Web获取相机拍照图片案例
      • 41. SideBarContainer侧边栏淡入淡出动效实现案例
      • 42. 图片拖拽AI抠图案例
      • 43. swiper指示器导航点位于swiper下方
      • 44. 大文件拷贝案例
      • 45. 适配挖孔屏案例
      • 46. 左右拖动切换图片效果案例
      • 47. 元素超出List区域
      • 48. 多文件下载监听案例
      • 49. 搜索页一镜到底案例
      • 50. Navigation实现多设备适配案例
      • 51. 跨文件样式复用和组件复用
      • 52. NAPI封装ArkTS接口案例
      • 53. 手写绘制及保存图片
      • 54. swiper指示器导航点位于swiper下方
      • 55. 多模态页面转场动效实现案例
      • 56. 侧滑返回事件拦截案例
      • 57. ArkWeb同层渲染
      • 58. Web组件预览PDF文件实现案例
    • DEMO下载地址
    • 配套平台

概述

随着应用代码复杂度的提升,为了提高应用的可维护性和可扩展性,良好的应用架构设计显得尤为重要。本篇文章将介绍一个应用通用架构的设计思路,旨在减少模块间的耦合、提升团队开发效率,为开发者提供一个清晰且结构化的开发框架。本文以“应用通用开发范例App”为例,从分层架构设计和模块化设计两个方面介绍应用的架构组成。

分层架构设计

将应用划分为以下几个层级,可以降低层间的依赖性,从而提升代码的可维护性:

  • 公共能力层 (common):包括公共UI组件、数据管理、通信和工具库等。
  • 基础特性层 (feature):包含独立的业务模块,如启动页、登录模块、导航栏等。
  • 产品定制层 (product):作为不同设备或场景的应用入口,例如手机、电视等。
  • 三方依赖库 (libs)

应用通用开发范例App分层架构

common_app_development
|---AppScope
|---common    // 公共能力层
|---feature   // 基础特性层
|---libs      // 三方依赖库
|---product   // 产品定制层

模块化设计

应用被分解为多个功能模块,其中每个模块负责执行特定的功能。通过模块化设计提高了代码的可理解性和可复用性,使应用的扩展和维护变得更为简便,同时降低了系统各部分之间的耦合度。

应用通用开发范例App模块化结构

common_app_development
|---AppScope
|---common                          // 公共能力层
|   |---utils  
|   |   |---component               // 公共布局,如功能介绍布局
|   |   |---log                     // 日志打印 
|---feature                         // 基础特性层
|   |---addressexchange             // 地址交换动画案例
|   |---akiusepractice              // AKI使用实践
|   |---applicationexception        // 应用异常处理案例
|   |---barchart                    // MpChart图表实现案例
|   |---customtabbar                // 自定义TabBar页签 案例
|   |---eventpropagation            // 阻塞事件冒泡案例
|   |---fitfordarkmode              // 深色模式适配案例
|   |---functionalscenes            // 主页瀑布流实现 
|   |---gbktranscoding              // Axios获取网络数据案例
|   |---handletabs                  // Tab组件实现增删Tab标签案例
|   |---imageviewer                 // 图片预览方案
|   |---marquee                     // 跑马灯案例
|   |---modalwindow                 // 全屏登录页面案例
|   |---nativeprogressnotify        // Native侧进度通知到ArkTS
|   |---nativerawfile               // Native读取Rawfile中文件部分内容
|   |---navigationparametertransfer // Navigation页面跳转对象传递案例
|   |---pageturninganimation        // 翻页动效案例
|   |---pendingitems                // 列表编辑实现案例
|   |---photopickandsave            // 图片选择和下载保存案例
|   |---pulltorefreshnews           // 下拉刷新与上滑加载案例
|   |---secondarylinkage            // 二级联动实现案例
|   |---slidetohideanddisplace      // 滑动页面信息隐藏与组件位移效果案例
|   |---variablewatch               // 多层嵌套类对象监听案例
|   |---verifycode                  // 验证码布局
|   |---vibrateeffect               // 基础特性层-抖动动画及手机振动效果
|   |---customcalendarpickerdialog  // 基础特性层-自定义日历选择器
|   |---navigationbarchange         // 基础特性层-状态栏显隐变化案例
|   |---customview                  // 基础特性层-自定义视图实现Tab效果
|   |---waterripples                // 基础特性层-听歌识曲水波纹特效案例
|   |---citysearch                  // 城市选择案例
|   |---componentstack              // 组件堆叠案例
|   |---dragandexchange             // Grid和List内拖拽交换子组件位置案例
|   |---foldablescreencases         // 折叠屏音乐播放器案例
|   |---imagecomment                // 发布图片评论案例
|   |---mediafullscreen             // 视频全屏切换案例
|   |---swipercomponent             // 多层级轮播图案例
|   |---swipersmoothvariation       // Swiper高度可变化效果案例
|   |---decompressfile              // Worker子线程中解压文件案例
|   |---paintcomponent              // 使用绘制组件实现自定义进度动画案例
|   |---lottieview                  // Lottie动画库
|   |---imagecompression            // 图片压缩方案
|   |---votingcomponent             // 投票组件
|   |---webgetcameraimage           // WebView拉起原生相机案例
|   |---sidebaranimation            // SideBarContainer侧边栏淡入淡出动效实现案例
|   |---imageenableanalyzer         // 图片拖拽AI抠图案例
|   |---indicatorbelowswiper        // swiper指示器导航点位于swiper下方
|   |---bigfilecopy                 // 大文件拷贝案例
|   |---diggingholescreen           // 适配挖孔屏案例
|   |---dragtoswitchpictures        // 左右拖动切换图片效果案例
|   |---listitemoverflow            // 元素超出List区域
|   |---multiplefilesdownload       // 多文件下载监听案例
|   |---searchcomponent             // 搜索页一镜到底案例
|---libs
|---product 
|   |---entry                       // 产品定制层-应用入口

工程框架和实现设计

产品定制层

产品定制层专注于满足不同设备或使用场景(如应用/元服务)的个性化需求,包括U

你可能感兴趣的:(HarmonyOS,harmonyos,华为)