車載導航應用中基於Sketch UI主題定制方案的實現


1.導讀

關於應用的主題定制,相信大家或多或少都有接觸,基本上,實現思路可以分為兩類:

  • 內置主題(應用內自定義style)
  • 外部加載方式(資源apk形式、壓縮資源、插件等)

其實,針對不同的主題定制實現思路,沒有絕對的好壞,每種實現方案都有其利弊,重要的是如何去權衡、選擇,根據實際的項目需求,痛點,制定一個符合實際項目需求,能夠解決主題定制過程中痛點的方案才是好的方案。

由於我和團隊一直是做車載導航應用開發,面向的對象是客戶。不同的客戶對於應用的UI或者主題是有不同需求的,也就是說針對不同客戶,不同渠道的版本,需要有不同的應用主題。

隨着項目的增多,如果沒有一個靈活,易管理,低成本的主題定制方案,那么實現將變得非常困難。

2.過去主題定制的實現方案

針對需要定制的UI,研發增加對應的自定義主題控件;

布局由這些自定義主題控件搭建而成;

UED修改對應主題控件xml中對應的色值實現主題的定制;

研發集成UED配置的文件,實現主題定制;

研發出包,UED進行主題定制還原度驗證。

基本思路就是界面中需要主題定制的UI,通過自定義主題控件實現,而自定義主題控件可以通過替換布局xml的方式實現主題色值等的替換,從而實現主題定制,但這種方案的缺點非常明顯:

成本高:主題定制需要UED手動去修改xml,但一般UED對於xml格式內容不是很了解,這樣無疑學習及修改成本都非常高,其次也容易產生錯誤的修改,導致穩定性很差;

效率低:主題定制需要UED修改完xml后,發給研發,然后由研發替換xml,流程多,效率低;

維護難:之前的主題定制,沒有統一的東西管理,主題對於UED來說就是一堆的xml文件,很難進行維護;

復用性差:由於主題定制是通過xml,如果主題控件修改了,xml也就跟着修改,主題的復用就很難實現。

3.新方案的設計與實現

從上圖中我們可以看出在主題定制的整個過程中,UED參與了大部分的流程,只有在主題集成的時候,研發需要參與,其實說到底,UED才是主題定制的Owner,對於主題定制最理想的狀態是研發提供一定的工具平台,UED設計完主題后,可以直接集成到應用內驗證回歸,中間無需研發干預處理,整個主題定制流程都由UED走完。

3.1 方案要素

基於UED參與就能完成主題定制的理念,同時考慮項目對於主題定制的需求,在新主題定制方案的設計中,應當圍繞核心角色,服務好核心角色,以最大限度降低核心角色的成本,提高整個定制過程的效率,同時兼顧項目核心需求為目標來設計、搭建新方案,以下是方案中應該關注的角色及要解決的關鍵問題:

  • 主題定制主角:UED
  • UED、UI設計工具:Sketch
  • 項目需求:

1. 不同項目的不同渠道有不同的主題定制需求
2. 出包時就有對應主題,無需下載
3. 項目周期短,需要能快速定制
4. 項目需要維護,主題也需要方便維護、管理

3.2 方案雛形

基於以上分析,主題定制的大體流程,方案如下:

  • 首先,方案應當圍繞着UED建設,由於UED是基於Sketch進行UI界面設計,因此如果主題定制也能基於Sketch,UED就能很方便的基於Sketch設計UI的同時也設計主題;
  • 同時,不同的渠道會有不同的主題定制,並且需要快速定制,方便管理、維護,同時出包時就需內置主題,因此需要有一個主題管理平台能管理,維護主題資源,並且支持主題復制,使得主題資源能基於現有項目的主題進行少量修改,就能形成一個新的主題;
  • 接着,需要在Jenkins打包時,能根據不同的渠道打包不同的主題資源到apk中;
  • 最后,需要將打包好的apk快速安裝到真機上進行還原度驗收。

最終主題定制方案也就基本成型,基於Sketch的UI主題定制方案:

4.方案詳解

基於Sketch的UI主題定制,主要分成四大步驟:

UED在Sketch中制作主題資源及上傳雲端(主題制作)

UED在WEB主題平台管理主題資源(主題管理)

Jenkins拉取主題資源打包到應用(主題集成)

真機預覽效果(主題驗證)

以上流程主要針對主分支,第一次界面開發,針對后續不同項目的主題定制,只需要在WEB平台中copy主題資源,然后進行對應的主題修改,即可快速定制出一套對應的主題出來。

以下詳細介紹主要關鍵步驟:

4.1 主題資源制作

主題資源制作一般在界面設計前就需要提前設計好,UED在Sketch中將主題控件設計好之后,我們提供了一個快捷的主題輸入界面,方便UED能快速編輯對應控件的主題屬性,並一鍵上傳到雲端,如下所示,在Sketch中進行主題控件制作:

4.2 WEB主題平台管理主題資源

WEB主題平台,保存了項目中所有可定制的主題資源,包含主題控件、插畫、iconfont、文字大小等,在這里可以快速基於母版主題,copy出新的主題資源,然后進行個性化定制,或者基於其他項目快速copy,主題的定制不再是繁瑣、耗時的操作,而變成了直觀、易操作。

4.3 真機預覽

在WEB主題平台編輯完主題資源后,通過Jenkins或服務器將主題資源打包到apk中,最后通過車機設備集群管理平台,將apk安裝到不同的真機上,實現真機預覽主題定制效果,UED可快速回歸還原度,發現問題,並快速在主題平台上修復。

5.方案對比

針對業內幾種比較常用的主題定制方案與基於Sketch的UI主題定制方案進行了幾個方面的對比:

以上三個方案的對比:

內置主題:優點在於實現簡單、配置方便,缺點是主題定制不靈活。

外部加載方案(apk):優點在於擴展性很高,但由於該方案需要在代碼中設置所有的可變資源,軟件實現周期較長,寫代碼時容易出錯。而且第一版耗時較長,一旦界面布局改變,需要較長的時間進行代碼的編寫。

基於Sketch的UI主題定制方案,它的優勢在於:

  • 基於UED的UI設計工具Sketch,能在設計UI的時候,同時設計主題資源,並且能快捷的預覽主題資源在整體界面上的顯示效果;
  • 可以通過Sketch插件的能力,快速將主題資源上傳到后台,方便主題資源的統一管理及維護;
  • 在后台配置修改完主題資源還能回流Sketch中進行查看。

這個方案的最大優勢在於與UED的UI設計工具Sketch無縫的銜接在一起,極大的提高了主題的制作效率及成本,使得UED能夠獨立完成主題資源制作、管理、集成、應用、驗證,形成一個主題小閉環。

6.小結

該方案的特點在於與Sketch很好的結合在一起,通過插件的能力,無縫的與雲端進行資源相互同步,能力的實現主要通過WEB主題平台進行主題的管理、編輯,實現主題的快速復制,方便修改,然后再通過Jenkins的打包能力,實現主題的快速應用,最終實現UI主題定制。

能力建設完成后,以上的每個環節,只需要UED參與就能完成不同項目的主題定制,極大減少了UED及研發的成本,大大提高了效率,同時在定制能力上,從只能定制顏色、圓角、大小等,到能支持插畫、iconfont定制,以及其他各項拓展定制能力等。

關注高德技術,找到更多出行技術領域專業內容


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM