回覆列表
  • 1 # 趣味硬體

    OS 和 macOS 兩大系統的應用生態融合是一個極具野心的專案,也是蘋果近幾年在軟體層面實施的最大改動。Ars Technica 近日採訪了幾位蘋果工程師和第三方開發者,對這個專案做了進一步解析。

    作為首批展示案例,在 macOS 10.14 中,蘋果就曾把 iOS 端的新聞、股票等手機應用移植到 Mac 系統中,強調可以讓開發者用「很少的精力」就能實現這樣的移植工作。

    到了今年,蘋果進一步公開了名為「Project Catalyst」的專案,讓廣大第三方開發者也參與到移植工作中。

    簡單來說,現在開發者們可以利用蘋果提供的新工具包,只要對 iPad 應用的底層程式碼做簡單的調整,就能直接建立一個可以在 Mac 電腦上執行的應用。

    這聽起來似乎並不困難,但專案本身仍然有很多讓人在意的細節。

    如何將一款 iPad 應用搬到 Mac 電腦上?

    去年,蘋果工程副Quattroporte克雷格·費德里吉(Craig Federighi)曾介紹「Project Catalyst」專案的設立目的,就是為了讓成熟的 iOS 應用生態來倒推 Mac 平臺的發展,豐富桌面端的應用。

    從資料來看,iPhone 的使用者規模已經接近 10 億,而使用 Mac 電腦的使用者量僅為 1 億而已,在這樣的懸殊差距下,指望開發者只為 Mac 開發應用顯然很困難,而移植則是彌補差距最快速、簡單的策略。

    但作為平臺方,想要拉攏足夠多的第三方開發者參與其中,顯然得先解決移植的工作量、成本和風險等問題。

    為此,蘋果第一步是計劃先將 iPad 應用帶到 Mac 電腦中,而非數量更多的 iPhone 應用。macOS 的高階市場總監 Todd Benjamin 解釋說,這是因為 iPad 應用在上線時就已經針對大螢幕做了適配,UI 介面基本都是現成可用的,反而是 iPhone 手機應用需要重新修改設計。

    但在具體的遷移過程中,iOS 與 macOS 兩個系統的編寫底層仍存在不少差異。

    最明顯的一點,macOS 應用使用 AppKit,而 iOS 應用使用 UIKit,這是兩種不同的開發框架,直接複用一套程式碼顯然不現實,蘋果只能儘可能地將兩者架構中相同的部分整合到一起,降低移植的工作量。

    Twitter 的工程師 Nolan O’Brien 在採訪時就表示,蘋果提供了一個可以讓開發者重複利用現有程式碼資源的套件,這意味著應用廠商不必再為 Mac 應用單獨設立一支運維團隊。

    「今後我們對於 Mac 平臺的支援,會提升至和 iPhone、iPad 一樣的水準。」O’Brien 稱,目前 Twitter 的官方版 macOS 應用已經在 WWDC 上有過展示,之後就會上架 Mac 商店。

    而旅行規劃軟體 Tripit 的開發者 Rich Shimano 則認為,移植工作的挑戰在於要照顧一些老舊的框架程式碼,其中可能需要用新的 API 進行改寫,此外還要調整 iPad 應用對於多工和視窗自動佈局的支援。

    但架構整合只是其中一點,iPad 和 Mac 的硬體與互動差異也會對應用設計產生影響,兩者的使用場景也都不盡相同。

    蘋果在開發者文件中也提及,有的 iPad 應用會借用陀螺儀、重力加速感應器和後置攝像頭等元件配合使用,但這些元件並未整合在 Mac 電腦中,移植時蘋果也會自動將不相容的特性程式碼進行刪減。

    而在互動方面,iPad 應用基於的是觸控式螢幕和手勢操作,Mac 應用則需要用滑鼠、鍵盤或觸控板。其中的互動變化會在移植過程中自動轉換,比如手指的觸控/長按操作會對應滑鼠單擊或雙指點選,也會加上視窗大小調整、視窗拖放、全屏顯示等只有在 Mac 電腦上才會用到的功能。

    自動轉換下來的應用只能達到「可用」的層面,如果開發者想要實現更豐富的功能,比如邊欄設計,新增模組等,還需要做針對性的程式設計處理

    但在新的開發環境下,開發者的工作量確實明顯下降了。據採訪介紹,Gameloft 的開發團隊只花了一天時間,就將《狂野飆車 9》從一個 iOS 應用轉變為一個可執行的 Mac 電腦遊戲、他們刪減了只能在 iPad 上使用的重力感應操作,改寫了 UI 介面和部分程式碼,實現在 Mac 平臺穩定 60 幀的執行。

    同時,在桌面級晶片的支援下,移植類應用也能獲得額外的效能資源。

    Gameloft 圖形工程師 Alex Urbano 就表示,他們在 Mac 平臺上實現了更高解析度的支援,同時還增加了一些新的畫面特性,比如車輛的自動陰影、超取樣、高質量的運動模糊和螢幕空間反射功能。

    Mac 應用的數量多了,但質量能保證嗎?

    雙端應用融合計劃被業內視為是蘋果重新重視起 Mac 平臺的訊號,但它也引發了部分 Mac 核心使用者的擔憂。

    一方面,蘋果的新套件確實能為 Mac 平臺帶來一大批新的應用;但另一方面,這可能也會降低開發者從零設計一款獨立 Mac 應用的熱情,而傾向於用移植工具解決一切。

    畢竟,從現有幾款移植自 iPad 平臺的應用來看,它們的介面都十分簡單,基本就是主介面加一個側邊欄的設計,功能也和 iPad 端基本相同,有的甚至直接照搬了移動端的 UI 控制元件,這放在強調使用鍵鼠、觸控板操控的 Mac 平臺上顯得格外另類。

    不過,蘋果工程師們卻認為,「Project Catalyst」專案的價值在於降低移植門檻,但並未改變 Mac 應用開發的可能性與上限。

    「我們讓移動開發者可以在一款基於 UIKit 移動應用的基礎上,使用 Appkit 桌面端的特性來進行調整和修改。而對於那些創意內容人士和專業級工具而言,他們會清楚自己的使用者群和受眾想要什麼內容。」

    Gameloft 圖形工程師 Alex Urbano 也表示,現在的移植工具對於人力和工作效率的幫助都很明顯。只有需要用到 Mac 中某個特定的硬體功能,他們才會考慮重頭設計一款應用。

    為了確保質量,推動開發者對於 Mac 應用的迭代,去年蘋果還改進了 Mac 應用商店的頁面,讓廠商可以看到使用者的評分和反饋,並進一步拉進開發者和使用者之間的關係。

    同時,蘋果也希望在新套件的影響下,能夠讓那些過去只為 Mac 做應用的開發者們能夠重新考慮 iPad 平臺,尤其是在 iPadOS 出現後,蘋果對於 iPad 生產力工具的定位也變得更為明確。

    「過去 Mac 平臺只擁有那些複雜的應用軟體,它們的功能很強大,適用範圍也十分廣泛,而移動端的應用往往都較為單一,強調的是專注。現在蘋果希望將兩者合併到一起,讓使用者在 Mac 上也能享受到 iPad 和 iPhone 上的應用生態,並在多個平臺保持一致的使用體驗。」

    就算不用「Project Catalyst」,開發者們也還有 SwiftUI 可選。這是蘋果為了旗下多個系統提供的一套統一的 UI 編寫框架,同樣可以降低多平臺應用開發門檻。

    不過,在開發者看來,是否要在 Mac 平臺上做一個原生應用仍存在爭議。尤其是那些偏向娛樂消費的應用,比如說你想在嗶哩嗶哩上看一部動漫,在 iPad 端可能會點開一個應用,但在 Mac 上則習慣直接登入網頁端。

    如果能用網頁端就能解決,原生應用自然不是必需,那消耗精力開發獨立桌面應用的意義又是什麼?拋開市場需求不談,這在缺乏明確商業利益的情況下更是如此。

    根據彭博社於今年年初的報道,蘋果計劃在 2021 年左右徹底打通移動端和桌面端的應用,屆時 iPad、iPhone 和 Mac 將會共用一個應用商店,消費者可以實現「一次付費,同時在三個平臺使用應用」的體驗,而無需在不同平臺上分別購買同一個應用。

    這不是一件容易的事情,它涉及到蘋果對應用商店戰略的調整,也取決於開發者群體的支援力度。

  • 中秋節和大豐收的關聯?
  • 有人說三國中孟達和黃權是“三姓家奴”,而且人生軌跡相似,但是一個被贊一個被罵,對此你怎麼看?