鴻蒙學習筆記二十六:UI標準化

UI標準化的目的

統(tǒng)一Android端、IOS端、小程序端、鴻蒙端的視覺效果,減少開發(fā)人員和設(shè)計人員在UI效果上的工作量,提高開發(fā)效率,降低公司成本。

痛點示例1:

項目中很多頁面都存在設(shè)置背景的需求,在組件化之前,通常都是開發(fā)根據(jù)設(shè)計稿來直接將色值寫到代碼里(示例1),或者好一點的會使用colors引用色值(示例2),需要設(shè)置帶圓角的背景時就會自己創(chuàng)建一個drawable作為背景(示例3),開發(fā)完成后設(shè)計師進行UI驗收時就會提出問題,比如顏色淺了,圓角偏大了,即便開發(fā)是嚴格按照設(shè)計稿開發(fā)的,也會出現(xiàn)實際視覺效果不符合預(yù)期的情況,導(dǎo)致設(shè)計師和開發(fā)在UI修改上耗費大量時間和精力

痛點示例2:

Android端、IOS端、小程序端的同一頁面同一功能使用的色值不同,比如分割線的顏色;同一端不同頁面使用的分割線的色值不同。這種視覺上的問題解決起來無聊且耗時。

具體方案:
一、統(tǒng)一認知,即統(tǒng)一大家對于設(shè)計中不同內(nèi)容的定義,方便溝通

1:基礎(chǔ)要素:統(tǒng)一大家在UI設(shè)計中關(guān)于基礎(chǔ)要素的認知,在這里我們認為圓角、色值、文字大小、尺寸大小等為最基礎(chǔ)的UI組成要素。
2:基礎(chǔ)組件:只通過基礎(chǔ)要素就能形成的內(nèi)容我們定義為基礎(chǔ)組件,比如通過drawable創(chuàng)建的標準的圓角背景
3:基礎(chǔ)控件:通過基礎(chǔ)要素和基礎(chǔ)組件,再結(jié)合系統(tǒng)控件,我們就可以組成出標準的控件了,比如價格控件(PriceView)、大字號控件(BigTextView)、選中控件(RadioView)等
4:標準組件:通過以上基礎(chǔ)的要素、組件、控件相結(jié)合,我們就可以設(shè)計出標準的組件了,比如橫向通欄商品卡片、瀑布流式商品卡片,然后在全局范圍內(nèi)所有的商品卡片都使用這兩種,禁止私自創(chuàng)建和改造
5:標準模板:比如通過商品卡片自定義一個標準的商品瀑布流,用于整個APP內(nèi)的商品推薦列表

二、統(tǒng)一協(xié)作語言

以統(tǒng)一認知為基礎(chǔ),形成一種協(xié)作語言,用于設(shè)計和技術(shù)的映射關(guān)系,實現(xiàn)設(shè)計稿和技術(shù)代碼的統(tǒng)一。這里通俗的解釋就是統(tǒng)一基礎(chǔ)元素命名規(guī)則,并將設(shè)計師在設(shè)計稿上的標注規(guī)則和開發(fā)人員在代碼上的命名規(guī)則相統(tǒng)一,這個過程需要設(shè)計師和開發(fā)人員共同參與深度合作,確保 命名 的可理解性,要根據(jù)業(yè)務(wù)的復(fù)雜度及開發(fā)實現(xiàn)的最優(yōu)方式進行命名,我們采用不帶任何業(yè)務(wù)屬性的命名方式,使各業(yè)務(wù)調(diào)用更靈活。

1:基礎(chǔ)色示例:

cwhite1 —— #FFFFFF
cblack1 —— #FCFCFC

2:基礎(chǔ)色透明度示例:

cblack1_alpha10  —— 10% —— 1A 
cblack1_alpha50 —— 50% —— 80

3:動態(tài)色示例:
A:背景色

bg_1 —— cblack1(淺色模式) —— cblack2(深色模式)

B:文本、iconfont

text_1 —— cblack1(淺色模式) —— cwhite2(深色模式)

C:線框

line_1 —— cblack1(淺色模式)  —— cblack2(深色模式)

D:品牌色

brand_1 —— cred1(淺色模式) —— cred2(深色模式)

E:功能色

error —— cred1(淺色模式) —— cred2(深色模式)

F:漸變色

紅色135°漸變 —— gradient_red_135 —— cred1(開始色值) —— cvermilion2(結(jié)束色值 ) —— 135°(角度)

4:設(shè)計稿命名方式和開發(fā)命名方式映射
設(shè)計稿: tv/15/text_1
開發(fā)的布局文件:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="@style/tv_15_text_1”/>

5:行高映射,需要在自定義TextView中實現(xiàn)
7(字號) —— 9(行高)
8(字號) —— 10(行高)

6:大字號,需要在自定義TextView中實現(xiàn)
11(號字) —— 1(增加字號) ——> 12(號字)

7:全局陰影效果定義

8:自定義按鈕:全局按鈕效果,寬高、文案上下左右邊距、字體大小和顏色等都需要定義

<style name="button_H28" parent="text_base" ns1:ignore="ResourceName">
    <item name="android:gravity">center</item>
    <item name="android:layout_height">@dimen/dp_28</item>
    <item name="android:minHeight">@dimen/dp_28</item>
    <item name="android:paddingLeft">@dimen/dp_14</item>
    <item name="android:paddingRight">@dimen/dp_14</item>
    <item name="android:textSize">@dimen/dp_13</item>
    <item name="android:minWidth">@dimen/dp_56</item>
    <item name="loadingSize">small</item>
</style>

<style name="button_H28_fill_primary" parent="button_H28" ns1:ignore="ResourceName">
    <item name="android:background">@drawable/selector_button_fill_primary</item>
    <item name="android:textColor">@color/selector_button_fill_primary</item>
</style>

<TextView
    android:id="@+id/tvSearch"
    style="@style/button_H28_fill_primary" />

9:各種其他全局性控件,比如選擇框、標簽(失效、優(yōu)惠券、自營等),這里不再一一描述,可以根據(jù)具體需要具體開發(fā)

三、開發(fā)組件的步驟

1:設(shè)計組件的規(guī)范標準和設(shè)計稿
2:開發(fā)組件,建立標準接口
3:Demo開發(fā),列舉各個組件類型的形態(tài)展示在demo中
4:和設(shè)計同學整體走查Demo效果和微調(diào)
5:開發(fā)同學寫使用文檔
6:各個業(yè)務(wù)頁面找不同形態(tài)的組件進行替換,替換完自測,并列舉在wiki中
7:設(shè)計同學根據(jù)列舉的wiki中的已替換的組件,進行整體的業(yè)務(wù)頁面的走查
8:測試同學回歸走查

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容