华为鸿蒙HarmonyOpenEye项目:开眼App的鸿蒙实现之旅

华为鸿蒙HarmonyOpenEye项目:开眼App的鸿蒙实现之旅

引言

在当今移动应用开发的浪潮中,鸿蒙系统凭借其独特的分布式能力和高效的开发框架,吸引了众多开发者的目光。今天要给大家介绍的是一个基于华为鸿蒙系统开发的开眼App项目——HarmonyOpenEye,它不仅展示了鸿蒙开发的强大功能,还为开发者提供了丰富的学习资源。
在这里插入图片描述

项目概述

HarmonyOpenEye是一个基于华为鸿蒙HarmonyOS Api9 + Stage模式 + ArkTs + ArkUI开发的开眼App。该项目实现了开眼App的主要功能,包括视频播放、列表刷新加载等,同时还封装了常用组件、网络请求、页面多状态管理等,为开发者提供了一个完整的开发范例。

项目功能亮点

  1. 常用组件提取:项目中提取了常用的组件,方便在不同页面复用,提高开发效率。
  2. 网络请求封装:基于axios对网络请求进行了基础封装,简化了网络请求的流程。
  3. 页面多状态管理:封装了项目页面的多状态,如加载中、成功、失败、空数据等,提升了用户体验。
  4. 视频播放功能:支持视频播放以及视频列表播放,为用户提供流畅的视频观看体验。
  5. 刷新加载示例:提供了列表页面刷新加载的示例,方便开发者实现类似功能。
  6. EventBus和Storage使用模板:新增了EventBus和Storage的使用模板,方便开发者进行事件传递和数据存储。
  7. 全局loading实现:添加了全局loading的实现,让用户在等待数据加载时能有更好的视觉反馈。
  8. mock接口登陆状态校验:实现了mock接口登陆状态校验和跳转登陆页面修改登陆状态的场景,方便开发者进行测试。

相关学习练手项目

