chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

新手入門(mén)鴻蒙開(kāi)發(fā)指南

OpenHarmony技術(shù)社區(qū) ? 來(lái)源:鴻蒙技術(shù)社區(qū) ? 作者:軟通夏德旺 ? 2021-06-25 16:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

談及接觸到 HarmonyOS 應(yīng)用的開(kāi)發(fā),主要是因?yàn)樵?2020 年年底接到華為一個(gè)項(xiàng)目為某兩所 985 高校開(kāi)發(fā)實(shí)驗(yàn)案例手冊(cè),一個(gè)是上層應(yīng)用方向的,一個(gè)是操作系統(tǒng)層的。

說(shuō)實(shí)話,當(dāng)時(shí)只是知道 HarmonyOS,而沒(méi)有了解過(guò)其中任何開(kāi)發(fā)技術(shù)。

但是這兩個(gè)層面自己也算很有底氣去接,首先是對(duì)新知識(shí)新技術(shù)的饑渴(特別還是國(guó)產(chǎn)化的),加上自己畢竟做過(guò) 10 年的應(yīng)用開(kāi)發(fā)和 3 年的操作系統(tǒng)以及底層協(xié)議棧開(kāi)發(fā)。

下面談?wù)勎沂侨绾螌W(xué)習(xí)一門(mén)新技術(shù)的吧。首先作為一個(gè)開(kāi)發(fā)老鳥(niǎo)肯定是項(xiàng)目驅(qū)動(dòng)學(xué)習(xí),這個(gè)已經(jīng)很多年都是這樣了,從最初的 VC 到 Delphi 到 PHP、JavaAndroidPython 等等。

01

項(xiàng)目案例需求分析與項(xiàng)目移植

我這里就拿之前我之前編寫(xiě)的實(shí)驗(yàn)指導(dǎo)手冊(cè)之一《HarmonyOS 手機(jī)通訊錄開(kāi)發(fā) 實(shí)驗(yàn)指導(dǎo)手冊(cè)》這個(gè)說(shuō)起吧。

編寫(xiě)這個(gè)案例之前,首先是對(duì)這個(gè)案例需求基本不用我多想,很小一個(gè)案例,頭腦中已經(jīng)有一個(gè)原型出來(lái)了。

當(dāng)然沒(méi)有必要自己畫(huà)原型圖,這里貼一個(gè)最終實(shí)現(xiàn)的效果圖。

然后根據(jù)以往的項(xiàng)目經(jīng)驗(yàn)來(lái)構(gòu)想,如果使用 Android 或者 Vue 實(shí)現(xiàn)該是怎樣幾個(gè)步驟,其實(shí) Android 和 Vue 的語(yǔ)法雖然不一樣,但基本思路也是類似的,不同技術(shù)棧的切換對(duì)比式學(xué)習(xí)非常重要。

這里還有點(diǎn)需要切記,別著急看 API 和動(dòng)手寫(xiě)代碼。

經(jīng)過(guò)以上的構(gòu)思,我很快就已經(jīng)形成了一個(gè)初步的功能實(shí)現(xiàn)思路,并且能盡可能地多融匯一些開(kāi)發(fā)常用的技術(shù)棧進(jìn)來(lái):

實(shí)現(xiàn)通訊錄主頁(yè) UI 布局。疑問(wèn)點(diǎn):通訊錄的 UI 布局在 HarmonyOS 中如何實(shí)現(xiàn),里面涉及的 UI 組件 Sdk 是否具備。

實(shí)現(xiàn)聯(lián)系人列表靜態(tài)數(shù)據(jù)渲染。

實(shí)現(xiàn)按鈕點(diǎn)擊、列表點(diǎn)擊、長(zhǎng)按等各種監(jiān)聽(tīng)事件,使用日志打印模擬業(yè)務(wù)、debug 調(diào)試。

添加聯(lián)系人詳情頁(yè)面,實(shí)現(xiàn)頁(yè)面之間跳轉(zhuǎn)傳參。

通過(guò)彈出窗口來(lái)編寫(xiě)添加聯(lián)系人頁(yè)面。

