iOS與開源:一枝紅杏出墻來

jopen 10年前發布 | 13K 次閱讀 IOS

導讀:

對一般人而言,蘋果和其構筑的iOS帝國,給人的印象是一個圍墻花園(Wall Garden),如果你不在其中,就無法領略里面的勝景。對于開發者而言也同樣是這樣,無論你用什么平臺工具開發出來的iOS App,最后總是要用OS X上面的Xcode進行編譯打包,并上傳到蘋果的開發者中心,通過官方審核后才能最終與世人見面。在這之前,甚至沒有人知道你付出的心血。

這個圍墻花園也是開源支持者對蘋果頗有微詞的地方,不過,現在這種情況已經有所改變,在iOS開發者的自發努力下,開源意識和行動慢慢深入人心。

蘋果的開源

在討論iOS開源之前,我們有必要先了解一下蘋果對開源軟件的態度。

和一般人所想象的不同,蘋果對開源軟件非常支持,它稱自己為第一個將開源軟件作為關鍵戰略的大型個人計算機公司,同時它也是開源的重要參與者,對開源的貢獻在眾多科技公司中是排名靠前的。

蘋果有專門的源碼官網:opensource.apple.com,有自己的開源協議APPLE PUBLIC SOURCE LICENSE(APSL),這是一個相對寬松的協議,已獲得了自由軟件基金會FSF的認可。在源碼網站上標注為APSL的軟件基本上都是蘋果貢獻的。在這里也有一個蘋果開源軟件的具體列表。

其中,蘋果最為著名的開源項目有下面兩個:

Darwin:這是蘋果最重要的開源項目,驅動著蘋果OS X系統,直到現在的Yosemite。它是一種類Unix的混合操作系統,其內核包括Mach、FreeBSD等。從2001年蘋果基于它開發出Mac OS X 10.0時開始就將它開源,一直到現在。

WebKit:WebKit是瀏覽器引擎,它是KDE開源項目旗下的KHTML和KJS的一個分支,但目前它的流行程度已經遠遠超過后者,尤其在移動互聯網領域幾乎統治了移動瀏覽器。

蘋果的其它知名開源項目還有為異構計算打造的OpenCL,以及服務發現協議實現Bonjour,以及作為主要贊助者的LLVM。

這些開源項目任何一個拿出來都可以羞煞國內的互聯網公司,并成為任何重視技術的公司的鎮山之寶。這些足以說明,蘋果是開源的積極參與者。

那么,既然是這樣,為什么它還被認為封閉呢?

如果繼續深入了解一下我們會發現,蘋果對開源的態度是讓其為我所用,它的開源目的是為了讓自己的產品更好,對于構成自己產品核心的開源項目蘋果是嚴 格控制的,因此可能和社區的貢獻者產生分歧。比如WebKit,2013年Google宣布推出它的分支,其中的原因之一就是蘋果的控制過嚴,無法滿足滿 足搜索巨人的需求。

這種態度還可以在iOS系統中的開源軟件看出,相較于OS X龐大的開源軟件列表,iOS不僅開源的系統版本嚴重滯后(截止發稿時才公布至iOS 6.1.3版),而且里面的軟件很少,大部分還是因為開源協議的要求不得不公布(如一些GPL、LGPL協議下的開源項目)。

但是,雖然蘋果對于iOS上的開源非常謹慎,iOS開發的生態圈卻呈現出樂于分享的形態,這是為什么呢?首先需要歸功于CocoaPods的崛起。

CocoaPods的崛起

CocoaPods是Objective-C編程語言的一個應用程序級別的依賴管理器,作用是幫助開發者管理程序中用到的第三方庫。在沒有 CocoaPods之前,我們需要手工的添加和配置和更新第三方庫,由于第三方庫之間可能存在錯綜復雜的依賴關系,因此這是一個繁瑣而令人頭疼的問題。

CocoaPods自項目的發起者Eloy Durán從2011年9月發布第一個正式版以來,迅速受到廣大Objective-C開發者的喜愛,到本月它的總下載次數超過100萬次,連非死book發布的iOS第三方庫也支持CocoaPods,可見它的影響力。

