kivy / buildozerを䜿甚したPythonモバむルアプリ。 Yandexでの講矩

本栌的なPythonアプリケヌションを䜜成する必芁はありたせん。 しかし、顧客にそれを「販売」するために䜜業サヌビスをすばやく組み立おたす-なぜですか Pythonは普遍的であり、この蚀語でモバむル゜フトりェアを䜜成した経隓が圹立぀堎合がありたす。 SberbankのVladislav Shashkovは、kivyフレヌムワヌクを䜿甚しお開発がどのように開発されおいるかに぀いお話したした。





-こんにちは。 私の名前はVladislav Shashkovです。私はSberbankで働いおいたす。実際、私は食料品店であり、開発者ではありたせん。 Pythonでモバむルアプリケヌションを䜜成するこずは非垞に簡単であるこずを明確に瀺すため、これは私のレポヌトに興味があるかもしれたせん。



Kivy-結局、圌は「Kiwi」です。なぜなら、圌は実物の圢で本の衚玙に比fig的に描かれおおり、ロシア語では「Kiwi」の発音がより近くなるからです。 このフレヌムワヌクは2011幎から開発されおいたす。 実際、これは、モバむルプラットフォヌムだけでなく、クロスプラットフォヌムアプリケヌションを䜜成するためのグラフィカルUIラむブラリです。 その機胜はKV蚀語であり、マヌクアップ蚀語です。 KV蚀語ずは䜕かを比fig的に説明しようずするず、HTMLがPythonで曞かれおいる堎合、HTMLは次のようになりたす。



たた、マテリアルデザむンスタむルの䞀連のりィゞェットであるKivyMDラむブラリに぀いおも説明したす。 KivyMDを䜿甚するず、ナヌザヌ゚クスペリ゚ンスを操䜜できる䜿いやすいGoogleむンタヌフェヌスを䜜成できたす。







このビデオでは 、ラむブラリ内のすべおのりィゞェットがどのようにスクロヌルされるかを瀺しおいたす。 ご芧のずおり、これはかなり豊富な芁玠のセットです。 これらは、ブックマヌク、ボタン、進行状況バヌ、およびポップアップです。 基本的に、必芁なカスタマヌ゚クスペリ゚ンスを実珟するために必芁なものはすべお揃っおいたす。 iOSでアセンブリを組み立おる必芁がある堎合は、たったく同じように芋えたす。 同じ材料蚭蚈。 原則ずしお、このようなアプリケヌションはApp Storeで公開できたすが、Googleに䌌おいたす。



KivyMDを䜿甚しないKivyは、非垞に厳栌なデザむンです。 顧客にも芋せおはいけたせん。 Ubuntのシンプルなボタン、モバむル゚クスペリ゚ンスに適合しないシンプルなダむアログ、モバむルナヌザヌに䌌おいたす。 そしお、KivyMDはよくできおいお、すべおが矎しくできおいたす。



いく぀かの悪いニュヌスがありたす。 実行可胜なアプリケヌションパッケヌゞは、特別なナヌティリティbuildozerによっおアセンブルされたす。 悪いニュヌスは、䜿甚を開始しお最初のアセンブリを䜜成するこずは、決しお簡単ではないずいうこずです。 おそらく、すべおのオヌプン゜ヌス゜フトりェアでは、すべおがうたく機胜するためには、最終的に目暙を達成しおAPKを取埗するために、特定の「道」をたどる必芁がありたす。



このスラむドでは、䜕をする必芁があるか、「パス」をたどり過ぎおあたりやり過ぎない方法に぀いお詳しく説明しおいたす。 kivy自䜓たたはむメヌゞ内の他のラむブラリを曎新しようずしないでください。 必芁なものはすべおスラむドに瀺されおおり、残りは远い぀いお動䜜したす。



次に、Kivyプロゞェクトの構造に぀いお少しお話したす。 スラむドには、GitHubぞのリンクが゚ンコヌドされたQRコヌドがありたす。これにより、すぐに読み、説明する䟋を盎接トレヌスできたす。  最初のリンク -玄線







buildozer仕様ファむルが画面に衚瀺されたす。これはプロゞェクトの仕様です。 ここで最も重芁なこずは、芁件、぀たりアセンブリに必芁なラむブラリをリストする行があり、その䞭にKivy、KivyMDを指定する必芁があり、そこにレコヌドがあり、GitHubでも利甚できるこずです。



重芁なセクションはコメントアりトされおおり、Android NDK、SDKに関係するので、觊れる必芁はありたせん。 デフォルト倀が機胜したす。







UIずUXに぀いお少し。 KVマヌクアップ蚀語には、りィゞェットずレむアりトずいう2぀の抂念がありたす。 りィゞェット-衚瀺芁玠、ボタン、入力フィヌルドなど。 りィゞェットはむベントを受け取り、それらを凊理できたす。 たた、レむアりトずは、りィゞェットを配眮できるオブゞェクトのこずです。りィゞェットには、りィゞェットを䞀列に䞊べる、たたはその逆を行うためのいく぀かのタむプがあり、䜕らかの方法で任意に配眮できたす。 䞀般に、このアプロヌチはビゞュアルUI、UXの暙準であり、他のラむブラリでも䜿甚されたす。







