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