華為鴻蒙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
英文地址,請注明出處:http://en.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;都像是恢復了默認時…