← 所有文章

iPhone Duo 讓以前的「選修」變成「必修」

人格憑證 v4 的開發,從 iPhone Duo 的自適應版面、Demo Mode 與護照掃描測試,到跨 App 的拖放互動。聊聊模擬器的限制和95% 的信心.

最近在為人格憑證準備 v4 版本,其中一個主要推力,就是 iPhone Duo 的問世。

對開發者來說,Duo 類似9年前 iPhone X 的出世:沒有實機下我們就得開始模擬自己的 App 跑在上面會長什麼樣子。Apple 在發表會前一樣保密到家,Duo 的模擬器也是上個星期才進到 Xcode 27.1 beta。實際把 App 丟進 Duo 模擬器後,我遇到的問題大概可以分成兩種。第一種,是工程師看到大概就知道怎麼修的問題。比如按鈕跑到鏡頭下面,這種就是 UI 調一調。

第二種就不是單純「修掉一個 Bug」,而是需要重新思考 App 應該怎麼設計。Duo 之前,iPhone 就是一塊長方形螢幕。所以很多 App 可以很任性地只支援直向 Portrait,不管橫著拿(Landscape),當然 iPad 也就不管。但到了 Duo 就不行了。它有外螢幕、內螢幕、完全展開、部分展開,坐著和站著,App 可以使用的空間都不一樣。Portrait只能被限制在外螢幕,內螢幕無法限制,這等於強迫開發者開始認真處理程式內的 compact / regular size class——簡單講,就是你的 App 必須知道「我現在到底有多少螢幕空間可以用」,然後自己調整版面。以前這件事像選修。Duo 出來之後,變必修了。白話的講法就是以後 Apple 不再允許 iPhone 單點,而是只有 iPhone + iPad 套餐。 App 從這個世代開始,必須要更認真處理不同螢幕大小。而這件事情做好後,大部分的 App 上架 iPad 跟 Mac 的勾勾就可以點了,Apple 正在逼我們完成一個更成熟的產品。所以這不只是工程師的問題。從這個世代開始,產品經理在設計 App 時,也很難再完全不考慮跨 Apple 裝置的使用情境。

中間岔題一下。

Apple 的開發者影片其實做得很完整,而且裡面有一些我喜歡的小細節。

例如影片裡的時間一定都是 Apr 1 Wed, 9:41。印象中 9:41 這個傳統,是因為早年 Steve Jobs 發表 iPhone 時,簡報講到產品正式出現的那一頁,差不多就是 9:41,後來 Apple 就一直沿用這個時間。而Apr 1 Wed 我以為是用愚人節來跟觀眾溝通這是假的時間,結果其實代表的是1976年Apple公司成立的日期;另一個我最近注意到的是 Agent 在處理工作時常常需要等一段時間。Apple 的影片不會讓你在那邊乾等,而是在螢幕右下角放一個數位碼錶,快速跑過實際經過的時間。我自己在錄影片時也有遇到 Agent 處理時長的問題,所以只能用跳過剪接的方式,如果有人知道怎麼在影片裡漂亮地呈現這種「快轉碼錶」,或者怎麼讓 Mac 的時間永遠停在 Apr 1, 9:41,歡迎留言告訴我。我還蠻喜歡這種無聊(?)的細節。

回到最近人格憑證 v4 的開發。模擬器畢竟有極限。有些 API 不支援、沒有真正的相機,也沒辦法完整測試 NFC。

聽起來好像就只能買一支 Duo 了。

不過先不要這麼快下結論,先來談談繞過去的方法。這個問題其實跟我之前把 App 送給 Apple 審核時碰到的問題是一樣的。

人格憑證裡的「唯一性憑證」,是錨定在護照上的,這讓第三方 App 可以確認:

在某一個特定情境(context)裡,這件事情確實是由唯一的一個真人完成的。

例如一個人只能領一次補助金,或是一個人只能投一票。

要把護照資料安全地讀進 iPhone,會用到兩樣東西:相機和 NFC。 問題來了。Apple 的審核人員不會、也不能為了審核我的 App,真的找一本護照來測試;他們也不接受單純錄一段「你看,它真的可以」的影片當作完整的審核方式。所以 App 必須提供 Demo Mode。Demo Mode 的概念很簡單:既然審核人員沒有真的護照,那我就放假的測試資料進去,讓整個流程還是可以跑。所以我做了兩本假護照:John Wick 跟 Sheldon Cooper。 這些測試護照原本是從真實護照的資料格式 dump 出來,再把內容改掉的。這樣 Apple 審核時就可以走完整個流程。

而過去這個星期在測試 Duo 時:欸,這個 Demo Mode 也可以拿來繞過 Duo 模擬器沒有相機、無法測 NFC 的限制。聽起來好像不錯,但仔細一想……

等等,「繞過」不就代表我還是不知道真正讀護照的那段程式,在 Duo 上到底能不能正常執行嗎?

這…… 好像還是只能買 Duo 了吧?

以前我的印度老闆在時程很趕的時候,會叫我摸著自己的腦袋,問自己:「你有幾分把握?」現在沒有人問我,我只好自摸自想自問。Duo 採用的 NFC 系統目前沒有找到公開資料,但跟前代 iPhone 應該不至於有太大的差異;John Wick 跟 Sheldon Cooper 的測試資料也是依照真實護照格式修改而來。既然原本的程式可以正確掃描、讀取,我目前大概可以說:有 95% 的信心。 剩下那 5%,就是我們最熟悉的東西:Unknown Risk。

最後再講一個 Duo 讓我很有興趣的新功能:split-screen multitasking。 iPad 早就有這個功能,但 Duo 是第一支可以讓兩個 App 並排使用的 iPhone。以前兩個 App 要互相傳遞東西,能在一個鈕內完成的只有 universal link,超過一個按鈕的我媽都不會用。但當兩個 App 可以同時放在螢幕上,Drag & Drop suddenly makes sense。那就跟主螢幕上有療癒感抖抖抖的 icon,直覺就知道怎麼做。 我的人格憑證似乎可以善用這個功能,不論是拉進 presentation envelope 或是拉出憑證的 presentation submission 都是可以探索的方向,而不用一直在 App 之間跳來跳去。

所以…… 模擬器不能完整測 NFC。 相機不能完整測。 還有新的 split-screen 跟 Drag & Drop 要研究。

哎呀。 看來真的是不得已,不得不買 Duo 了。

一切都是為了工作。

人格憑證在 iPhone Duo 的 Demo Mode 顯示 John Wick 的 Facebook 唯一性憑證

留言載入中…