隨著終端設(shè)備形態(tài)日益多樣化,分布式技術(shù)逐漸打破單一硬件邊界,一個應(yīng)用或服務(wù),可以在不同的硬件設(shè)備之間按需調(diào)用、互助共享,讓用戶享受無縫的全場景體驗。作為應(yīng)用開發(fā)者,廣泛的設(shè)備類型也能為應(yīng)用帶來廣大的潛在用戶群體。一個應(yīng)用要在多類設(shè)備上提供統(tǒng)一的內(nèi)容,需要適配不同的屏幕尺寸和硬件,開發(fā)成本較高。"一次開發(fā),多端部署"(后文中簡稱為"一多")的應(yīng)用開發(fā)理念,可以讓開發(fā)者基于統(tǒng)一的設(shè)計,在多類設(shè)備上,高效構(gòu)建可運行的應(yīng)用。在2023HDC大會上,華為展示了其自研應(yīng)用"玩機技巧"基于這一理念的優(yōu)秀實踐。
玩機技巧作為華為終端用戶常用的應(yīng)用,通過"一多",部署在手機、折疊屏、平板等多設(shè)備上,不僅獲得了體驗提升,開發(fā)代碼量也下降了約40%。下文,我們將從架構(gòu)設(shè)計、UI設(shè)計、交互設(shè)計和上架4個層面對玩機技巧應(yīng)用的"一多"開發(fā)進行解讀。
通過"一多",玩機技巧應(yīng)用部署在不同設(shè)備上
一
三層架構(gòu)分層設(shè)計
玩機技巧通過在一個工程中采用三層架構(gòu)的分層設(shè)計,獲得了能夠支持多種設(shè)備的基礎(chǔ)能力,適配差異化和代碼共享也達到最大平衡。
玩機技巧開發(fā)將應(yīng)用拆分成公共能力層(Common)、基礎(chǔ)特性層(Feature)、產(chǎn)品定制層(Product)三層工程結(jié)構(gòu),支持一套代碼工程一次開發(fā)上架,即可多端按需部署。
公共能力層支持網(wǎng)絡(luò)框架、工具類、數(shù)據(jù)管理等能力。
特性層抽象出可復(fù)用的高內(nèi)聚、低耦合的基礎(chǔ)特性集,如富媒體瀏覽、搜索。
在產(chǎn)品定制層,針對多設(shè)備存在差異的特性集成UI、資源和配置,如多窗口、分欄體驗,與應(yīng)用基座解耦等多種因素。通過自適應(yīng)布局、響應(yīng)式控件、交互歸一等系統(tǒng)OS能力,以及IDE工程能力,將應(yīng)用工程歸一,最大化復(fù)用代碼,提升設(shè)計和開發(fā)效率,并兼顧多設(shè)備的整體用戶體驗。支撐應(yīng)用工程歸一、最大化復(fù)用代碼,提升了設(shè)計和開發(fā)效率,兼顧了多設(shè)備的整體用戶體驗。
玩機技巧應(yīng)用的三層架構(gòu)分層設(shè)計
二
多端設(shè)計UI自適應(yīng)
不同設(shè)備屏幕尺寸、分辨率等存在差異。HarmonyOS對屏幕進行邏輯抽象,包括尺寸和物理像素,并通過方舟開發(fā)框架(簡稱ArkUI)提供豐富的自適應(yīng)、響應(yīng)式的布局,方便開發(fā)者進行不同屏幕的界面適配。同時,HarmonyOS將人因設(shè)計、多端設(shè)計UI自適應(yīng)等經(jīng)驗,都固化到相關(guān)設(shè)計指南和ArkUI控件中,讓應(yīng)用開發(fā)者在設(shè)計階段就可以考慮多端的差異化和一致性。
在玩機技巧的設(shè)計開發(fā)中,多設(shè)備的體驗在一致性與差異性中取得良好的平衡。首先,玩機技巧界面設(shè)計和交互方式在手機和2in1設(shè)備上盡量保持一致,首頁采用了統(tǒng)一的信息架構(gòu)、界面布局、系統(tǒng)控件,減少用戶學(xué)習(xí)成本。其次,2in1設(shè)備在屏幕尺寸、人群場景、操控方式和功能范圍上兼顧一定的差異化設(shè)計,滿足了開發(fā)者個性化的訴求。
靈活布局
多端設(shè)計UI自適應(yīng),在同一個柵格模式下切換窗口大小,玩機技巧能夠隨窗口大小的變化而自動適應(yīng)界面上的所有元素,從而保證動態(tài)界面的美觀。當界面窗口變化到一定程度時(斷點),比如從2in1模式拖動窗口變小到手機窗口大小時(從2in1模式切換成手機模式),界面需要響應(yīng)式變化布局,從而保證應(yīng)用在不同窗口大小下的展示美觀。
柵格響應(yīng)式能力
組件作為應(yīng)用的基礎(chǔ)組成部分,在視覺、交互、動效等表現(xiàn)形式上需針對不同設(shè)備進行必要的調(diào)整,達到最佳體驗。在玩機技巧中使用一多能力,同一個組件標題欄可實現(xiàn)在手機和2in1的不同樣式。
視覺風(fēng)格
為了保證各組件風(fēng)格樣式一致,玩機技巧使用HarmonyOS統(tǒng)一定義的視覺樣式系統(tǒng)資源,即分層參數(shù)配置(比如色彩、字號、圓角、間距等)。
三
交互事件歸一
對于不同類型的終端設(shè)備,用戶可能有不同的交互方式,如通過觸摸屏、鼠標、觸控板等。不同輸入設(shè)備的相同意圖的輸入指令,交互歸一提供給開發(fā)者統(tǒng)一的API。玩機技巧應(yīng)用一個hap可以安裝在不同設(shè)備中,不需要針對不同設(shè)備處理交互,極大的精簡了開發(fā)難度和開發(fā)代碼量。
四
一次上架按需部署
一次上架后,剩下的工作交給AppGalleryConnect,開發(fā)者可以按需部署到不同終端上。
一次上架按需部署邏輯圖
玩機技巧在開發(fā)態(tài),通過業(yè)務(wù)解耦,把不同的業(yè)務(wù)拆分為多個模塊。在部署態(tài),可以將一個或多個模塊自由組合,打包成一個App Pack統(tǒng)一上架。在分發(fā)運行態(tài),每個模塊都可以單獨分發(fā)滿足用戶單一使用場景,也可以多個模塊組合分發(fā)滿足用戶更加復(fù)雜的使用場景。
開發(fā)者可以在以下兩種模式中選擇,進行生態(tài)應(yīng)用、元服務(wù)的打包和上架。
通過"一多"能力進行打包、上架的兩種模式
如上為玩機技巧在"一多"特性的實踐經(jīng)驗,希望為開發(fā)者提供參考,歡迎更多應(yīng)用開發(fā)者了解并使用"一次開發(fā),多端部署"能力。
-
華為
+關(guān)注
關(guān)注
216文章
34536瀏覽量
253007 -
APP
+關(guān)注
關(guān)注
33文章
1577瀏覽量
72782 -
hdc
+關(guān)注
關(guān)注
1文章
44瀏覽量
3618 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2392瀏覽量
43055 -
HarmonyOS
+關(guān)注
關(guān)注
79文章
1982瀏覽量
30579
原文標題:?HarmonyOS"一次開發(fā),多端部署"優(yōu)秀實踐——玩機技巧,碼上起航
文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
鴻蒙OS開發(fā):典型頁面場景【一次開發(fā),多端部署】(短信)案例介紹
![鴻蒙OS<b class='flag-5'>開發(fā)</b>:典型頁面場景【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(短信)案例介紹](https://file1.elecfans.com/web2/M00/EA/BC/wKgaomZVgomAc8SiAADVdmFSKuc594.jpg)
鴻蒙OS開發(fā):典型頁面場景【一次開發(fā),多端部署】實戰(zhàn)(設(shè)置典型頁面)
![鴻蒙OS<b class='flag-5'>開發(fā)</b>:典型頁面場景【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】實戰(zhàn)(設(shè)置典型頁面)](https://file1.elecfans.com/web2/M00/E7/A5/wKgZomZMROaAXUzdAAv4eiiYWnk031.jpg)
鴻蒙OS開發(fā):典型頁面場景【一次開發(fā),多端部署】實戰(zhàn)(音樂專輯頁2)
![鴻蒙OS<b class='flag-5'>開發(fā)</b>:典型頁面場景【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】實戰(zhàn)(音樂專輯頁2)](https://file1.elecfans.com/web2/M00/E8/39/wKgaomZLV2eAe_jzAANUx87ievc327.jpg)
鴻蒙OS開發(fā):【一次開發(fā),多端部署】(多設(shè)備自適應(yīng)能力)簡單介紹
![鴻蒙OS<b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(多設(shè)備自適應(yīng)能力)簡單介紹](https://file1.elecfans.com/web2/M00/E7/E1/wKgaomZJ9OqAMlQ_AADD5r5qlN0794.jpg)
鴻蒙OS開發(fā):【一次開發(fā),多端部署】( 設(shè)置app頁面)
![鴻蒙OS<b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】( 設(shè)置app頁面)](https://file1.elecfans.com/web2/M00/E7/A5/wKgZomZMROaAXUzdAAv4eiiYWnk031.jpg)
鴻蒙OS開發(fā):【一次開發(fā),多端部署】(音樂專輯主頁)
![鴻蒙OS<b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(音樂專輯主頁)](https://file1.elecfans.com/web2/M00/E8/39/wKgaomZLV2eAe_jzAANUx87ievc327.jpg)
鴻蒙OS開發(fā):【一次開發(fā),多端部署】(一多天氣)項目
![鴻蒙OS<b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(<b class='flag-5'>一</b>多天氣)項目](https://file1.elecfans.com/web2/M00/E7/2E/wKgZomZK8peAQk72AAIgRtkV8xA497.jpg)
鴻蒙OS開發(fā):【一次開發(fā),多端部署】(天氣應(yīng)用)案例
![鴻蒙OS<b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(天氣應(yīng)用)案例](https://file1.elecfans.com/web2/M00/E6/6F/wKgaomZDcNKAFBp1AAUbDUXSm5I497.jpg)
鴻蒙OS開發(fā):【一次開發(fā),多端部署】(簡介)
![鴻蒙OS<b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(簡介)](https://file1.elecfans.com/web2/M00/E5/66/wKgZomZDEGKAW3yJAAAgoErcUzM703.jpg)
評論