《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 業(yè)界動態(tài) > 蘋果OS之夢,能否獲果粉和開發(fā)者的雙重青睞

蘋果OS之夢,能否獲果粉和開發(fā)者的雙重青睞

2019-07-04
關(guān)鍵詞: 蘋果 MAC watchOS

當(dāng)蘋果本月在WWDC上發(fā)布macOS Catalina時,一個相關(guān)公告引起了Mac用戶和開發(fā)人員的極大興趣:一種將iPad應(yīng)用轉(zhuǎn)變?yōu)橥耆鶰ac應(yīng)用的新方法。

這一名為“Project Catalyst”的項目旨在讓開發(fā)人員將現(xiàn)有的iOS應(yīng)用移植到Mac上。不過,這引出了一些問題:這對Mac用戶意味著什么?這會改變?yōu)镸ac制作的軟件類型嗎?蘋果的生態(tài)系統(tǒng)是移動端優(yōu)先嗎?

有開發(fā)人員擔(dān)心:Catalyst只是SwiftUI的墊腳石,在把iPad應(yīng)用遷移至Mac的過程中,開發(fā)人員可能會遇到哪些挑戰(zhàn)?

Ars與負(fù)責(zé)在WWDC開發(fā)和推廣Project Catalyst的主要成員以及已經(jīng)用這種方式制作Mac應(yīng)用的少數(shù)開發(fā)人員進行了交談,向他們詢問了Catalyst的工作原理、蘋果軟件的未來發(fā)展方向以及用戶可以期待的內(nèi)容等。

Mac平臺在開發(fā)人員和創(chuàng)意人員中很受歡迎。iPhone和iPad應(yīng)用商城已經(jīng)成為業(yè)界最具活力的軟件生態(tài)系統(tǒng)之一,但Mac應(yīng)用商城卻并非如此。

蘋果試圖通過使用Catalyst將iOS應(yīng)用商城的一些成功應(yīng)用轉(zhuǎn)移到macOS上。本文將詳細(xì)介紹開發(fā)人員是如何逐步使用蘋果所構(gòu)建的內(nèi)容,以及他們面臨的挑戰(zhàn);將分享蘋果對我們所提出問題的答案,例如隨著移動衍生應(yīng)用涌入該平臺,蘋果計劃如何保持Mac應(yīng)用的高標(biāo)準(zhǔn)質(zhì)量;從整個生態(tài)系統(tǒng)來看,蘋果跨平臺應(yīng)用的長期計劃又是什么。

Project Catalyst

據(jù)彭博社2017年12月報道,蘋果正在開展一個項目,該項目將使得為macOS和iOS并行開發(fā)應(yīng)用變得更加容易。我們今年在WWDC上了解到,推動該項目的一個主要組成部分叫做Project Catalyst,它可以相對快速地將iPad上的應(yīng)用移植到Mac上。

應(yīng)用開發(fā)人員現(xiàn)在可以開始使用集成開發(fā)工具Xcode的測試版本。為了在WWDC舞臺上大肆宣傳,蘋果聲稱開發(fā)人員只需要在Xcode中打開他們的iPad應(yīng)用項目,然后單擊一個復(fù)選框就可以構(gòu)建一個Mac應(yīng)用。當(dāng)然,它并不總是這樣簡單,但應(yīng)該比你想象的要容易。

具體運作方式

開發(fā)人員用于為iPad和Mac創(chuàng)建應(yīng)用的許多框架都是相似的。蘋果在這方面所做的工作就是彌合iPad和Mac版本共享開發(fā)框架之間存在的差異。但最大的差距是UI框架之間的差距。

開發(fā)人員使用UIKit框架構(gòu)建iPad應(yīng)用的用戶界面和功能。與此同時,Mac有一個名為AppKit的框架,可以執(zhí)行許多與UIKit相同的操作。以前,Mac應(yīng)用無法運行使用UIKit制作的應(yīng)用,iOS設(shè)備無法運行使用AppKit制作的應(yīng)用。即使開發(fā)人員在構(gòu)建Mac版本時可以重復(fù)使用iPad應(yīng)用的某些部分,也需耗費額外的大量工作。