CocoaPods的宗旨是提高第三方開源庫的可見性和參與度,創建一個更中心化的生態系統。當用戶使用它時,需要獲取第三方庫的源碼進行編譯,所 以,這是一個只有開源參與者才能進入的游樂場。CocoaPods本身托管在Github上,它所維護的第三方庫列表的主倉庫也托管在Github上,它 的開發社區非常活躍,貢獻者高達200多人,曾獲得Github 2013年度最活躍的開源項目前十名。

iOS開源閉環

但是,光有CocoaPods并不能解決第三方庫的發現問題,這時Github和一些代碼庫就派上用場了。大多數支持CocoaPods的第三方庫都托管在Github上,我們可以通過Github趨勢中的Objective-C語言分類進行查看,而如CocoaControls或CocoaChina代碼庫這樣的第三方代碼庫,則更專注于OS X/iOS領域的代碼,并且分類更細致,開發者可以更順利的找到喜歡的第三方庫。

iOS與開源:一枝紅杏出墻來
iOS開源閉環

就這樣,CocoaPods – Github – 第三方代碼庫 – 開發者,這四者形成了一個iOS開源的閉環,隨著參與者的增多,變得越來越強大。

目前CocoaPods上的第三方庫已經超過6000個,越來越多的iOS開發者將自己的代碼開源并分享到CocoaPods里,這股鮮活的力量已經潛移默化的改變了iOS開發的生態。

值得一提的是,許多國人iOS開發者也參與到這場開源運動當中,如KevinLexOnevcatgavinkwoeqfishxhzengAIB等,并且其中不少人的項目在Github取得了不錯的成績——當國內開源界還在感嘆,國人對開源的態度是如何只索取不貢獻的時候,國人iOS開發者已經參與到開源中來并且結出碩果。

開源運動對iOS開發的影響

對iOS開發有所了解的人會知道,iOS應用開發的難點在于數據存儲、網絡、UI動畫等方面,如果沒有第三方庫,自己寫起來很費勁,整個iOS App開發的時間和成本也會水漲船高。有了第三方庫,就能提高效率,讓開發者專注于開發核心邏輯和優化上面,簡化了iOS開發的流程。

在Github上有超過2500 star的iOS圖表庫PNChart的作者Kevin表示,iOS的開源項目就像積木塊,使用開源項目進行iOS開發,就像搭積木。毫無疑問,這會大大 降低iOS開發的門檻,雖然這樣一來可能會造成iOS開發者隊伍的良莠不齊,最終影響iOS應用的質量,但有著蘋果的把關,相信問題不會太大。而門檻降低 帶來的好處相比它的負面影響更大,一些好的應用idea能夠更輕易的實現,我們將擁有更多讓人眼前一亮的App。

目前,已經有很多知名公司開發的App都使用了第三方的iOS開源庫,比如非死bookPaper、Instagram、LinkedIn、 Skype等都大量使用了第三方庫,國內的互聯網公司也有不少使用的。這些公司都有能力開發出自己的第三方庫,但仍然選擇了“不重復造輪子”,說明了這些 iOS第三方庫有存在的必要,并且已經發揮了價值。

而另外還有一個現象是,Github上iOS相關的UI界面和動效的開源項目,它們多半都配有動態圖片,形成Github上一道亮麗的風景。這些項 目已經半只腳踏進了設計的層面,和蘋果對于設計嚴格保護不一樣,這些項目的貢獻者樂于分享他們所創造和發現的美妙效果,即使是設計師,甚至其它平臺的開發 者也可以在它們身上汲取靈感。

就這樣,iOS開發者自發的開源行動不僅漸漸改變了iOS開發的方式,而且影響力將超出蘋果所設置的藩籬,成為開源、開放與自由精神的成功典范。就像墻內的紅杏,不甘寂寞,勇敢攀上墻頭綻放,從此點亮了整個世界。


(本文作者:CocoaChina編輯pockry 歡迎轉載)

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!