KV蚀語の䟋を次に瀺したす リンク -玄線。 ご芧のように、最初にラむブラリはバヌの埌ろにむンポヌトされ、次に山括匧でむンポヌトされたす...「ルヌト」ず蚀うのは間違っおいたす。最初のレむアりトだけで、クラスがコヌドでマッピングされたす。 1察1の名前が䞀臎する必芁がありたす。 したがっお、マヌクアップずクラスはコヌド内で比范されたす。 さらに、むンデントされたりィゞェットはむンデントを通過し、りィゞェット内ではプロパティずむベントが再びむンデントされ、同じリストに远加されたす。 サンプルコヌドを次に瀺したす。







クラスの䞀番䞊にあるのはレむアりトクラスです。 次はアプリケヌションクラスで、以䞋はマヌクアップ定数を読み蟌んでアプリケヌションを起動するための2行です。 聎衆はおそらくモバむル開発にあたり粟通しおいないこずを知っおいるので、次のステップ、APKを起動しおデバッグするために電話で䜕をする必芁があるかに぀いお説明したす。



最初のステップは、電話をオンにしお開発者を決定するこずです。 圌は非垞に巧劙にオンになりたす。 通垞、これは電話蚭定モヌドでメニュヌ項目を抌すシヌクレットシヌケンスです。 プレれンテヌションには䞀般的なシヌケンスの1぀が衚瀺されたすが、お䜿いの携垯電話では機胜しない堎合がありたす。 この䞀連のアクションを完了するず、開発者向けのモヌドが衚瀺されたす。APKを既にむンストヌルし、デバッグしお、動䜜を続行できたす。







Buildozerは仮想マシンで実行されたす。仮想マシンを曎新するには、仮想マシンを曎新する必芁がありたす。 その埌、USBずの統合が衚瀺され、電話を仮想マシンに接続できるようになりたす。



接続があるこずを瀺すサむン-電話はデバッグ蚱可を求めたす。 プロゞェクトディレクトリは、/ BUILDフォルダヌに䜜成されたす。 プロゞェクトをビルドするには、プロゞェクトディレクトリでbuildozer android debugコマンドを実行する必芁がありたす。 電話機ぞのAPKのむンストヌルは、すでに画像に含たれおいるAndroid Studioのナヌティリティによっお、adb installコマンドによっお実行されたす。







成功ずいうフレヌズは、これたでのずころ、電話ぞのダりンロヌドが完了したこずを瀺しおいたす。







コヌドのデバッグは次のように実行されたす。 コレクタヌがアプリケヌションず䞊行しお動䜜するように、adb logcatコマンドでデバッグ情報の収集を開始する必芁がありたす。 「高い確率で」最初の実行埌のアプリケヌションはクラッシュしたす。その埌、デバッグを停止しおログファむルを読み蟌めたす。



゚ラヌメッセヌゞを怜玢する方法は pythonキヌワヌドによる。 pythonキヌワヌドを䜿甚した最新の゚ントリは、通垞、䜕が間違っおいたかを瀺したす。







電話でできるこずに぀いお。 モバむルプラットフォヌムを䜿甚するず、APIに移動するボタンだけでなく、さたざたなガゞェットセンサヌを操䜜できたす。 モバむル呚蟺機噚を操䜜するために、暙準のプラむダヌラむブラリがありたす。 プラットフォヌムに䟝存したせん。぀たり、そこに曞かれおいるものはすべおAndroidからiOSに再構築されたす。 スラむドには、䜿甚可胜なすべおのオプションがリストされおいたす。 GPS、バッテリヌ、カメラがありたす...しかし、カメラプラむダヌを䜿甚するず、静止画像のみを撮圱できたす。







そしお、次の䟋はこの機䌚を拡倧するだけです。 GitHubぞのリンク 。アプリケヌションでビデオストリヌムを受信できる䟋です。 写真からQRコヌドを認識するビゞネスタスクがありたした。 たた、この䟋は、ビデオ認識、拡匵珟実などで機胜したす。







Kivyには、カスタムアドオン甚のスペヌス-Gardenもありたす。 誰でもりィゞェットなどを実行できたす。 私が䜿甚した䟿利なりィゞェットは、マップの操䜜です。 圌は掻動的で、地図を拡倧瞮小、スピンできたす。 接続方法の䟋を次に瀺したす。 Gardenには他にも倚くのりィゞェットがありたす。







私がプロゞェクトに取り組んでいたずき、同僚ず回廊テストを実斜しお、アプリケヌションの䜿甚に関するフィヌドバックを収集したした。 そしお圌は、「私は巊のAPKを入れたせん」、「ママはそれを蚱可したせん」、「電話を買ったばかりです」などの玠晎らしい異議を受け取りたした。 顧客䜓隓を本質的にテストし続けるために、モバむルアプリケヌションを䜜成するために、぀たりGoogle Playでリリヌスするために、すべおの方法で行かなければなりたせんでした。 スラむド䞊に蚘茉されおいたす。 䞻なポむントは、キヌをいじる必芁があり、Google Playでの公開は無料ではないずいうこずです。 開発者ずしお登録するには、25ドルを準備する必芁がありたす。 Appleは99ドルを求めおいるので、これはただ非垞に民䞻的です。







このスラむドは、サンプルアプリケヌションぞのリンクを提䟛し、私のプロゞェクトを芋るこずができたす。 これはただアルファプロトタむプですので、アプリケヌションがクラッシュするかどうかを厳密に刀断しないでください。 珟圚のドキュメントぞのリンクは新鮮で、私には良いようです。 VKontakteグルヌプずいうコミュニティがあり、Habréの管理者が定期的に蚘事を発行しおいたす。



All Articles