2017-03-16 97 views
0

我是一位中等水平的用戶體驗開發人員,目前我正在爲一家醫療公司聘請的新項目學習QT/QML。我瞭解QML是一種用戶界面標記語言,它可以通過C++組件使用2009年諾基亞開發的Qt框架進行集成和擴展。 我已經研究了QML的流行性,並且令人驚訝的是它在行業中並不常見。 QML,QT框架的優點和缺點是什麼?那麼它是如何在開發人員中不被使用的,特別是在移動應用程序開發中? 雖然這是一個非常開放的問題,但我希望人們會回答。非常感激。QML/QT的行業應用

+0

QML還很年輕,遠不如QtWidget UI框架成熟。儘管QML允許跨平臺開發,但多數人更喜歡Android或iOs上的本地實現。如果您的應用程序不處理性能或性能不佳,有些人甚至可能更喜歡使用基於C++的JS進行基於Web的開發。 – DuKes0mE

+0

Qt由挪威奇趣科技公司開發,它不適用於移動開發,因爲Qt不像移動平臺那麼受歡迎。如果你想在不同的系統中使用它,你應該重新分配你的應用程序的Qt,這是一個大問題。 AFAIK奇趣科技在2008年發佈了一些產品(綠色電話或類似的產品)。之後,發生與Qt 3.x分支二進制不兼容的QT 4.x(應重新編譯或重寫所有代碼),奇趣科技被出售給諾基亞並慢慢失去不是那麼大)受歡迎。自從那時以來,我個人沒有聽說過Qt作爲移動平臺。 – user1516873

+0

對於Android/iOS,Qt/QML還不夠成熟。雖然爲這樣的平臺進行開發是可能的,並且結果可能很棒,但Qt仍然會忽略一些關鍵特性(例如,對BT,原生控件等的同質支持)。如果您的目標是在所有平臺上提供相同的用戶體驗,Qt可以是完美的選擇,而如果你想推動移動功能,你可以很容易地發現自己編寫(和維護)了很多本地代碼。總結起來,不錯的標記,不錯的表現,但仍然是從純粹的移動POV設置的功能太有限了。每個版本都略微緩解了這個問題。 – BaCaRoZzo

回答

4

與往常一樣,在選擇開發語言和/或框架時,應該通過考慮項目的需求(當前和未來)進行選擇。

當技術仍處於第一步時,我已經使用QML開發移動應用程序,其中包括一個在Android上使用Qt 4 + QML創建的應用程序。 我需要創建一個非常自定義的接口,以後可能會在基於Linux的工業觸摸屏上使用。我當時在藍牙方面做得很好。 但BT的支持已經much improved in the mean time。在@ user1516873關於代碼重寫的一點,應該注意的是,爲了避免Qt 3 - > Qt 4轉換中發生的問題,從Qt 4遷移到Qt 5的過程儘可能平滑。

黑莓的latest development platform是基於Qt/QML,以及Ubuntu的mobile system(這些可能不相關,但它們表明框架仍然是很好地適應移動平臺)。

我相信是一個QML的主要優點,特別是作爲用戶體驗開發人員,可以非常快速地開發視覺原型。原型,然後您可以直接使用它來構建您的應用程序。

在過去的5 - 6年裏,Qt公司(以前稱Digia)爲移動開發做出了很多努力 - 尤其是像Quick Controls這樣的項目,它允許您在不同平臺上創建原生界面並改進與Quick controls 2,特別適合移動和嵌入式平臺。

還有一些非常有趣的項目,例如V-Play Engine,它應該對創建原生的應用程序有很大的幫助,並在Android和iOS上爲Qt/QML添加所需的功能(免責聲明 - 我還沒有測試過)。

就我個人而言,我發現QML比Android/Java編程更易於訪問,尤其是當您創建不使用「標準」按鈕和控件的界面時。

另一方面,它是豐富的和豐富的文檔。安裝Qt Creator並查看Qt提供的示例(或check these out)。從頭開始時,它們是一個很大的幫助。

我可以想象,很多人可能會因爲C++部分而擔心Qt - 這在開始時可能看起來很可怕,但我不認爲它比Java或Objective-C更復雜。

你絕對應該給Qt一個嘗試 - 特別是因爲你已經對第一個地方感興趣 - 但是如果你打算開發一個移動應用程序,請確保你列出了你的功能需求,並在跳躍之前檢查它們的可用性。 我不會推薦Qt的任何移動應用程序。

希望這可以幫助您計算Qt/QML!