有些框架可以在一個平臺上使用,但不能在另一個平臺上使用。例如,在Mac上無法使用ARKit,那些想用ARKit來提供增強現(xiàn)實體驗的開發(fā)人員需要考慮這一點。在某些情況下,ARKit會自動過濾與目標(biāo)設(shè)備上不存在的功能和框架有關(guān)的代碼。

某些情況下,開發(fā)人員當(dāng)然可以在其代碼中使用條件邏輯,根據(jù)運行軟件的設(shè)備提供不同的體驗和功能。但是,蘋果希望保留這種方法,用于應(yīng)對某種不同設(shè)備對不同功能的需求。

“我們希望他們盡可能少地使用條件,因為條件是不同的代碼路徑,”Catalyst負(fù)責(zé)人Ozer解釋道?!岸椅艺J(rèn)為與條件相關(guān)的是API和功能,它們實際上只是Mac版本?!?/p>

蘋果表示,許多開發(fā)人員構(gòu)建的第一個第三方Catalyst應(yīng)用,能在24小時內(nèi)在Mac上運行可接受的構(gòu)建版本。但每個應(yīng)用都面臨著一些獨特的挑戰(zhàn)。

開發(fā)人員的經(jīng)驗

少數(shù)蘋果開發(fā)人員已經(jīng)在使用Catalyst構(gòu)建第一個第三方應(yīng)用,他們在WWDC上展示自己的應(yīng)用。為了獲取更多信息,Ars與開發(fā)人員討論了三個不同的應(yīng)用,即開發(fā)人員如何成功地將iPad版本的Twitter、TripIt和Asphalt 9:Legends帶到了Mac上。

Twitter

Twitter在2016年停止了對其Mac應(yīng)用的支持。雖然一些第三方Twitter應(yīng)用仍可用于macOS,但該公司繼續(xù)將Web視為Mac用戶使用社交媒體平臺的主要方式。

今年在WWDC上詳細(xì)介紹Catalyst時,蘋果透露Twitter將重返Mac。蘋果邀請Twitter的開發(fā)人員通過Catalyst構(gòu)建原生Mac Twitter應(yīng)用,而且Twitter支持Mac升級到與iPhone、iPad和iPod相同的水平。

Asphalt 9:Legends

你可能認(rèn)為移植像Asphalt 9:Legends這樣圖形密集型3D游戲會遇到額外的障礙。但這并不完全是Gameloft Barcelona圖形工程師Alex Urbano和引擎軟件工程師Manu Ruiz所描述的那樣。

“這個過程非常簡單,在新的Xcode上打開當(dāng)前的iOS項目,標(biāo)記新的macOS目標(biāo)選項,并進行編譯即可,”Ruiz說?!帮@然,它在第一次嘗試時不起作用,因為我們的一些庫在非移動設(shè)備上不受支持,例如運動控制;而且一些第三方庫沒有為macOS和x86-64平臺做好準(zhǔn)備。在重構(gòu)了一些代碼之后,我們設(shè)法在大約24小時內(nèi)編譯并運行了整個Asphalt代碼庫?!?/p>

關(guān)于圖像方面的調(diào)整,Urbano說道:“這很簡單。我們必須調(diào)整一些著色器的精度,使它們在高端Mac中以更高的分辨率正常工作,以便進一步提高性能。我們稍微改變了Metal緩沖管理的工作方式,這允許我們實現(xiàn)一些在其他平臺中不存在的效果,同時保留60fps目標(biāo)的原始分辨率?!?/p>

TripIt

iOS開發(fā)人員Rich Shimano向Ars發(fā)送了一封電子郵件,其中列出了將旅行計劃應(yīng)用TripIt從iPad遷移到Mac的每個詳細(xì)步驟:

在Xcode中構(gòu)建當(dāng)前的iPad應(yīng)用,只需要幾次迭代即可識別并刪除不支持資源上的各種依賴項,例如特定電話呼叫的框架或尚未構(gòu)建以支持MacOS的第三方iOS SDK。