聯(lián)系人列表數(shù)據(jù)的動(dòng)態(tài)刷新。

靜態(tài)數(shù)據(jù)切換為本地持久化數(shù)據(jù),比如是否存在 sqlite,相應(yīng)會(huì)對(duì)應(yīng)數(shù)據(jù)的 CRUD 操作。

靜態(tài)數(shù)據(jù)切換為服務(wù)端數(shù)據(jù),http 網(wǎng)絡(luò)通信如何使用?是否涉及權(quán)限控制。

自定義組件使用。

下面再來(lái)帶著這個(gè)思路和疑問(wèn)去網(wǎng)上找資料。我個(gè)人習(xí)慣優(yōu)先查閱官網(wǎng)資料。前期大家也別太依賴博客,畢竟博客里面的坑會(huì)一大堆,還跳不出來(lái),講到這希望社區(qū)別打我啊。

起碼我編寫(xiě)完成系列手冊(cè)時(shí)沒(méi)有翻閱博客,當(dāng)然可能那個(gè)時(shí)候的相關(guān)博客也極其少吧,畢竟官網(wǎng)資料也很少并且還存在部分錯(cuò)誤。

02

閱讀官方開(kāi)發(fā)文檔

不得不說(shuō),現(xiàn)在華為官方文檔非常強(qiáng)大,我這里講下看官方文檔的技巧吧,沒(méi)必要全篇通讀細(xì)讀,帶著項(xiàng)目需求去閱讀。

首先我就是尋找目錄,看看是不是我上面的功能需求 HarmonyOS Sdk 是不是都支持。

閱讀之后發(fā)現(xiàn) HarmonyOS 存在兩個(gè) SDK,Java 的和 JS 的,簡(jiǎn)單看了下入門(mén)案例就知道咋弄了,不用過(guò)于糾結(jié)其中細(xì)節(jié)了。

JS 的我就對(duì)比 Vue 和微信小程序的思路去進(jìn)行即可,Java 的就先類比 Android 的去弄,等后面具體編寫(xiě)代碼實(shí)現(xiàn)功能的時(shí)候再來(lái)排坑。

所以后面又對(duì)該項(xiàng)目編寫(xiě)了一個(gè) JS 版本的通訊錄開(kāi)發(fā),以及后面發(fā)現(xiàn) HarmonyOS 重要的分布式開(kāi)發(fā)技術(shù),還編寫(xiě)了 Java 和 JS 混合開(kāi)發(fā),js FA 調(diào)用 java PA 的數(shù)據(jù)的內(nèi)容,這些都是在通讀文檔之后做了項(xiàng)目延申。

確認(rèn)好了 sdk 基本都支持我要的需求之后,下面就開(kāi)始實(shí)施代碼編輯了。

03

開(kāi)發(fā)必備 HelloWorld

作為一個(gè)老鳥(niǎo),我一直給學(xué)生強(qiáng)調(diào) HelloWorld 的重要性。自行參照官網(wǎng)入門(mén)案例搭建開(kāi)發(fā)環(huán)境,并且運(yùn)行起來(lái) HelloWorld 項(xiàng)目。

官網(wǎng)步驟很詳細(xì),沒(méi)有啥多解釋的。我這里強(qiáng)調(diào)幾個(gè)關(guān)鍵點(diǎn),對(duì) HelloWorld 工程項(xiàng)目組織結(jié)構(gòu)請(qǐng)好好看看。

個(gè)人認(rèn)為前期最主要的就是要熟悉這個(gè)項(xiàng)目組織結(jié)構(gòu),特別是還分 JS 版和 Java 版的,如有不清楚的請(qǐng)閱讀官方文檔對(duì)這塊的講解。

至于調(diào)試,前期只有網(wǎng)絡(luò)版的模擬器,并且要華為賬號(hào)認(rèn)證,每個(gè)小時(shí)會(huì)自動(dòng)釋放,這個(gè)清楚習(xí)慣即可,沒(méi)必要糾結(jié)。

至于 DevEco Studio 這個(gè) IDE 我沒(méi)什么多說(shuō)的,熟練使用過(guò) IDEA 或者 Android Studio 等 JetBrains 全家桶產(chǎn)品的開(kāi)發(fā)者來(lái)說(shuō),就順手拈來(lái)了。至于剛接觸的還是先花心簡(jiǎn)單熟悉下常用操作吧。

