跨平臺工具詳解:Qt(Nokia)
Qt共有三種license可以獲得,包括兩種開源的版本(LGPL v2.1和GPL v3)以及一個需要付費(fèi)的商用license。Qt開發(fā)框架被Nokia內(nèi)部分割成兩部分,分別負(fù)責(zé)維護(hù)和開發(fā)。從2011年11月起,Nokia削弱了在Qt上面的控制等級,并且允許第三方以一種更平等的方式來參與地圖以及特色應(yīng)用的開發(fā)。
主要產(chǎn)品和技術(shù)
Qt是個C++ UI以及應(yīng)用框架作為其核心內(nèi)容,擁有十分寬廣的平臺支持面(包括iOS,Android,Symbian,Tizen,MeeGo,Windows Mobile,Mac OS,Windows ,Linux以及一些其他的嵌入式環(huán)境)。除了C++語言之外,還可以使用QML(Qt Meta Language,這是一種陳述性語言,使用了一些Javascript元素使得UI和邏輯的編程更加簡單。此外QML還可以使用Qt C++擴(kuò)展,或者綁定C#,.Net,Java,Lua,Perl Python和PHP)。請注意Qt程序庫增加了大約額外的12MB到app負(fù)載,WebKit的額外負(fù)載是它的兩倍,這些將在下一個版本被改善,Qt5引入了模塊化,可以將沒用的組件從框架中剔除。
開發(fā)人員也可以通過WebKit引擎使用HTML,JavaScript和CSS來實(shí)現(xiàn)用戶接口,混合編程語言以及使用WebViews會造成一些額外的性能開銷,否則的話其性能開一說能與native app相媲美,使用C++編譯(擁有抽象層接口讓 core app與操作系統(tǒng)交互)應(yīng)該比Java更快一些。Qt開發(fā)人員更傾向于把性能作為他們的選擇標(biāo)準(zhǔn):32%選擇了這一點(diǎn),而對于其他工具的均值來說只有20%;此外,對于性能方面的用戶滿意率也比較高。
Qt SDK由一些代碼庫組成,Qt Designer和Quick Designer擁有很多可視化編輯器,開發(fā)工具等,諸如Qt quick UI Creation Kit,Mobile APIs,Symbian仿真器還有Meego Devices。另外,還有很多Visual Studio和Eclipse IDE的插件。
市場影響力
Nokia估計(jì)大約有五十萬研發(fā)人員使用Qt,此外從該平臺發(fā)布以來大約超過兩萬種應(yīng)用是用Qt做出來的,其中一半是桌面平臺應(yīng)用。Qt作為一種廣泛使用的編程平臺,應(yīng)用在移動(Symbian和Android),桌面和嵌入式設(shè)備,無線流量控制,汽車終端,機(jī)頂盒和打印機(jī)等諸多領(lǐng)域。放眼未來,對于Nokia Series 40的轉(zhuǎn)型來說Qt還處在一個不確定的狀態(tài),其未來的潛力依舊撲朔迷離。
市場定位
Qt可能是在Apple和Google時(shí)代來臨之后***幸存的應(yīng)用框架競爭者了,與此同時(shí)我們可以看到JavaMe和Flash都在持續(xù)走下坡路。在移動開發(fā)方面的調(diào)研結(jié)果上Qt的用戶體驗(yàn)比其他工具略高一點(diǎn)點(diǎn):30%的Qt開發(fā)人員擁有超過五年的開發(fā)經(jīng)驗(yàn),而行業(yè)均值為17%;而在這群開發(fā)老手里面,擁有網(wǎng)站開發(fā)經(jīng)驗(yàn)的卻比較少,只占42%的開發(fā)人員擁有超過五年的開發(fā)經(jīng)驗(yàn),而均值為66%。Qt的開發(fā)人員可以把C++編程與HTML/Javascript以及QML整合在一起,并不需要考慮其他快速開發(fā)工具。
除了桌面和嵌入式系統(tǒng)之外,Qt現(xiàn)在也被使用于針對Android和iOS的跨平臺應(yīng)用開發(fā)了,盡管他們都已經(jīng)在“Tier 3”并且沒有主流支持。通過Lighthouse項(xiàng)目可以獲得Android的支持,同時(shí)iOS社區(qū)推動項(xiàng)目也在支撐Qt Core前進(jìn)(但不是GUI)。作者的調(diào)研結(jié)果表明,48%的人把Qt作為主要工具并且把Android作為一個關(guān)鍵平臺目標(biāo);iOS占18%。Qt開發(fā)人員的目標(biāo)平臺為:MeeGo/Tizen(80%),Symbian(73%),Windows PC(55%),Mac(36%)這方面比其他工具的均值要明顯高很多。
Qt開發(fā)人員的主要目標(biāo)app類型更加混雜,公共事業(yè)應(yīng)用占了38%(均值只有18%),企業(yè)應(yīng)用展29%(均值39%),提高效率的工具應(yīng)用25%(與均值持平)。