使用V-Play實現基于Qt的跨平臺原生移動應用開發
V-Play 是一個基于Qt的桌面和移動設備跨平臺解決方案。它旨在讓開發者更加方便的通過使用JavaScript和 QML (Qt 5聲明式語言)創建應用。V-Play支持iOS、Android、WindowsPhone、BlackBerry和其他移動平臺。InfoQ有幸采訪到了V-Play CEO與聯合創始人Christian Feldbacher就V-Play展開了討論。
V-Play旨在提供原生應用般的外觀和感受,其C++后段確保了高性能,Qt Quick模塊提供了簡單的動畫實現。這也使得可以通過集成自定義C++、Objective-C或者Java代碼來使用特定于平臺的功能。
V-Play最初誕生于一個2D游戲開發引擎, 最近 擴展成提供通用移動應用開發。這里有一個示例,展示了如何通過QML聲明一個使用現成V-Play用戶界面組件的簡單“Hello World”應用:
import VPlayApps 1.0 App { Page { AppText { text: "Hello World" } } }
V-Play提供了大量 組件 ,包括用戶界面、多媒體、網絡等。重要的是,V-Play提供的所有組件都使用C++實現,這確保了最佳的性能。V-Play同時宣稱,歸功于QML,用戶可以比直接使用C++少寫十分之一的代碼。V-Play提供了許多 示例應用 ,包括推ter應用、消息應用、天氣應用。
InfoQ和V-Play CEO和聯合創始人Christian Feldbacher進行了訪談,以詳細了解他們的產品。
請描述下V-Play的演化史?
V-Play基于Qt框架,它已經非常適合應用開發。主要因為這些核心優勢:
- QML(Qt元語言,Qt Meta Language):一種完全支持JavaScript的聲明式腳本語言,可以在大量節省代碼的前提下實現應用邏輯和其他功能。同時,QML也易于學習和理解。
- 動畫用戶界面和自定義主題:這些功能在QML中非常易于實現,同時這些功能對于移動應用來說變得越來越重要,QML適用于移動開發。
- 原生應用性能:Qt應用的渲染使用的場景圖渲染器,在一年前剛由Qt團隊針對移動平臺進行過重新設計和優化。這使得移動應用擁有非常好的性能。另外,Qt框架自身使用C++編寫,使得它更加原生。
因此,我們已經在內部應用開發和移動應用項目中使用Qt和其他V-Play游戲組件有一段時間了。在過程中,我們注意到我們可以在不同移動應用中重用許多新的內部組件來加速產品開發周期。
這就是 V-Play應用SDK 的起點:使用Qt框架創建移動組件,來簡化應用開發。這些組件允許開發者編寫響應式應用,可以自動適配智能手機和平板或者縱向、橫向的變化。同時,開發者也無需針對平臺的修改,即可在iOS和Android平臺上都能夠有原生用戶體驗。
在多個應用中使用了SDK,并對API進行微調之后,我們最終在2015年8月發布了第一個公開版本。
移動跨平臺競技場已經非常擁擠,你們帶來的產品的主要優勢是什么?
在我們的移動開發團隊,我們有許多移動應用開發經驗,這可以追溯到iPhone 1和Google G1發布的時候。在過去的8年中,開發領域發生了許多變化:剛開始原生iOS和Android開發是唯一的選擇,然后越來越多的框架發布,允許跨平臺開發。
過去,我們使用很多這類框架進行開發工作,目前仍然會有一些場景選擇或者推薦原生Obj-C或者Java開發。然而,對于主要的移動應用,一個跨平臺框架是節省時間和成本的最佳途徑。
如果使用基于HTML5的框架,和類似Qt或者V-Play這些原生框架相比,會有較差的用戶體驗和性能。另一方面,諸如Xamarin工具會需要編寫大量代碼來實現動畫等功能。
有了V-Play,我們的使命是創建一個易于使用的應用框架,同時保留原生應用的性能、外觀和感受,就像我們做了V-Play游戲引擎。
事實上,QML實現快速開發可以在我們提供的示例應用中體現:例如推ter應用(SDK中自帶了它的所有源碼),只有500行代碼,其中包括了訪問推ter REST API還有和推ter原生應用相同的動畫。用戶可以在這里親自查看和在自己手機上測試這個應用。
同時,由于QML構建于JavaScript之上,開發者可以輕松的學習這個框架。大部分開發者報告說他們能夠在一天后進行生產開發。因此,對新開發者的學習曲線是非常平緩的。research2guidance的跨平臺工具 去年報告 顯示:V-Play在時間節省和容易學習項上得分第一,領先于其他諸如Xamarin、KonyOne和Titanium等工具。(全世界2188名開發者參與)
V-Play最近支持了移動應用,你要添加的下一個重要功能是什么?
我們會投入大量精力在增加更多的示例應用程序上,這樣開發者可以將它們作為自己移動應用的起點,例如一個導航應用或者一個新聞應用。此外,在列表的頂部是改進工具:通過V-Play構建服務,開發者可以將應用快速部署到多個iOS和Android設備上,而無需在工作電腦上安裝任何SDK。同時,這也將會使得在Windows平臺上開發iPhone或者iPad應用成為可能。
然而,我們也仔細聆聽來自社區的功能要求。因此,如果一個功能經常被要求,我們將會優先考慮。最后,我們想要做的就是通過V-Play應用SDK,能夠讓跨平臺移動應用開發更為便捷。在過去的4年中,我們已經了解到這個目標可以通過和社區開發者協作,更好的的來完成。
V-Play提供 免費版本 以供開發者試用平臺和構建局限性的應用,這些限制包括無法使用V-Play自己的應用內購買和移動廣告插件等。
查看英文原文: V-Play Enables Qt-based Cross-platform Native Mobile App Development