04

代碼編寫(xiě)、閱讀官方文檔、填坑

由于前面已經(jīng)分解了開(kāi)發(fā)步驟,所以編寫(xiě)代碼目的性非常明確,思路清晰,如果是初學(xué)者缺乏項(xiàng)目經(jīng)驗(yàn),從一個(gè)個(gè)小語(yǔ)法知識(shí)點(diǎn)開(kāi)始學(xué)起,比如一個(gè)小小按鈕學(xué)半天,那樣開(kāi)發(fā)和學(xué)習(xí)就太慢了。

所以我還是建議多用項(xiàng)目式貫穿學(xué)習(xí),特別是自己曾經(jīng)做過(guò)的項(xiàng)目移植或者需求非常清楚的項(xiàng)目代入。

既然知道了 Java SDK 開(kāi)發(fā),然后發(fā)現(xiàn)可以和 Android 進(jìn)行對(duì)比開(kāi)發(fā),那么真多 Android 老鳥(niǎo)來(lái)說(shuō)要做的就是編寫(xiě)代碼邊做好差異化記錄筆記即可。

之前我同事也在社區(qū)上發(fā)布了一篇《安卓VS鴻蒙第三方件切換寶典》。

首先強(qiáng)調(diào)一個(gè)編寫(xiě)代碼習(xí)慣。首先是包結(jié)構(gòu)的合理劃分,包名清晰,然后就是類名、方法名、變量名、常量名命名規(guī)范,這樣即使注釋很少?zèng)]有詳細(xì)設(shè)計(jì)文檔也很方便閱讀代碼。

然后是 git 的使用,每完成一個(gè)核心步驟及時(shí)提交并且編寫(xiě)簡(jiǎn)要明了的提交日志。

然后就是一步步去解決問(wèn)題了:

①實(shí)現(xiàn)通訊錄主頁(yè) UI 布局

針對(duì)本項(xiàng)目案例先把上下結(jié)構(gòu)菜單欄和空列表布局出來(lái),然后微微調(diào)整美觀細(xì)節(jié),此時(shí)你就會(huì)對(duì)布局內(nèi)容掌握的七七八八了,沒(méi)有必要進(jìn)一步深究了。

此時(shí)可以記錄下 Android 和 HarmonyOS 的布局知識(shí)點(diǎn)異同點(diǎn)。

②實(shí)現(xiàn)聯(lián)系人列表靜態(tài)數(shù)據(jù)渲染

發(fā)現(xiàn)和 Android 列表數(shù)據(jù)渲染實(shí)現(xiàn)類似,也是采用一個(gè) lsit ui 組件配合 provider 進(jìn)行實(shí)現(xiàn)。

③實(shí)現(xiàn)按鈕點(diǎn)擊、列表點(diǎn)擊、長(zhǎng)按等各種監(jiān)聽(tīng)事件,使用日志打印模擬業(yè)務(wù)、debug 調(diào)試

點(diǎn)擊事件監(jiān)聽(tīng)是應(yīng)用中最常用來(lái)觸發(fā)業(yè)務(wù)邏輯的,前期在沒(méi)有實(shí)際業(yè)務(wù)的時(shí)候,請(qǐng)用日志打印來(lái)取代實(shí)際業(yè)務(wù)即可,初學(xué)者往往會(huì)吐槽 sysout、log 好無(wú)聊,后面你就會(huì)發(fā)現(xiàn)它最好用。

這里我重點(diǎn)強(qiáng)調(diào)一個(gè)問(wèn)題,做開(kāi)發(fā)一定要 hold 住關(guān)鍵點(diǎn),現(xiàn)在是要學(xué)習(xí)掌握點(diǎn)擊事件的觸發(fā),不用真要出一個(gè)實(shí)際業(yè)務(wù)場(chǎng)景。

