前置き
PythonのGUI開発に特化したKivyについて説明をしています。Kivyはクロスプラットフォーム開発を謳っていてデスクトップアプリやモバイルアプリを作成することができます。
正直、日本ではKivyはあまり普及していません。普及しない原因として挙げられるのがユニコード文字対応が不十分であることです。しかし以前に比べて課題はあるものの一応日本語対応はされています。また情報の少なさだと思います。公式サイトが英語であることに加えてかなり説明不足であると筆者は考えます。当コンテンツは一部有料になっていますが、なるべく多くの情報を載せられるように努力します。当コンテンツは基本的に公式サイトやネット上の情報やAIを元ネタとして説明し直していているに過ぎません。有料ページは自力で調べて頂くことが可能な内容も多く含まれています。それを踏まえてご購入を検討して頂ければ幸いです。また検証はしていますが正確では場合がありますのでご了承ください。
必要な知識
Pythonの基本構文を学習済みの方向けとなっています。特にClassを理解している事が前提となります。Kivyがclassを使用して書くため、これを理解している必要があります。
動作環境
当サイトでは下記の開発環境で動作確認を行っていますのでこれに合わせた環境の説明を行っていきます。他のOSや他のコードエディタをお使いの方は別途調べて頂ければと思います。※コード自体はOSに依存しません。
- OS:Windows11
- Python:Python3.12.7
- GUIライブラリ:Kivy2.3.0
- コードエディタ:Visual Studio Code(VSCode)1.94.2
Python+Kivy入門で説明するKivyの構文
KivyはPython言語とkv言語(Kivyの言語)で書くことができます。Python言語のみで書くこともでききるし、Python言語とkv言語を組み合わせて書くことができます。更にはその中で色々な書き方があります。当サイトではPython言語とkv言語を組み合わせて書く方法を主に説明しています。Python言語のみで書きたい場合は当サイトは向いてませんので注意してください。
Kivyの日本語対応
Kivyはもともとユニコード文字列(日本語などの文字セット)に対応していませんでしたが、対応されるようになりました。しかしまだ多くのの問題が残っているということを最初にお知らせしておきます。まだ日本語対応には問題はありますが、kv言語を使用したKivyアプリはコード量がかなり減り生産性が良いので筆者は気に入っています。
モバイルアプリを作りたくてPythonを学ぶ場合
AndroidアプリやiOSアプリの開発をしたいと思っているなら、筆者はFlutterやネイティブ言語をお勧めします。Kivyでのモバイルアプリ開発は日本語入力がまだ完全に対応されていないので注意してください。Pythonにこだわる場合、Kivyを選択するにしても、他のGUIライブラリを選択するにしても、Pythonで開発を進める上でモバイルアプリ用の課金プログラムの変換を簡単にできるライブラリがあるのかどうか、モバイルアプリ用のファイル変換がどれくらいの難易度なのか、あなたが無駄な時間を過ごさないためにもこれらを調べてから開発を進めることをお勧めします。
本よりWebの方が良い
この手の教材はデジタル書籍やWebの方が向いていると筆者は考えます。何故なら頻繁にアップデートされて仕様が変わってしまうからです。せっかく本を買ったのにその通りにやったのにできなかったなんて経験はありませんか?ちょっとバージョンが変わっただけで動作しないなんてことは当たり前の様に起こります。Webの場合はページに制限がないことや更新が容易に行えることがメリットです。またコードのコピーもできるので手軽に実行することができます。
プログラミング習得のコツ
プログラミングを学習して挫折する率は80%以上とも言われています。筆者がお勧めする方法はわからなくてもとにかく進めることです。書籍などでは構成の都合で後出しで説明するパターンが多いので、わからない所で止まらないで一通り進めることをお勧めします。覚えることがたくさんある中で一つのことに執着していてはそこで止まってしまいます。そしてわからない状態が続き挫折してしまうのではないかと考えます。わからないことはスルーして一旦寝かせておきましょう。一つの事にかける時間を決めてそれを超えて理解できなければ一旦置いておいて次に進みましょう。最初は全体を知ることです。最後まで読んだら再び最初から読み直します。そして実際にプログラムを実行してみることが重要です。何回かこれを繰り返すと何故か突然覚醒したように理解できる状態になるはずです。最初はわからないことだらけかと思いますが、他のことを学習してる間にきっと理解できる時がやってきますので、とにかく1つの事で立ち止まらず学習を進めることをお勧めします。
Comment