在設(shè)備形態(tài)日新月異的時(shí)代,手機(jī)、折疊屏、平板、車機(jī)……用戶手中的屏幕尺寸和比例變得前所未有的多樣。如何讓一款應(yīng)用在所有設(shè)備上都呈現(xiàn)出最精致、最協(xié)調(diào)的視覺體驗(yàn),成為了開發(fā)工作中一個(gè)既重要又充滿挑戰(zhàn)的課題。
特別是對(duì)于擁抱鴻蒙生態(tài)的開發(fā)者來說,這種感受可能更為深刻。一方面,開發(fā)者驚嘆于鴻蒙ArkUI框架強(qiáng)大的“一次開發(fā),多端部署”能力,它提供的一整套多設(shè)備適配方案和分欄等高階組件,讓UI的適配工作行云流水。
但另一方面,一個(gè)現(xiàn)實(shí)問題擺在眼前:項(xiàng)目中廣泛使用的RN/H5等跨平臺(tái)框架,在鴻蒙多設(shè)備適配上其能力遠(yuǎn)不及ArkUI,常常導(dǎo)致“體驗(yàn)割裂”。例如ArkUI頁面可優(yōu)雅分欄,H5頁卻僅是拉伸變形。這已成為許多精品應(yīng)用實(shí)現(xiàn)全設(shè)備精致體驗(yàn)的“最后一公里”難題。
現(xiàn)在,這個(gè)難題終于迎來了官方的最優(yōu)解。華為場景化解決方案團(tuán)隊(duì),針對(duì)鴻蒙生態(tài)中大量存在的RN/H5混合開發(fā)場景,正式推出了RN/H5多設(shè)備自適應(yīng)組件庫。這套開源解決方案,可以說是一份送給廣大跨平臺(tái)開發(fā)者的“大禮包”,旨在徹底撫平混合開發(fā)中的多設(shè)備適配鴻溝。
對(duì)于H5開發(fā)者:擁有了開箱即用的“響應(yīng)式魔法”
RN/H5多設(shè)備自適應(yīng)組件庫的核心思想非常清晰:在RN和H5框架內(nèi),復(fù)刻ArkUI級(jí)別的多設(shè)備適配機(jī)制,把復(fù)雜的設(shè)備判斷和UI調(diào)整工作封裝起來,讓開發(fā)者可以用最簡單的方式,實(shí)現(xiàn)最精致的效果。
對(duì)于H5開發(fā)者來說,相當(dāng)于擁有了開箱即用的“響應(yīng)式魔法”,無論用的是Vue2、Vue3還是React,這套方案都能讓開發(fā)者如獲至寶。
組件庫提供了一套完善的斷點(diǎn)能力封裝。它能根據(jù)當(dāng)前設(shè)備的屏幕寬度,自動(dòng)將屏幕類型劃分為 xs, sm, md, lg, xl, xxl 六種規(guī)格。這意味著,開發(fā)者可以通過一個(gè)簡單的 hook,就能清晰地知道應(yīng)用正運(yùn)行在哪一類尺寸的屏幕上,從而輕松地為不同設(shè)備加載不同的樣式或組件,實(shí)現(xiàn)真正意義上的響應(yīng)式布局。
更令人驚喜的是,它還提供了一系列即用型的高級(jí)組件,例如類挪移布局組件、頁簽欄組件、網(wǎng)格自適應(yīng)布局組件等。這些組件采用標(biāo)準(zhǔn)的Web Component技術(shù)開發(fā),兼容性極強(qiáng),可以無縫對(duì)接到你現(xiàn)有的項(xiàng)目中。原本需要手寫大量邏輯才能實(shí)現(xiàn)的復(fù)雜布局,現(xiàn)在可能只需要引入一個(gè)組件就能搞定。
對(duì)于RN開發(fā)者:獲得了為折疊屏而生的“專屬能力”
RN開發(fā)者同樣能享受到強(qiáng)大的斷點(diǎn)能力。但更進(jìn)一步,組件庫還特別針對(duì)折疊屏這一“新物種”提供了專屬的“超能力”。
通過這套組件庫,RN應(yīng)用將首次能夠精確地“感知”到設(shè)備的折疊狀態(tài)。開發(fā)者可以調(diào)用API接口,輕松獲取到設(shè)備的折疊狀態(tài)(折疊、半折疊、展開)、折痕區(qū)域的精確位置和尺寸,甚至判斷設(shè)備本身是否為可折疊設(shè)備。這就為創(chuàng)造更具想象力的交互體驗(yàn)打開了大門,比如在半折疊狀態(tài)下自動(dòng)切換為“邊看邊評(píng)”模式。
與API配套的,還有一系列為折疊屏場景量身打造的自適應(yīng)高階組件,幫助高效完成各種折疊形態(tài)下的布局適配。
RN/H5多設(shè)備自適應(yīng)組件庫最直接的價(jià)值,就是解決了鴻蒙應(yīng)用中,ArkUI頁面與RN/H5頁面多設(shè)備體驗(yàn)不一致的核心痛點(diǎn)。借助這套組件庫,無論是何種技術(shù)棧的頁面,都能實(shí)現(xiàn)統(tǒng)一、優(yōu)雅、精致的響應(yīng)式體驗(yàn),讓應(yīng)用在任何設(shè)備上都盡善盡美。
另外,以前為了適配多設(shè)備,開發(fā)者可能需要編寫大量復(fù)雜的媒體查詢代碼、設(shè)備判斷邏輯,甚至為不同設(shè)備維護(hù)多套UI。而現(xiàn)在,通過預(yù)置的斷點(diǎn)機(jī)制和高度封裝的自適應(yīng)組件,開發(fā)者無需再從零開始“造輪子”,極大地降低了開發(fā)成本和學(xué)習(xí)曲線,從而能更專注于業(yè)務(wù)邏輯的創(chuàng)新。
目前,這套組件庫已經(jīng)完全開源,并上線至開源鴻蒙社區(qū)(OpenHarmony)和Gitee平臺(tái),強(qiáng)烈推薦所有鴻蒙開發(fā)者,特別是正在或計(jì)劃使用RN/H5進(jìn)行混合開發(fā)的團(tuán)隊(duì)和個(gè)人下載使用。
RN多設(shè)備適配:
https://gitee.com/openharmony-sig/rn_multidevice_layout_scenepkg
H5多設(shè)備適配:
https://gitcode.com/openharmony-sig/web_adaptive_ui
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.