比如做大數(shù)據(jù)分析,重點(diǎn)是采用哪些大數(shù)據(jù)技術(shù)去根據(jù)原數(shù)據(jù)集分析出我所關(guān)注的哪些維度的數(shù)據(jù)。這些才是核心,而不是這些數(shù)據(jù)如何漂亮的展示出來(lái)。

當(dāng)你覺(jué)得 console 下打印這些數(shù)據(jù)最漂亮的時(shí)候,我會(huì)覺(jué)得你進(jìn)步了。

當(dāng)然回過(guò)頭來(lái),后面還是要做些這些事件里面加入實(shí)際業(yè)務(wù)的操作,比如長(zhǎng)按刪除聯(lián)系人的操作。

這樣你就完全知道實(shí)際業(yè)務(wù)和最初所學(xué)基礎(chǔ)知識(shí)點(diǎn)是如何串聯(lián)起來(lái)的了,達(dá)到此目的即可。

④添加聯(lián)系人詳情頁(yè)面,實(shí)現(xiàn)頁(yè)面之間跳轉(zhuǎn)傳參

數(shù)據(jù)的交互可以說(shuō)是應(yīng)用開(kāi)發(fā)時(shí)候的核心,比如傳統(tǒng)的 Web 開(kāi)發(fā)、前后端分離模式的 Web 開(kāi)發(fā)、App 類 CS 程序開(kāi)發(fā),都逃不過(guò)數(shù)據(jù)的交互。

實(shí)現(xiàn)此功能我們首先要拋開(kāi)某門(mén)特定的編程技術(shù),而是想著以下幾個(gè)關(guān)鍵點(diǎn):

如何創(chuàng)建多個(gè)頁(yè)面

如何設(shè)置某個(gè)頁(yè)面為首頁(yè)

在哪里觸發(fā)頁(yè)面跳轉(zhuǎn)

前一個(gè)頁(yè)面的數(shù)據(jù)如何傳遞到下一個(gè)頁(yè)面

數(shù)據(jù)傳遞支持哪些數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)如何從下一個(gè)頁(yè)面回傳回來(lái)

然后我們?cè)賮?lái)去閱讀官方文檔找尋相應(yīng) API 進(jìn)行處理即可。

這里著重提示,我個(gè)人開(kāi)發(fā)理念里面把 API 語(yǔ)法放到非常低的地位,重來(lái)不記憶 API。

比如你只需要知道 sdk 中肯定有個(gè) API 能夠?qū)崿F(xiàn)頁(yè)面跳轉(zhuǎn)的功能,然后自己能夠快速的查閱資料或者自己的筆記、編寫(xiě)過(guò)的 demo,做到眼熟即可。

這樣保證常用的 API 在你很長(zhǎng)一段時(shí)間沒(méi)有做此類開(kāi)發(fā)之后依然能讓你在 1 分鐘之類解決問(wèn)題。

特別是如果你學(xué)習(xí)過(guò)七八門(mén)編程語(yǔ)言之后,越發(fā)不可能去記各種 API 了。

⑤通過(guò)彈出窗口來(lái)編寫(xiě)添加聯(lián)系人頁(yè)面

⑥聯(lián)系人列表數(shù)據(jù)的動(dòng)態(tài)刷新

這兩步依然是查閱官方資料即可實(shí)現(xiàn),做好對(duì)比和記錄即可。

⑦靜態(tài)數(shù)據(jù)切換為本地持久化數(shù)據(jù),比如是否存在 sqlite,相應(yīng)會(huì)對(duì)應(yīng)數(shù)據(jù)的 CRUD 操作

這步涉及到數(shù)據(jù)庫(kù)的使用,查閱資料之后,發(fā)現(xiàn)依然是傳統(tǒng)的原生 sql 操作和 ORM 模型操作,至于 CRUD 我不多說(shuō)了,初學(xué)者最開(kāi)始主要都是干這個(gè),開(kāi)發(fā)老鳥(niǎo)見(jiàn)到這個(gè)都想吐了。

這里不多說(shuō),我認(rèn)為原生 sql 雖然沒(méi)有 ORM 操作起來(lái)清爽,但是學(xué)習(xí)成本低,學(xué)會(huì)原生 sql 玩轉(zhuǎn)所有數(shù)據(jù)庫(kù)。因此我還是更推薦原生 sql 使用。

