专访iOS开发框架BeeFramework作者郭虹宇
BeeFramework是一個iOS應(yīng)用開發(fā)框架,由國內(nèi)開發(fā)者郭虹宇創(chuàng)立并且在Github上開源。經(jīng)過一年多的發(fā)展,BeeFramework在Github上,得到了廣泛關(guān)注,有1000多的star數(shù)和400多的fork數(shù)。
InfoQ采訪了BeeFramework的作者郭虹宇(@老郭為人民服務(wù)),他活躍于iOS開源社區(qū)。從2006年大學(xué)畢業(yè),一直從事著跟手機相關(guān)的研發(fā)工作,包括UI框架、輸入法、瀏覽器、播放器、社交軟件、休閑游戲等。2012年從騰訊離職開始了創(chuàng)業(yè)之路,目前加入GeekZooStudio,負責(zé)公司的技術(shù)研發(fā)和管理工作。
InfoQ:請介紹一下BeeFramework這個項目的背景,當(dāng)初為什么打算做這個項目?
郭虹宇:BeeFramework的出現(xiàn)并非偶然,與我的工作經(jīng)歷有較大有關(guān)系。
12年我在騰訊負責(zé)的其中一個項目是手機QQ空間iOS版,因為其代碼曾經(jīng)分別由幾波團隊交接過,較為混亂,以至于很難繼續(xù)維護。同時需要應(yīng)對新需求,又要維護老的代碼,要求2周一個迭代輸出版本。在這種情況下,老的代碼結(jié)構(gòu)之上基本無法完成產(chǎn)品的快速迭代,更別說并行的新項目的啟動。當(dāng)時,公司內(nèi)部根本就沒有一套可以復(fù)用的框架或類似的東西,包括許多重點項目在內(nèi),都是基于很多開源組件拼湊而成,于是有了開發(fā)一套簡單通用MVC框架的想法。
第一個版本,大概兩周時間完成了框架中Controller的部分以及相關(guān)代碼自動生成工具。這個版本首先在QQ空間和QQ游戲大廳兩個項目中運用起來,得到不錯的效果。我在離開騰訊之后,基于以往在騰訊做項目的經(jīng)驗,將這個框架全面應(yīng)用在真正的創(chuàng)業(yè)項目中,并取名為Bee,寓意著 “敏捷、高效” 的意思。2012年底,我將該項目開源在Github社區(qū)中,最初是0.1版,迄今共發(fā)布了5個大版本,最新版本為0.5.0。
InfoQ:BeeFramework在中國現(xiàn)在有哪些主要的客戶在使用?
郭虹宇:目前開發(fā)者數(shù)量在1300人左右,其中以個人和創(chuàng)業(yè)公司使用居多,大公司占少數(shù)。
據(jù)我所知,騰訊內(nèi)部的一些產(chǎn)品有在使用,如?GT隨身調(diào)和pengo微博。新浪團隊?wèi)?yīng)該也有在用,其他的還有:北京電視臺、屈臣氏中國等。我們的自有產(chǎn)品?ecmobile.me?也完全基于BeeFramework。
InfoQ:業(yè)界內(nèi)還有哪些與BeeFramework類似的框架?BeeFramework和他們相比有什么優(yōu)缺點?
郭虹宇:國內(nèi)還沒有,國外類似的有Pixate、NUI、Masonry等,相比之下這三者都在初級階段。
BeeFramework是全棧式(Full-Stack)半混合型(Semi-Hybrid)的適合于大規(guī)模(Large-Scale)的App開發(fā)框架,是一套App從無到有的整體解決方案,不僅提供了XML+CSS的開發(fā)方式,也提供了幾乎滿足你所有需求的組件,另外也提供了一系列的輔助工具。
Pixate / NUI,可以當(dāng)做原生控件對CSS的擴展支持來用,兩者不能當(dāng)做完整的APP解決方案。
Masonry,是對AutoLayout的一種語法上的封裝,允許原生界面支持相對比較復(fù)雜的響應(yīng)式布局,像是一種過度的技術(shù)。
對比使用方式上,其它框架更傾向于原生的開發(fā)方式,而BeeFramework傾向于前端開發(fā)的方式,允許開發(fā)者通過XML+CSS編寫模版。
對比實現(xiàn)方式上,其它框架更傾向于依賴平臺相關(guān)API,而BeeFramework是獨立于平臺之上的,不會因為系統(tǒng)升級而出現(xiàn)兼容性問題。
另外BeeFramework還有數(shù)十個組件可以提供給開發(fā)者使用,這個目前為止包括Github所有iOS開源項目在內(nèi)都無法比擬。
BeeFramework是真正屬于框架類的產(chǎn)品,目前在Github中Framework類排名全站第8名,在Objective-C語言的Framework中第2名。
InfoQ:BeeFramework為什么選擇一個基于XML和CSS的布局方案?
郭虹宇:隨著iPhone/iPad/Android手機的普及,各大手機生產(chǎn)廠商包括蘋果在內(nèi),已不安于現(xiàn)狀只研發(fā)固定分辨率的手機產(chǎn)品。越來越多的事實證明,固執(zhí)的巨人Apple也擴大產(chǎn)品線,不光在物理屏做了改變,技術(shù)上也逐步從靜態(tài)布局到AutoLayout,一切都是在暗示著開發(fā)者,未來的手持產(chǎn)品將是多樣化的,不再是iPhone4 Retina屏的單一產(chǎn)品做為行業(yè)標(biāo)準(zhǔn)的年代。
記得iPhone5和iOS7出現(xiàn)的那一年,想必讓全球iOS開發(fā)大吃一驚,界面比例和樣式不再兼容,寫死坐標(biāo)必死無疑。如果App在開發(fā)時只考慮了一種分辨率,那接下來的UI適配工作將是天翻地覆的。此前如此,此后更是如此。
12年的時候,我了解到Responsive Design這一概念,這時才真正的意識到歷史是可以重復(fù)的,技術(shù)也可以是復(fù)用的,在Web前端領(lǐng)域已有更優(yōu)秀的考慮更全面的響應(yīng)式UI解決方案,被Business insider等多家評為未來的趨勢。Google的Android系統(tǒng)是開放性的,在設(shè)計時就考慮到了這一問題,通過另類的XML方式提供給界面響應(yīng)式的能力。
BeeFramework說白了是iPhone4/4S時代出現(xiàn)的一個產(chǎn)物,那時Apple對于響應(yīng)式布局并沒有概念,隨著各種UI問題的出現(xiàn),必會有人給出答案。我們早先一步考慮到了這個問題,結(jié)合Web與Android的實現(xiàn)方式,BeeFramework獨創(chuàng)了MobileXML+MobileCSS來解決UI響應(yīng)式的問題,即Semi-Hybrid模式,我相信這將會是未來的一個趨勢。
InfoQ:未來BeeFramework打算往哪些方面發(fā)展?
郭虹宇:2014年計劃輸出到1.0正式版本,重點解決幾個問題。
在以上這些完備的同時,我們將推出一系列的跨平臺標(biāo)準(zhǔn)UI庫和快速開發(fā)組件,免費開源的提供給開發(fā)者使用,可能會類似于國外的ThemeForest,這些都需要長時間的技術(shù)積累才能夠?qū)崿F(xiàn)。
InfoQ:BeeFramework收到了多少來自開源社區(qū)的代碼貢獻?收到了多少來自開源社區(qū)的bug報告?
郭虹宇:Issue: 70+, Pull Request: 70+
InfoQ:你認為一個成功的開源項目需要具備哪些特點?
郭虹宇:
InfoQ:你為什么選擇將BeeFramework開源?
郭虹宇:與Geek Zoo Studio的文化有極大的關(guān)系,崇尚使用開源、分享開源。
InfoQ:你每天有多少精力花在BeeFramework的開發(fā)上?
郭虹宇:幾乎每天都在修改BeeFramework,最忙的時候每天差不多一半時間花在上面。
InfoQ:你從BeeFramework得到的最大收獲是什么?
郭虹宇:開源使我們收獲了未來,我想很多開源愛好者與我有共同的感受。通過開源與許許多多開發(fā)者或創(chuàng)業(yè)公司變成了朋友,Geek Zoo Studio也通過開源收獲了更多的客戶。以前,我們的產(chǎn)品來自于開源社區(qū),現(xiàn)在,我們的產(chǎn)品將回饋于開源社區(qū)。
我堅信,未來是通過現(xiàn)在付出的的努力而換來的回報。
?
原文: http://www.infoq.com/cn/news/2014/01/interview-author-guohongyu/總結(jié)
以上是生活随笔為你收集整理的专访iOS开发框架BeeFramework作者郭虹宇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS快速开发框架--Bee Frame
- 下一篇: iOS快速开发框架Bee-Framewo