遍歷所有用戶流和數(shù)據(jù)同步方案,并關(guān)閉不支持或不可用的功能。

在Mac的多窗口點擊環(huán)境中定制UI以提高用戶效率。

至于在過程中會遇到哪些挑戰(zhàn),Shimano表示,最重要的是“舊的代碼庫依賴于已棄用的蘋果框架和API以及舊版本的Swift,可能需要對現(xiàn)在的API進行重大改寫”。此外,“不具有多任務(wù)友好性和靈活布局的iPad應(yīng)用可能需要進行大量重寫,更多地依賴于自動布局,以便在桌面窗口上進行適當(dāng)渲染,即使在單個用戶會話中,這些窗口的大小和寬高比也會有很大差異?!?/p>

蘋果保證Mac應(yīng)用質(zhì)量達(dá)到桌面級

蘋果及其合作伙伴開發(fā)人員表示,Catalyst能將iPad上的應(yīng)用輕松導(dǎo)入macOS,但用戶對Mac上未來應(yīng)用質(zhì)量的擔(dān)憂仍然存在。

Project Catalyst是建立在macOS 10.14 Mojave之上,這是該公司去年推出的macOS年度重大升級。該公司推出的新聞、股票、語音備忘錄和家庭應(yīng)用也是建立在這一系統(tǒng)之上。

Mac高級用戶擔(dān)心,將iPad應(yīng)用遷移至Mac的簡單途徑將使開發(fā)人員無法提供過去用戶在Mac上享受的功能,以及功能強大且全面的桌面應(yīng)用。一部分原因是因為移動應(yīng)用往往側(cè)重于較窄的任務(wù),并且它們通常不具有與良好的桌面應(yīng)用一樣強大的功能集。另一部分原因在于,如果他們使用AppKit從頭開始構(gòu)建原生Mac應(yīng)用,UIKit和Catalyst都不會為Mac開發(fā)人員提供他們可以訪問的全部功能和框架。

當(dāng)然,我們采訪過的蘋果團隊成員并沒有此類擔(dān)憂。Ozer表示,首先,UIKit確實為開發(fā)人員提供了訪問AppKit的權(quán)限?!爱?dāng)你將UIKit應(yīng)用帶到Mac上時,我們會大量使用AppKit,例如,當(dāng)你使用工具欄、觸控條或菜單時,這些都是AppKit,”他說?!耙虼碎_發(fā)人員不必直接使用AppKit,但他們可在其UIKit應(yīng)用中使用AppKit?!?/p>

當(dāng)然,蘋果認(rèn)同AppKit是提供高端Mac應(yīng)用的方式。蘋果開發(fā)人員關(guān)系高級總監(jiān)Pruden說,她認(rèn)為Catalyst是為開發(fā)者提供了選擇,但那些創(chuàng)建強大桌面應(yīng)用的團隊將知道它是否適合自己的產(chǎn)品。

專用應(yīng)用與廣泛應(yīng)用

Benjamin認(rèn)為有多種類型的應(yīng)用,并且它們在平臺上并不相互排斥。這是了解蘋果新方法的關(guān)鍵。他說:“我認(rèn)為Mac上一直是些龐大而復(fù)雜且功能強大的應(yīng)用,它們的范圍十分廣泛。我認(rèn)為iOS上的應(yīng)用設(shè)計精良,本質(zhì)上更有針對性?,F(xiàn)在人們知道這些東西是什么,他們也希望在電腦桌面上擁有這些簡單易用的體驗。雖然網(wǎng)頁可以做到這一點,但應(yīng)用帶給用戶的體驗感更有優(yōu)勢?,F(xiàn)在你習(xí)慣于在手機和iPad上使用相對較新的體驗,那為什么不能將相同的體驗遷移到Mac上呢?”

為什么在有Web應(yīng)用時仍要制作原生Mac應(yīng)用?