到這一步有一個(gè)我非常想重點(diǎn)強(qiáng)調(diào)的步驟就是,對(duì)方法(即函數(shù))的編寫(xiě),大的業(yè)務(wù)層面面向接口設(shè)計(jì),落實(shí)業(yè)務(wù)的時(shí)候面向?qū)ο笤O(shè)計(jì),實(shí)施落地的時(shí)候最重要的就是方法的設(shè)計(jì)編寫(xiě)。

一個(gè)優(yōu)秀的代碼開(kāi)發(fā)者,在想清楚需求之后,只需要編寫(xiě)出方法的兩個(gè)關(guān)鍵要素,方法形參和返回值,那么他一定就能實(shí)現(xiàn)該業(yè)務(wù)。

這里就重點(diǎn)在于他對(duì)業(yè)務(wù)的深入理解和數(shù)據(jù)的交互,因此前期在編寫(xiě)代碼的時(shí)候幾步偽代碼就可以完成一個(gè)功能模塊的設(shè)計(jì)與實(shí)現(xiàn)。

下面我編寫(xiě)下偽代碼:

(1)---實(shí)現(xiàn)布局----

(2)在AbilitySlice中關(guān)聯(lián)布局,并且初始化要使用的各個(gè)UI組件,初始化監(jiān)聽(tīng)事件

(3)編寫(xiě)三個(gè)核心業(yè)務(wù)方法,用于數(shù)據(jù)的幾種場(chǎng)景切換

//獲取sqlite數(shù)據(jù)庫(kù)中的數(shù)據(jù),集成sqlite之后調(diào)用這個(gè)方法取代之前的靜態(tài)數(shù)據(jù)方法

private List《Contacts》 getSqliteData() {

}

//生成靜態(tài)的列表數(shù)據(jù)進(jìn)行模擬,在對(duì)接sqlite或者服務(wù)端之后不再使用

private List《Contacts》 getData() {

}

//通過(guò)http請(qǐng)求獲取服務(wù)端數(shù)據(jù)

private void getServerData() {

}

(4)菜單選擇監(jiān)聽(tīng)事件切換數(shù)據(jù)源加載

switch (position) {

case 0:

getData();

break;

case 1:

getSqliteData()

break;

case 2:

getServerData();

break;

}

這里提到數(shù)據(jù)庫(kù)的操作,我們也可以引入習(xí)慣的 dao 接口設(shè)計(jì)考慮,編寫(xiě)相應(yīng) dao 層,然后設(shè)計(jì)實(shí)現(xiàn)類進(jìn)行實(shí)現(xiàn)。

同時(shí)上面的偽代碼方法還可以封裝到一個(gè)獲取數(shù)據(jù)服務(wù)的 Service 接口中,然后利用業(yè)務(wù)接口進(jìn)行實(shí)現(xiàn)。此處依然是想強(qiáng)調(diào)設(shè)計(jì)先于代碼。

⑧靜態(tài)數(shù)據(jù)切換為服務(wù)端數(shù)據(jù),http 網(wǎng)絡(luò)通信如何使用?是否涉及權(quán)限控制

http 網(wǎng)絡(luò)通信在 app 開(kāi)發(fā)中必不可少的東西,既然是 java SDK,那顯然會(huì)想到支持最原生的 HttpConnection api。

查閱官網(wǎng)資料也會(huì)發(fā)現(xiàn)肯定是支持的,但是一般不會(huì)使用原生的,往往會(huì)引入一些第三方優(yōu)秀庫(kù)進(jìn)行開(kāi)發(fā)。

比如 okhttp 就是存粹的 java jar 包,進(jìn)入開(kāi)發(fā)即可,由于不是 Android 開(kāi)發(fā),這里不要引入 Android 的 aar 庫(kù)進(jìn)行開(kāi)發(fā)。

網(wǎng)絡(luò)開(kāi)發(fā)中就會(huì)再遇到各種不同的坑,比如權(quán)限申請(qǐng)、ui 主線程不能執(zhí)行網(wǎng)絡(luò)耗時(shí)任務(wù)等,這些都可以通過(guò)經(jīng)驗(yàn)或者閱讀報(bào)錯(cuò)日志一一解決。

