March 12th, 2010 iPhone OS 支援多工的方式

iPhone OS 4.0 將支援第三方軟體多工執行?

AppleInsider 說:「是的!」(Apple’s iPhone 4.0 software to deliver multitasking support. Via AppleInsider via DaringFireball)

iPhone OS 自 1.0 開始就支援 multi-tasking。

Apple 自己的軟體都在背景不斷的執行,只有第三方軟體,也就是你從 App Store 上下載來的軟體,才會被限制一次只能執行一個。

會這麼做的原因跟技術固然相關,但跟設計相關更大。

iPhone OS 當時是設計在手機上執行的,手機操作方式越簡單越好,因為使用者可能邊移動邊始用,不會很專心,一次執行一個 app 的方式剛剛好。

這樣的操作方式對一般使用者(像我爸媽、我表弟妹等一般人,不是你)而言也非常直覺:按了什麼鈕,就可以執行什麼動作,就跟他們以前用的手機相同;iPhone 對使用者來說不是什麼功能強大、按鈕多到不知按哪裡的「Smartphone」,而只是一款比以前任何手機都好用的「大螢幕手機」。

你要跟他們解釋說什麼單工多工,他們不會有興趣,並不是每個人都需要 multi-tasking 的;然而這樣顯然沒有讓 Power User 很滿意,所以想要 Multi-tasking 的呼聲從 iPhone 上市之初就已經喊到現在。

iPad 出現後,狀況可能有些改變,因為 iPad 和 iPhone 是不同的東西,iPad 大部分會拿在手上專心使用,所以為 iPad 使用者啟用 multi-tasking 的可能性是可以考慮的。

無論如何,不管 iPhone 或 iPad 硬體功能以後會多麼強大,他們畢竟和你的桌上型與筆記型電腦是不同用途的工具,所以真要提供 multi-tasking 的話,就要以非常易懂的方式來實作。

換句話說,這個 multi-tasking 的方式不可以讓使用者煩惱:

  • 「我開太多軟體手機會不會變慢?」或是
  • 「我一直開一直開的話,可以開多少個 app?」或是
  • 「如果 iPhone 要結束掉我的 app,那他會結束哪一個?」或是
  • 「無法結束程式的話,我要去哪裡按 Ctrl + Alt + delete?」之類的。

如果只是把多視窗的概念搬到 iPhone 上就可以讓使用者很順利使用的話,Apple 還需要花這麼多時間嗎?他明天下午丟一個 Software Update 就可以讓大家有這種「多工」了。

(事實上你的 iPhone 若是 JB 過的,早就可以 multi-tasking 了。)

我猜想 iPhone 上的 multi-tasking,若真要有的話,會是一種介於 OS 視窗概念與 iPhone 概念的形式,也就是說,他不需要使用者去切換視窗,不需要使用者去了解「多工」這個概念,當然也不需要擔心是否要先結束別的 app 才能去開新的。

而且不是每個 app 都需要、或是都能在背景執行。你能想像我在背景執行 Final Fantasy II,前面開一個 Street Fighter 4,還順便聽著 iPod 時,剛好接到房東打來催繳房租的電話嗎?

我認為在背景執行的能力不會由使用者決定,而是由開發者決定,當開發者認為他的 app 只有在背景執行才有意義時,那麼他在寫 app 時就啟用某種多工的功能,讓軟體的一部分能力能在背景執行。

例如 KKBox 會在背景繼續播放音樂,Tweetie 和 NetNewsWire 會在背景檢查新訊息。

而要啟動背景執行的時機,必須要由使用者主動去決定,也許在 Tweetie 的介面上多一個「Run on Homescreen」的按鈕,按下去以後會變這樣:

當然有新訊息的時候,Tweetie icon 上應該要冒出紅色圈圈的數字。

如果是這樣處理,那麼對現有的 iPhone 使用流程就不會有任何影響,也因為是使用者主動去要求 Run on Homescreen,他們也不需要考慮在開啟新 app 前,是不是要先結束掉其他 app。

在背景能執行的 app 數量,希望是在不耗損太多電力前提下越多越好,也許是 10 個。這個數量應該要滿足超過 8 成的使用者,若是使用者超過這個數量,就表示他該去用一台真正的電腦了。

不需要執行在背景的 app,就維持原樣,讓有需要的 app 能夠在背景執行部分功能。

「Run on Homescreen」 就是我對 iPhone 多工的解法。