雖然蘋果和微軟正在花費相當(dāng)大的努力來吸引開發(fā)人員為他們的桌面操作系統(tǒng)制作原生應(yīng)用,但谷歌正在根據(jù)不同的財務(wù)激勵來采取不同的策略。

谷歌新興的Chromebook本質(zhì)上是21世紀(jì)的虛擬終端,從頭開始設(shè)計用于Web瀏覽體驗和使用基于Web的應(yīng)用。但Mac有著悠久的專注于原生應(yīng)用的傳統(tǒng)。蘋果的開發(fā)人員為什么要通過從iPad移植軟件而不是讓Mac用戶在Safari或Chrome中訪問他們的Web應(yīng)用呢?

Benjamin認(rèn)為這與性能有關(guān)?!皯?yīng)用作為原生應(yīng)用,與用戶在Web上體驗的性能截然不同,”他說。此外,“還有另一個好處,這樣做能讓用戶在不同設(shè)備上獲得相同的體驗?!?/p>

macOS和iOS:先有雞還是先有蛋

鑒于iOS和iPadOS似乎是這種新模式的核心,我們詢問蘋果是否認(rèn)為iOS(和iPadOS)是其生態(tài)系統(tǒng)的主要開發(fā)平臺。蘋果是否希望開發(fā)人員首先支持移動設(shè)備?

Pruden回答說,不同的設(shè)備和操作系統(tǒng)適用于不同的用例,對于開發(fā)人員來說,沒有哪一個平臺比其他平臺更重要。

“從數(shù)量上來看,顯然iPhone應(yīng)用是最多的,”Pruden繼續(xù)說道?!暗也徽J(rèn)為我們會把數(shù)量作為投放精力的主要考慮因素,它也不會影響我們決定下一步支持開發(fā)人員的方式?!?/p>

然后是SwiftUI。雖然Catalyst旨在幫助開發(fā)人員將已有的iPad應(yīng)用帶到Mac上,但蘋果建議將SwiftUI視為開始新的跨平臺項目的起點。在這種情況下,首先要開發(fā)iOS或iPadOS,然后再開發(fā)macOS,就像開發(fā)所有原生蘋果平臺一樣。

了解SwiftUI

對于WWDC的開發(fā)人員而言,Catalyst并不是其唯一的重要公告,此外還包括SwiftUI。SwiftUI是一個框架,旨在使用Xcode和蘋果的Swift編程語言“在每個平臺上聲明應(yīng)用的用戶界面和行為”。

我們從蘋果開發(fā)者處了解到,SwiftUI提供視圖、控件和布局結(jié)構(gòu),用于聲明應(yīng)用的用戶界面。該框架提供事件處理程序,為你的應(yīng)用提供點擊、手勢和其他類型的輸入,以及管理從應(yīng)用模型到用戶將看到的交互視圖和控件的數(shù)據(jù)流。

你可以將SwiftUI視圖與來自UIKit、AppKit和WatchKit框架的對象集成,以進一步使用該平臺特定的功能。

雖然很難量化Swift的采用速度,但工程師和macOS及iOS開發(fā)人員Andrew Madsen最近提出了一種可行的方法,來估計Swift在蘋果應(yīng)用商城中廣泛運用的程度。

Madsen發(fā)現(xiàn)42%的應(yīng)用使用了Swift,但是當(dāng)他撇去游戲應(yīng)用時,這一比例上升到了57%。實際上,列表中沒有一個游戲使用Swift,因為它們大多數(shù)是用Unity等跨平臺工具編寫的。

“一開始,只有少數(shù)應(yīng)用使用Swift;但三年后,有約一半的應(yīng)用在使用Swift,這也表明了蘋果在引入新語言方面做的很不錯,”他總結(jié)說道。這對SwiftUI來說是個好兆頭。

至于開發(fā)人員方面,Shimano表示,TripIt在使用SwiftUI時已有一些重要的促進因素,獨立于Mac應(yīng)用。也就是說,它允許TripIt團隊與watchOS應(yīng)用共享公共代碼以改進功能校驗,并將簡化和減少顯示快速變化的旅行數(shù)據(jù)所需的代碼量,例如航班延誤和更改登機口。

