|
還記得剛開(kāi)始學(xué)Python那會(huì)兒 總覺(jué)得這門(mén)語(yǔ)言只能做做數(shù)據(jù)分析 寫(xiě)寫(xiě)爬蟲(chóng)腳本。有一次項(xiàng)目經(jīng)理突然問(wèn)我能不能用Python開(kāi)發(fā)手機(jī)APP 我當(dāng)時(shí)就懵了。 那時(shí)候滿(mǎn)腦子想的都是Java和Swift 從來(lái)沒(méi)想過(guò)Python還能做移動(dòng)端開(kāi)發(fā)。 01直到遇到了Kivy這個(gè)框架 我才發(fā)現(xiàn)原來(lái)Python的世界這么廣闊。Kivy就像是一座橋梁 讓我們可以用熟悉的Python語(yǔ)法來(lái)開(kāi)發(fā)跨平臺(tái)的移動(dòng)應(yīng)用。 最讓我興奮的是什么呢? 一套代碼 同時(shí)支持Android和iOS!這簡(jiǎn)直就是獨(dú)立開(kāi)發(fā)者的福音啊。 安裝Kivy其實(shí)很簡(jiǎn)單: pip install kivy但我踩過(guò)一個(gè)坑 在Windows上直接安裝可能會(huì)遇到依賴(lài)問(wèn)題。建議先安裝一些必要的依賴(lài): 02第一個(gè)Kivy程序?qū)懫饋?lái)特別有成就感。我還記得那種從控制臺(tái)程序跳到圖形界面的激動(dòng): from kivy.app import App代碼運(yùn)行起來(lái)的那一刻 真的有種'我也能做APP了'的感覺(jué)。 03布局管理是Kivy的核心概念 剛開(kāi)始我總是搞不清楚各種Layout的區(qū)別。BoxLayout適合線(xiàn)性排列 GridLayout適合網(wǎng)格布局 FloatLayout可以自由定位。 有個(gè)小技巧我覺(jué)得特別實(shí)用。 在調(diào)試布局的時(shí)候 可以給每個(gè)組件設(shè)置不同的背景顏色: 這樣就能清楚地看到每個(gè)組件占據(jù)的空間了。 04打包成APK的過(guò)程確實(shí)有點(diǎn)復(fù)雜 我第一次折騰了整整一個(gè)周末。推薦使用Buildozer這個(gè)工具 它能自動(dòng)處理很多繁瑣的配置: pip install buildozeriOS打包稍微麻煩些 需要Mac環(huán)境和開(kāi)發(fā)者賬號(hào)。 不過(guò)說(shuō)實(shí)話(huà) Kivy的性能確實(shí)比不上原生開(kāi)發(fā)。如果是對(duì)性能要求特別高的應(yīng)用 比如游戲或者復(fù)雜的動(dòng)畫(huà)效果 可能還是得考慮其他方案。 但對(duì)于大部分業(yè)務(wù)應(yīng)用來(lái)說(shuō) Kivy完全夠用了。 05現(xiàn)在回頭看 當(dāng)初選擇學(xué)習(xí)Kivy是個(gè)正確的決定。雖然它不是最熱門(mén)的移動(dòng)開(kāi)發(fā)框架 但確實(shí)讓我們Python開(kāi)發(fā)者有了更多的可能性。 特別是對(duì)于原型開(kāi)發(fā)和小型項(xiàng)目 Kivy的開(kāi)發(fā)效率真的很高。一個(gè)周末就能做出一個(gè)可以演示的APP原型 這在傳統(tǒng)的原生開(kāi)發(fā)中是很難想象的。 當(dāng)然了 任何技術(shù)都有它的適用場(chǎng)景。如果你已經(jīng)是Python開(kāi)發(fā)者 想要快速進(jìn)入移動(dòng)開(kāi)發(fā)領(lǐng)域 Kivy絕對(duì)值得一試。如果是專(zhuān)門(mén)做移動(dòng)開(kāi)發(fā)的 可能Flutter或者React Native會(huì)是更好的選擇。 最后提個(gè)醒 Kivy的官方文檔寫(xiě)得挺詳細(xì)的 遇到問(wèn)題多查文檔 社區(qū)也比較活躍呢。 |
|
|
來(lái)自: yan3 > 《移動(dòng)端》