多出來的不是一種解析度,是好幾種狀態
摺疊機同時有闔上時用的外螢幕和展開時用的大內螢幕。App 會落在摺起、展開、旋轉、分割畫面,以及在這些狀態之間切換的那一瞬間。照著其中一種狀態釘死的畫面,在其餘狀態裡就會跑掉:文字被切斷,按鈕跑到手指搆不到的位置,寫了一半的內容不見。
做些什麼
-
依視窗尺寸判斷,而不是機型名稱
改成以當下可用的視窗尺寸與安全區域為準來決定版面。用機型名稱分,每出一款新機就得再改一次,而且像分割畫面這種用到一半尺寸就變了的情況根本抓不到。
-
適合展開狀態的結構
不把一欄內容硬拉滿整個寬度,而是改成清單與詳細內容並排的兩欄結構。同一個畫面,闔上時回到一欄。
-
把摺線的位置空出來
標籤列、輸入框、主要按鈕壓在畫面中間那道摺線上,既難讀也難按。我們逐一狀態確認那個位置會出現什麼,再把它挪開。
-
闔上再打開,手邊的東西還在
確認正在輸入的文字、捲動位置、播放進度在切換之後是否原樣保留。摺疊和旋轉不是同一件事,不另外確認就會悄悄掉。
-
逐一狀態實際跑一遍
把摺起、展開、旋轉、分割畫面、切換中一個一個擺開,記錄每個畫面在每種狀態下的表現。
適配紀錄
哪種狀態下什麼地方跑掉、怎麼修的,連同截圖一起整理給你。下次做新畫面時,直接拿這份紀錄裡的狀態清單來用就行。
這樣進行
-
提供 App 與重點畫面
給程式碼儲存庫的讀取權限或一個可安裝的版本,再告訴我們哪幾個畫面絕對不能出問題。
-
逐一狀態檢查
把摺起、展開、旋轉、分割畫面、切換中一個一個擺開,記錄哪裡跑掉。
-
確定範圍與期程
先定下要修的地方和所需時間。談定之前不會產生費用。
-
修改與交付
修好版面與狀態保留,連同工作紀錄一起交回。
適合這些情況
- 已經上架、畫面只照一種尺寸做出來的 iOS App
- 在 iPad 或分割畫面下本來就會跑掉的 App
- 程式碼裡還留著依機型名稱或固定尺寸分支的團隊
常見問題
- 只適配 iPhone Duo 嗎?
- 不是。因為改成依當下可用的視窗尺寸判斷,同一份程式碼也能涵蓋其他摺疊機、iPad 和分割畫面。只盯著一款機型加分支,下一款出來還得把同樣的工作再做一次。
- 需要把 App 重做嗎?
- 多數情況下不需要。要動的是版面和狀態保留。如果某個 App 確實得改畫面結構本身,我們會在檢查階段先告訴你,再重新確定範圍。
- 一定要有實機嗎?
- 不用。我們在模擬器裡切換狀態確認。若有實機,還會一併確認握在手上時拇指實際搆得到的位置。
- React Native 或 Flutter 做的 App 也可以嗎?
- 可以,判斷標準是一樣的。只是各框架取視窗尺寸與安全區域的方式不同,告訴我們你用哪一種,我們先確認可行範圍。
- 和 App 商店要求適配有什麼不同?
- 商店要求適配是為了通過審核而提升目標版本。這項服務與審核無關,是在螢幕變大、會對摺的情況下保住版面和使用者手邊的內容。兩項一起交給我們,可以一次處理完。