“但是,我們正在嘗試特定的桌面視圖,這些視圖有可能找到支持iPad甚至iPhone的方式,”他補充道?!巴ㄟ^在單個代碼庫中編寫SwiftUI,我們應(yīng)該能夠通過Catalyst快速輕松地為我們的iPad和iPhone應(yīng)用帶來增強功能?!?/p>

Twitter的O'Brien說:“現(xiàn)在,我們專注于將非常龐大的代碼庫與許多傳統(tǒng)的UIKit接口一起移植到Mac上。目前,Project Catalyst對我們來說是一個很好的解決方案?!盩witter團隊對SwiftUI帶來的可能性感到非常興奮,并且該公司愿意在未來采用SwiftUI來獲取新功能。

制作Mac應(yīng)用的三種方法

總結(jié)一下,現(xiàn)在有三種不同的方法可以使用蘋果自己的工具和框架開發(fā)原生Mac應(yīng)用:

使用UIKit構(gòu)建iOS或iPadOS應(yīng)用,然后使用Project Catalyst將其轉(zhuǎn)換為macOS應(yīng)用。根據(jù)蘋果的說法,這是針對那些迄今為止在移動設(shè)備上更常見而不是在桌面設(shè)備上使用的專用應(yīng)用。

使用AppKit及相關(guān)框架和API為macOS構(gòu)建應(yīng)用,充分利用平臺的全部功能。蘋果表示,這適用于傳統(tǒng)的重型Mac專用應(yīng)用。

使用SwiftUI從頭開始為多個蘋果平臺構(gòu)建應(yīng)用,SwiftUI可與其他現(xiàn)有框架配合使用。這是蘋果期望開發(fā)人員在未來為多平臺應(yīng)用所做的事情。

一些Mac用戶認(rèn)為蘋果的關(guān)注點在iOS上,從而將Mac降級為替補角色。但是對于iOS、iPadOS、watchOS和tvOS而言,Mac必須取得成功。Catalyst致力于支持Mac,同時保持與公司移動平臺的緊密聯(lián)系。從長遠(yuǎn)來看,這將如何發(fā)揮作用還有待觀察。大家需要為蘋果、開發(fā)者和用戶所希望看到的最佳結(jié)果做準(zhǔn)備。

如果你看了蘋果產(chǎn)品的營銷,你可以清晰地了解到各類產(chǎn)品的目標(biāo)客戶。如今,大多數(shù)Mac主要銷售給創(chuàng)意人士和專業(yè)人士,從作家到平面設(shè)計師,從視頻編輯到開發(fā)人員再到3D動畫師。那么將Mac視為創(chuàng)作者的平臺,將iOS視為消費者的平臺,從定義來看,后者的平臺更廣。但是,如果用Xcode為Mac開發(fā)的應(yīng)用不能得到關(guān)鍵目標(biāo)客戶的青睞,那么從長遠(yuǎn)來看,移動平臺也無法生存下去。

所以蘋果面臨的第一個問題是:先有雞還是先有蛋?Mac還是移動端?要么兩個都要,要么兩個都不要,二者是共生關(guān)系。

但是如果一些iOS軟件來到Mac上,會不會出現(xiàn)用戶對兩者都不買帳的情況呢?添加了鈴聲就是一個很好的桌面應(yīng)用嗎?這些情況是否會發(fā)生不僅取決于開發(fā)人員,還取決于蘋果如何聽取和回應(yīng)開發(fā)人員在建立Catalyst和SwiftUI過程中提出的反饋。

蘋果首席執(zhí)行官蒂姆·庫克此前向用戶和開發(fā)人員保證,蘋果致力于將Mac、iOS和iPadOS打造為真正獨特的平臺?,F(xiàn)在,蘋果依然如此。但是,該公司的用戶和開發(fā)者社區(qū)正在進入未知的領(lǐng)域,較之前,這些平臺很快會緊密聯(lián)系在一起。這樣做的有益程度到底如何,還將拭目以待!


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。