提到網(wǎng)絡(luò)通信交互,不得不想到各種 MVC、MVP、MVVM 設(shè)計(jì)模式了,起初當(dāng)然最熟悉的還是 MVC,先使用傳統(tǒng)的 MVC 去進(jìn)行開(kāi)發(fā),后續(xù)可以自行封裝 MVP 的開(kāi)發(fā)模式。

⑨自定義組件使用

HarmonyOS 處于起步階段,最初的 sdk 開(kāi)發(fā)包只會(huì)帶有基礎(chǔ)功能的開(kāi)發(fā),如果全部基于原生 sdk 進(jìn)行開(kāi)發(fā),項(xiàng)目開(kāi)發(fā)效率肯定會(huì)比傳統(tǒng)的 Android、iOS 低太多。

因?yàn)樗麄円呀?jīng)非常成熟,有大量?jī)?yōu)秀的開(kāi)源第三方組件庫(kù),說(shuō)白了現(xiàn)在開(kāi)發(fā)一個(gè)應(yīng)用就跟碼積木一樣。

現(xiàn)在就需要大量?jī)?yōu)秀開(kāi)發(fā)者造出各種優(yōu)秀的輪子出來(lái)讓大家可以更快速的開(kāi)發(fā)項(xiàng)目。

編寫(xiě)一個(gè)自定義組件確實(shí)比完成一個(gè)簡(jiǎn)單的項(xiàng)目需求要更加有意思和成就感,即使一個(gè)非常小的組件,那么這個(gè)就需要耐心閱讀官方sdk api甚至底層代碼實(shí)現(xiàn)了。

當(dāng)然現(xiàn)在官網(wǎng)文檔很齊全,我在編寫(xiě)第一個(gè)組件的時(shí)候還是消耗了很多精力的,那個(gè)時(shí)候文檔缺乏,只能看比較生澀的 API 文檔,然后半猜半試搗鼓出來(lái)。

⑩重要特性功能引入

讀完官方文檔之后,發(fā)現(xiàn)了分布式數(shù)據(jù)通信、協(xié)同、流轉(zhuǎn)等重要技術(shù),后面就主要思考使用場(chǎng)景將其整合開(kāi)發(fā)進(jìn)去。

本案例正好可以運(yùn)用分布式 pa 和 fa 的互相調(diào)用,對(duì)于這個(gè)功能引用也可以完美的通過(guò)該項(xiàng)目案例進(jìn)行整合,這種整合類的也能更考驗(yàn)對(duì)新知識(shí)的融會(huì)貫通。

比如 js 開(kāi)發(fā)一個(gè)通訊錄 fa,然后 java 開(kāi)發(fā)通訊錄數(shù)據(jù)服務(wù) pa,fa 去獲取 pa 中的數(shù)據(jù)即可。

05

無(wú)法解決的坑如何求助

這里著重給初學(xué)者一個(gè)忠告,不要遇到一個(gè)問(wèn)題就馬上求助問(wèn)人,一個(gè)問(wèn)題出現(xiàn)首先要通過(guò)查看日志進(jìn)行解決,自行翻閱資料,反復(fù)嘗試,錯(cuò)誤復(fù)現(xiàn)手段記錄,對(duì)比場(chǎng)景解決等措施自行想辦法解決。

只有經(jīng)過(guò)反復(fù)嘗試發(fā)現(xiàn)是問(wèn)題的時(shí)候再來(lái)求助老師,并且求助之前能夠清晰的描述問(wèn)題現(xiàn)象。

在項(xiàng)目開(kāi)發(fā)中發(fā)現(xiàn)了官方文檔、工具等各種 Bug,做好了充分記錄和證據(jù)論證,然后提交給了華為方進(jìn)行求助和整改,對(duì)于缺失的關(guān)鍵 API 操作或者技術(shù)描述也能明確提出合理化訴求進(jìn)行求助。

06

開(kāi)發(fā)完成之后的項(xiàng)目復(fù)盤(pán)

如下:

