第二章 編程理念
你想知道Kivy到底是什么姑蓝,什么使它與其他解決方案不同枝哄,以下篇章將闡述這些內(nèi)容展辞。
2.1 為什么使用Kivy?
為什么使用Kivy呢腥光?畢竟現(xiàn)在有很多現(xiàn)有的免費工具集(框架或者平臺等)可以使用。例如Qt和Flash糊秆,這兩個解決方案現(xiàn)在是被廣泛作為應(yīng)用開發(fā)的選擇武福。這些眾多的解決方案已經(jīng)支持了多點觸控。那到底是什么造就了Kivy呢痘番?
2.1.1 新穎
Kivy是為了今天和明天而誕生的捉片。日新月異的人機(jī)交互方式正在不斷的發(fā)展。對于多點觸控汞舱,開發(fā)工具對其的支持變得尤為重要伍纫。特意為了這種新的交互方式,我們從底層開始重新架構(gòu)Kivy昂芜。相對于以往看起來“建立良好”但帶著沉重歷史負(fù)擔(dān)的舊開發(fā)工具莹规,這樣意味著我們能夠在人機(jī)交互方面能夠考慮更加的全面。我們并不打算讓計算機(jī)處于現(xiàn)有模型的束縛(比如單指針鼠標(biāo)鼠標(biāo)交互)泌神。相反良漱,我們想讓你探索其中的可能性,這才是Kivy與眾不同之處欢际。
2.1.2 高效
Kivy 是高效的母市。這適用于應(yīng)用程序的開發(fā)速度,也適用于應(yīng)用程序的執(zhí)行速度损趋。我們已經(jīng)使用很多方法去優(yōu)化Kivy窒篱。例如通過充分利用現(xiàn)有編譯器的能力,在C語言層級上實現(xiàn)對執(zhí)行時間非常敏感的功能舶沿。更重要的是墙杯,我們采用了更加明智的算法去盡可能降低開銷。在某些任務(wù)和算法的地方括荡,我們也使用GPU高镐,今天的圖形顯卡的計算能力已經(jīng)遠(yuǎn)遠(yuǎn)超過今天的CPU,這就是為什么我們試圖讓GPU盡可能的工作畸冲,從而大大提高性能嫉髓。
2.1.3 敏捷靈活
Kivy是靈活的观腊。這樣意味著它可以在各種不同的設(shè)備上運行,包括Android支持的智能手機(jī)或者平板電腦算行。我們已經(jīng)支持了主流的操作系統(tǒng)(Window梧油,Linux,OSX)≈菪希“敏捷”也說明Kivy的快節(jié)奏發(fā)展使它能夠很快適應(yīng)新技術(shù)儡陨。不止一次,我們添加了對新外部設(shè)備和軟件協(xié)議的支持量淌。有時候甚至這些設(shè)備還沒有正式發(fā)布的骗村。Kivy還可以與大量不同的第三方解決方案結(jié)合使用。例如在Window系統(tǒng)上呀枢,我們支持WM_TOUCH多點觸摸胚股,這樣意味著任何具有window 7 筆和觸摸驅(qū)動程序的設(shè)備都可以與Kivy一起工作。在蘋果OSX系統(tǒng)上裙秋,你可以使用蘋果的多點觸摸設(shè)備琅拌,比如觸控板和鼠標(biāo)。在Linux系統(tǒng)上摘刑,可以使用HID內(nèi)核輸入事件财忽。除此以外,我們還支持了TUIO和一些其他的輸入源泣侮。
2.1.4 專注
Kivy是專注的即彪。你可以通過幾行代碼就能實現(xiàn)一個簡單的應(yīng)用程序。Kivy框架使用的是Python語言活尊,而Python是一門通用性強(qiáng)隶校,功能強(qiáng)大,易于使用的編程語言蛹锰。另外深胳,我們創(chuàng)建了一種新的描述語言——Kivy語言。它用于定義復(fù)雜的用戶界面铜犬。這門語言可以讓你快速設(shè)置舞终,連接,排列你應(yīng)用程序的每個元素癣猾。我們認(rèn)為讓你專心于應(yīng)用程序本質(zhì)功能的實現(xiàn)更甚于聚焦其他繁瑣沉重的事情敛劝。
2.1.5 資金支持
Kivy是由專業(yè)的人員踴躍參與開發(fā)的。它是由一個社區(qū)和商業(yè)支持開發(fā)的解決方案纷宇,是有資金支持的夸盟。我們一些核心人員以開發(fā)Kivy作為生計的。Kivy可以說像捶,它不是由一個業(yè)余的人員開發(fā)的小型實驗性項目上陕,它可是認(rèn)真的桩砰。
2.1.6 免費
Kivy可以免費使用。你不必為此付出代價释簿。如果你賣一個使用Kiy框架的應(yīng)用程序賺錢亚隅,你也不必要付出一毛錢。