iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0
Mobile Development

從開發瀏覽器 APP 學習 Android 實戰技巧,並搭上 Jetpack Compose 的列車系列 第 15

[Day15] 從開發瀏覽器 APP 學習實戰技巧 -- 導入 Jetpack Compose 的一些想法

  • 分享至 

  • xImage
  •  

EinkBro 現況分析

目前 EinkBro 真正有需要顯示自己的畫面的地方並不多,畫面上大部分的空間都留給了 WebView。在全螢幕的情況下,更是一點其他的 UI 元件都沒有。稍微歸納了一下還稱得上是 UI 的畫面如下:

一堆對話框

  • 點擊翻頁的設定
  • 主要功能選單
  • 工具列設定
  • 書籤列表
  • 字型設定
  • 快速切換設定選單

設定畫面

進入設定後的 PreferenceScreen,這算是 UI 的大宗,但大部分都只需要設定 preference xml,和在 fragment 中接一下 action 就可以搞定了

工具列

畫面下方除了有很彈性的工具列外,還包含了網址輸入框以及網頁內搜尋的介面。工具列得要配合工具列設定還有 Preference 才能完美運作。

開雙視窗的翻譯功能

網頁全文翻譯時,可以將畫面一分為二。主視窗依然可以利用工具列操控;副視窗則是會在畫面上有一條新增的工具列可以使用。這功能採用了自己客製出來的 TwoPaneLayout ,不僅可以上下分頁,還可以左右分頁,或是主副對調位置;更厲害的是,能透過畫面中的拉桿,調整兩個視窗的比例。

選擇逐步採用策略

說多不多,但說少,想要一次全部改成用 Compose 實作,也是不大可能,尤其是我對於 Jetpack Compose 的認知也還極其有限,修改起來應該要花不少工夫。

最終,選定的策略是先從最單純,相依性不高的對話框開始改起。對話框的邏輯通常不會太複雜,給定資料後,只管呈現出來,再把最終使用者選的項目,做的修改,再帶回給呼叫的人處理就可以了。不會有太多的狀態變化要管理。這麼一來可以讓我先不去接觸 state management 這一塊。等到熟悉 Jetpack Compose 的基本實作方式後,再來處理比較複雜的元件,像是 AutoCompleteTextView,分頁列表,和工具列等元件。


在下一篇裡,在這麼多對話框中,先選出了一個相對單純的應用來試刀:快速切換設定選單。畫面上只需要幾筆項目,每一筆項目有圖,有文字,還有個 Checkbox,點下去會呼叫對應的 preference 改變。明天正式開工囉。


上一篇
[Day14] 從開發瀏覽器 APP 學習實戰技巧 -- 讓其他使用者可以下載 Github Action 編譯好的 binary
下一篇
[Day16] 從開發瀏覽器 APP 學習實戰技巧 -- Compose 快速切換設定的對話框
系列文
從開發瀏覽器 APP 學習 Android 實戰技巧,並搭上 Jetpack Compose 的列車31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言