梳理總結(jié)開(kāi)發(fā)思路,主要是分析前期的思路是否存在不準(zhǔn)確的地方

梳理回顧開(kāi)發(fā)過(guò)程中遇到的坑點(diǎn),自己是如何一步步填坑的

整理相關(guān)文檔,進(jìn)行歸檔留存

整理該項(xiàng)目中所運(yùn)用到的技術(shù)棧

梳理該項(xiàng)目待持續(xù)改進(jìn)的地方

07

本項(xiàng)目所用到的相關(guān)的一些技術(shù)點(diǎn)

如下:

HarmonyOS 移動(dòng)應(yīng)用開(kāi)發(fā)工具(DevEco Studio)使用。

UI 組件使用,包括 Text,Button,TextFiled,Image,RadioButton,RadioContainer,ToastDialog,ListContainer。

UI 布局的使用,包括 DirectionalLayout,DependentLayout。

日志打印,HiLog 的使用。

各種事件監(jiān)聽(tīng)操作與業(yè)務(wù)邏輯實(shí)現(xiàn)。(重難點(diǎn))

ListContainer 子布局結(jié)合 RecycleItemProvider 的使用。(重難點(diǎn))

對(duì)話框以及自定義對(duì)話框的使用。(重難點(diǎn))

頁(yè)面生命周期以及頁(yè)面之間跳轉(zhuǎn)與傳參。

自定義組件(同時(shí)涉及到 Canvas)以及如何調(diào)用。(重難點(diǎn))

數(shù)據(jù)存儲(chǔ)操作,主要涉及 sqlite 數(shù)據(jù)庫(kù)存儲(chǔ)。(重難點(diǎn))

通過(guò)HTTP網(wǎng)絡(luò)通信與服務(wù)端交互。(重難點(diǎn))

多線程通信。(重難點(diǎn))

代碼編程規(guī)范、設(shè)計(jì)模式。(重難點(diǎn))

08

個(gè)人總結(jié)

學(xué)習(xí)沒(méi)有捷徑,只有依靠一腔熱血和持之以恒的努力。反復(fù)跳坑填坑,多了自然觸類旁通,即使剛新接觸一個(gè)技術(shù),也能快速搞定一個(gè)項(xiàng)目的移植,比如這個(gè)小項(xiàng)目案例從剛接觸到一天開(kāi)發(fā)完成都足夠了。

學(xué)習(xí)編程切記執(zhí)著語(yǔ)法和 API,而要注重思維鍛煉,多練習(xí)多踩坑多對(duì)比多總結(jié)才是王道。

對(duì)于開(kāi)發(fā)老鳥(niǎo),我對(duì)快速掌握 HarmonyOS 開(kāi)發(fā)的建議是將自己原有的項(xiàng)目移植,并且盡可能多融入一些技術(shù)點(diǎn)。

對(duì)于初學(xué)者,我建議是找到一個(gè)我這種項(xiàng)目貫穿式案例然后配合自己查閱官方資料進(jìn)行結(jié)合學(xué)習(xí),也會(huì)事半功倍。

應(yīng)用做多了,會(huì)慢慢失去興趣了,都是各種數(shù)據(jù)交互和 UI 渲染,這時(shí)強(qiáng)烈推薦大家去關(guān)注下操作系統(tǒng)層的源碼啊,此時(shí) c 的代碼或許會(huì)看起來(lái)更親切哦。

我這里推薦的不是開(kāi)發(fā)板和上層傳數(shù)據(jù)這類應(yīng)用開(kāi)發(fā),而是操作系統(tǒng)內(nèi)核代碼,值得一看。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 華為
    +關(guān)注

    關(guān)注

    216

    文章

    35591

    瀏覽量

    259320
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2642

    瀏覽量

    68997
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2141

    瀏覽量

    34991

原文標(biāo)題:鴻蒙開(kāi)發(fā),小白入坑指南!