除了鸿蒙版本的开眼App,项目作者还提供了其他一些学习练手的项目,涵盖了不同的技术栈:

  1. Flutter版本
    • 开眼App:https://github.com/WinWang/open_eye,使用getx + retrofit + dio + jsonserialize + 自定义控件。
    • 音乐播放App:https://github.com/WinWang/music_listener,使用getx + retrofit + dio。
  2. ReactNative版本:开眼App:https://github.com/WinWang/RNOpenEye,基于ReactNative - 0.72。
  3. React版本:开眼App:[https://github.com/WinWang/react - oepn - eye](https://github.com/WinWang/react - oepn - eye),使用React18 + React - Vant + Mobx + axios。
  4. Vue版本
    • Vue2版本WanAndroid:[https://github.com/WinWang/Vue - WanAndroid](https://github.com/WinWang/Vue - WanAndroid),使用Vue2 + vuex + vant + axios。
    • Vue3版本WanAndroid:[https://github.com/WinWang/Vue3 - wanAndroid](https://github.com/WinWang/Vue3 - wanAndroid),使用vue3 + typeScript + pinia + vant + vite。
  5. Android组件化项目
    • ReadingGallery:https://github.com/WinWang/ReadingGallery,使用jetpack + kotlin + koin + couroutine。
    • ApplicationInit:https://github.com/WinWang/ApplicationInit,使用gradle - plugin + 注解APT + ASM。

项目演示图片

项目README中提供了丰富的演示图片,展示了App的界面和功能,让开发者可以直观地了解项目的效果。
在这里插入图片描述

代码结构分析

根目录

  • .gitignore:指定了Git版本控制中需要忽略的文件和文件夹,如node_modulesoh_modules等。
  • hvigorfile.ts:用于编译构建行为的脚本,目前基于@ohos/hvigor - ohos - plugin,不能修改。
  • hvigorw.bat:Windows系统下的Hvigor启动脚本,用于执行构建任务。

entry目录

  • entry/.gitignore:指定了entry模块中需要忽略的文件和文件夹。
  • entry/hvigorfile.ts:entry模块的编译构建脚本,同样基于@ohos/hvigor - ohos - plugin
  • entry/src/main:主要的源代码目录。
    • entry/src/main/ets:TypeScript代码目录。
      • entry/src/main/ets/model:定义了项目中使用的数据模型,如TopicDetailModelFocusModelTopicModel等。
      • entry/src/main/ets/entryability:包含了应用的入口Ability类EntryAbility.ts,负责应用的生命周期管理和窗口创建。
      • entry/src/main/ets/utils:工具类目录,如LogUtils.ts,用于日志记录。
    • entry/src/main/resources:资源文件目录。
      • entry/src/main/resources/base/element:包含了颜色和字符串资源文件,如color.jsonstring.json,方便统一管理应用的颜色和文本信息。
  • entry/src/ohosTest:测试代码目录。
    • entry/src/ohosTest/ets/testrunner:包含了测试运行器类OpenHarmonyTestRunner.ts,用于执行测试任务。
    • entry/src/ohosTest/resources:测试资源文件目录。

script目录

  • script/float.json:定义了一些浮动尺寸的值,如size_1size_166,方便在布局中使用。

总结

HarmonyOpenEye项目为开发者提供了一个全面的鸿蒙开发范例,无论是对于初学者还是有经验的开发者来说,都具有很高的学习价值。通过学习该项目的代码结构和功能实现,开发者可以更好地掌握鸿蒙开发的技巧和方法,快速上手开发自己的鸿蒙应用。同时,项目作者提供的其他学习练手项目也为开发者提供了更多的选择和参考,帮助开发者拓宽技术视野。

希望这篇文章能对大家了解HarmonyOpenEye项目有所帮助,如果你对鸿蒙开发感兴趣,不妨去项目仓库中一探究竟!

以上就是对HarmonyOpenEye项目的详细介绍,希望大家在开发过程中有所收获。如果有任何问题或建议,欢迎在评论区留言交流。

#鸿蒙开发 #HarmonyOpenEye #开眼App #代码结构分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/89256.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/89256.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录day36dp4

文章目录1049.最后一块石头的重量II494.目标和474.一和零1049.最后一块石头的重量II 题目链接 文章讲解 class Solution { public:int lastStoneWeightII(vector<int>& stones) {// 1. 确定 DP 数组及下标的含义&#xff1a;// dp[i][j] 表示考虑前 i 块石头&#…

Python 爬虫实战指南:按关键字搜索商品

在电商领域&#xff0c;按关键字搜索商品并获取其详情信息是一项常见的需求。无论是进行市场调研、竞品分析还是用户体验优化&#xff0c;能够快速准确地获取商品信息都至关重要。1688 作为国内领先的 B2B 电商平台&#xff0c;提供了丰富的商品资源。本文将详细介绍如何使用 P…

【源力觉醒 创作者计划】百度AI的开放新篇章:文心4.5本地化部署指南与未来生态战略展望

百度AI的开放新篇章&#xff1a;文心4.5本地化部署指南与未来生态战略展望 一起来玩转文心大模型吧&#x1f449;文心大模型免费下载地址&#xff1a;https://ai.gitcode.com/theme/1939325484087291906 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30…

测试工作中的质量门禁管理

一、前言 测试阶段的质量门禁设计要考虑几个维度,首先是研发流程的阶段划分,每个阶段都要有明确的准入准出标准;其次要考虑不同测试类型的特点,比如功能测试和性能测试的验收标准肯定不同;最后还要平衡质量要求和项目进度。 在单元测试阶段,可以设置通过率和覆盖率的阈值…

线上分享:解码eVTOL安全基因,构建安全飞行生态

随着城市空中交通&#xff08;UAM&#xff09;快速发展&#xff0c;电动垂直起降飞行器&#xff08;eVTOL&#xff09;面临严格的安全与可靠性要求&#xff0c;需满足全球适航标准及全生命周期分析。安全与可靠的飞行系统成为行业关注的焦点。在此背景下&#xff0c;本期线上分…

C回调函数基础用法

&#x1f4cc; 定义&#xff1a;回调函数是通过函数指针传递给另一个函数的函数&#xff0c;这个被传进去的函数将在某个时刻被“回调”调用。换句话说&#xff1a;你定义一个函数 A把函数 A 的地址&#xff08;即函数指针&#xff09;作为参数传给函数 B函数 B 在合适的时机调…

手撕设计模式之消息推送系统——桥接模式

手撕设计模式之消息推送系统——桥接模式 1.业务需求 ​ 大家好&#xff0c;我是菠菜啊&#xff0c;好久不见&#xff0c;今天给大家带来的是——桥接模式。老规矩&#xff0c;在介绍这期内容前&#xff0c;我们先来看看这样的需求&#xff1a;我们现在要做一个消息推送系统&…

Java 大厂面试题 -- JVM 垃圾回收机制大揭秘:从原理到实战的全维度优化

最近佳作推荐&#xff1a; Java 大厂面试题 – JVM 面试题全解析&#xff1a;横扫大厂面试&#xff08;New&#xff09; Java 大厂面试题 – 从菜鸟到大神&#xff1a;JVM 实战技巧让你收获满满&#xff08;New&#xff09; Java 大厂面试题 – JVM 与云原生的完美融合&#xf…

图机器学习(9)——图正则化算法

图机器学习&#xff08;9&#xff09;——图正则化算法1. 图正则化方法2. 流形正则化与半监督嵌入3. 神经图学习4. Planetoid1. 图正则化方法 浅层嵌入方法已经证明&#xff0c;通过编码数据点间的拓扑关系可以构建更鲁棒的分类器来处理半监督任务。本质上&#xff0c;网络信息…

视频动态范围技术演进:从SDR到HDR的影像革命

一、动态范围技术基础认知 1.1 人眼视觉特性与动态范围 人眼的动态感知范围可达106:1&#xff08;0.0001-105 cd/m&#xff09;&#xff0c;远超传统显示设备能力。视网膜通过虹膜调节&#xff08;物理孔径&#xff09;与光化学反应&#xff08;光敏蛋白分解&#xff09;实现16…

基于LAMP环境的校园论坛项目

1.配置本地仓库a.修改主机名为自己姓名全拼[rootserver ~]# hostnamectl set-hostname jun [rootserver ~]# bash [rootjun ~]# 运行结果图如下图所示&#xff1a;b.光盘挂载到/mnt目录下[rootjun yum.repos.d]# mount /dev/sr0 /mnt mount: /mnt: WARNING: source write-prote…

在物联网系统中时序数据库和关系型数据库如何使用?

在物联网系统中&#xff0c;时序数据库&#xff08;TSDB&#xff09;和关系型数据库&#xff08;RDBMS&#xff09;的存储顺序设计需要根据数据特性、业务需求和系统架构综合考虑。以下是典型的设计方案和逻辑顺序&#xff1a;1. 常见存储顺序方案 方案一&#xff1a;先写时序数…

django安装、跨域、缓存、令牌、路由、中间件等配置

注意&#xff1a;如果是使用 PyCharm 编程工具就不用创建虚拟化&#xff0c;直接打开 PyCharm 选择新建的目录直接调过下面的步骤11. 项目初始化如果不是用 PyCharm 编辑器就需要手动创建虚拟环境在项目目录cmd&#xff0c;自定义名称的虚拟环境# 激活虚拟环境 python -m venv …

时间的弧线,逻辑的航道——标准单元延迟(cell delay)的根与源

时序弧 在这篇文章中&#xff0c;我们将讨论影响标准单元延迟的因素。在开始讨论之前&#xff0c;我们需要先了解一下什么是时序弧 (Timing Arcs)&#xff1a; 时序弧 (Timing Arcs)&#xff1a; 时序弧代表了信号从一个输入流向一个输出的方向。它存在于组合逻辑和时序逻辑中&…

《透视定轴:CSS 3D魔方中视觉层级的秩序法则》

当CSS的代码编织出一个能自由旋转的3D魔方&#xff0c;六个色彩各异的面在空间中翻转、重叠时&#xff0c;最考验技术的并非旋转动画的流畅度&#xff0c;而是每个面在任意角度下都能保持符合现实逻辑的前后关系。为何有时某个面会突兀地“穿透”另一个面&#xff1f;为何旋转到…

RTL编程中常用的几种语言对比

以下是RTL&#xff08;寄存器传输级&#xff09;编程中常用的几种硬件描述语言&#xff08;HDL&#xff09;及其核心差异的对比分析。RTL编程主要用于数字电路设计&#xff0c;通过描述寄存器间的数据传输和逻辑操作实现硬件功能。以下内容综合了行业主流语言的技术特性与应用场…

前端面试题(HTML、CSS、JavaScript)

目录 一、HTML src与href区别 对html语义化理解 语义化标签有哪些&#xff1f; script中的defer与async区别 行内元素与块级元素有哪些&#xff1f; canvas与svg区别 SEO优化 html5新特性 二、CSS 盒模型 选择器优先级 伪元素与伪类 隐藏元素几种方式 水平/垂直…

Linux-线程控制

线程等待pthread_join()pthread_join 是 Linux 系统中用于线程同步的重要函数&#xff0c;主要作用是等待指定线程结束并回收其资源。基本功能- 阻塞当前调用线程&#xff0c;直到目标线程执行结束。 - 回收目标线程的资源&#xff0c;避免产生“僵尸线程”。 - 可选地获取目标…

RAG优化秘籍:基于Tablestore的知识库答疑系统架构设计

目录一、技术架构设计二、双流程图解析横向架构对比纵向核心流程三、企业级代码实现Python检索核心TypeScript前端接入YAML部署配置四、性能对比验证五、生产级部署方案六、技术前瞻分析附录&#xff1a;完整技术图谱一、技术架构设计 原创架构图 #mermaid-svg-3Ktoc4oH4xlbD6…

i.mx8 RTC问题

项目场景&#xff1a;需要增加外置RTC&#xff0c;保证时间的精准。问题描述&#xff1a;基本情况&#xff0c;外置i2c接口的RTC&#xff0c;注册、读写都正常&#xff0c;但是偶发性重启后&#xff0c;系统时间是2022&#xff0c;rtc时间是1970&#xff0c;都像是恢复了默认时…