文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    新手入門(mén):使用CST電磁軟件進(jìn)行貼片天線設(shè)計(jì)的5個(gè)基本步驟

    新手入門(mén)教程:使用CST進(jìn)行貼片天線設(shè)計(jì)的5個(gè)基本步驟。從創(chuàng)建模型到結(jié)果分析,詳細(xì)指導(dǎo)您完成2.45GHz微帶貼片天線的完整設(shè)計(jì)流程。
    的頭像 發(fā)表于 07-28 16:17 ?453次閱讀
    <b class='flag-5'>新手入門(mén)</b>:使用CST電磁軟件進(jìn)行貼片天線設(shè)計(jì)的5個(gè)基本步驟

    STM32F10xxx硬件開(kāi)發(fā)指南

    官方STM32F10xxx硬件開(kāi)發(fā)指南
    發(fā)表于 04-14 14:59 ?2次下載

    GD32F1x0硬件開(kāi)發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《GD32F1x0硬件開(kāi)發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 02-09 15:39 ?0次下載
    GD32F1x0硬件<b class='flag-5'>開(kāi)發(fā)指南</b>

    GD32VF103硬件開(kāi)發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《GD32VF103硬件開(kāi)發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 02-07 17:30 ?1次下載
    GD32VF103硬件<b class='flag-5'>開(kāi)發(fā)指南</b>

    GD32L23x硬件開(kāi)發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《GD32L23x硬件開(kāi)發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 02-07 17:26 ?2次下載
    GD32L23x硬件<b class='flag-5'>開(kāi)發(fā)指南</b>

    GD32F4xx硬件開(kāi)發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《GD32F4xx硬件開(kāi)發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 02-07 17:20 ?3次下載
    GD32F4xx硬件<b class='flag-5'>開(kāi)發(fā)指南</b>

    GD32F3x0硬件開(kāi)發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《GD32F3x0硬件開(kāi)發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 02-07 17:19 ?1次下載
    GD32F3x0硬件<b class='flag-5'>開(kāi)發(fā)指南</b>

    AN154 GD32VW553快速開(kāi)發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《AN154 GD32VW553快速開(kāi)發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-17 15:39 ?2次下載
    AN154 GD32VW553快速<b class='flag-5'>開(kāi)發(fā)指南</b>

    AIGC入門(mén)鴻蒙入門(mén)

    人工智能生成內(nèi)容(AIGC)和鴻蒙系統(tǒng)是當(dāng)前科技領(lǐng)域的兩個(gè)熱門(mén)話題。以下是對(duì)它們的入門(mén)指南: AIGC入門(mén) 1. 基礎(chǔ)概念: AIGC,全稱Artificial Intelligenc
    發(fā)表于 01-13 10:32

    VCA5807開(kāi)發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《VCA5807開(kāi)發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-03 16:56 ?3次下載
    VCA5807<b class='flag-5'>開(kāi)發(fā)指南</b>

    超值音棒參考設(shè)計(jì)套件開(kāi)發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《超值音棒參考設(shè)計(jì)套件開(kāi)發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-21 09:16 ?0次下載
    超值音棒參考設(shè)計(jì)套件<b class='flag-5'>開(kāi)發(fā)指南</b>

    BQ7690x軟件開(kāi)發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《BQ7690x軟件開(kāi)發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 11-07 10:19 ?2次下載
    BQ7690x軟件<b class='flag-5'>開(kāi)發(fā)指南</b>

    MSP430? MCU開(kāi)發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《MSP430? MCU開(kāi)發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 11-06 09:57 ?0次下載
    MSP430? MCU<b class='flag-5'>開(kāi)發(fā)指南</b>

    【北京迅為】itop-龍芯2k1000開(kāi)發(fā)指南Linux基礎(chǔ)入門(mén)vim 編輯器

    【北京迅為】itop-龍芯2k1000開(kāi)發(fā)指南Linux基礎(chǔ)入門(mén)vim 編輯器
    的頭像 發(fā)表于 10-25 14:56 ?879次閱讀
    【北京迅為】itop-龍芯2k1000<b class='flag-5'>開(kāi)發(fā)指南</b>Linux基礎(chǔ)<b class='flag-5'>入門(mén)</b>vim 編輯器

    MSP430L092開(kāi)發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《MSP430L092開(kāi)發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 10-18 10:06 ?1次下載
    MSP430L092<b class='flag-5'>開(kāi)發(fā)指南</b>