Kivyガイド

序文

モバイルアプリケーションの開発は数年前に話題になりましたが、今ではソフトウェアユーザーがモバイルバージョンを望んでいます。デスクトップオペレーティングシステムも影響を受け、クロスプラットフォームソフトウェアが新しい標準になりました。通常はMicrosoftデスクトップオペレーティングシステムに限定されているゲーム開発者でさえ、MacおよびLinuxプラットフォーム(現在4,000近くのMacゲームと2,000以上のSteamOS + LinuxゲームがあるSteamなど)での作業を見つけ始めています。

これは初心者や個々の開発者に最適です。クロスプラットフォームのサポートによりユーザーを増やすことができ、当然売上は向上します。

ただし、ポータブルソフトウェアの作成は非常にリソースを消費するプロセスであり、大企業よりも中小企業や個々の開発者に大きな影響を与えます。

特に多くのプラットフォームには、iOS用のObjective-CとSwift、Android用のJava、MS用の.Net、ソフトウェア開発用のC#などのさまざまな言語のSDKがあります。

これらのツールを使用すると、システム機能を介して対応するネイティブアプリケーションを作成できますが、クロスプラットフォームのコードの再利用は非常に困難になります。すべての言語と関連する操作に習熟している場合でも、コードの移植は依然として複雑な問題です。

一度書いて、どこでも実行

その結果、マルチプラットフォーム対応の統一された開発ツールが登場しています。。偶然にも、Sunは1995年に同様の問題を解決するためにJavaを発明しました。そのスローガンは「Write once, run anywhere」(WORA)です。Javaは20年前のものですが、多くの人が様々な形で記念しています。しかし、その冗長なコードはいまだにその高尚な約束を果たすことができず、一部のプログラマーは「write once, run away」(一度だけ書いて、逃げろ)という人々の気持ちをよりよく表現するバージョンを適応している。 Javaを捨ててPythonなどのより良いプログラミング言語に移行した人もいます。

この本の主題であるKivyは、クロスプラットフォームのPythonアプリケーションを簡単に作成するために使用されるグラフィカルユーザーインターフェイス(GUI)ツールです。その主な機能は次のとおりです。

  • 互換性:Kivyは、Windows、MacOS、Linux、Android、iOSなどの複数のプラットフォームをすべて1つのツールからサポートします
  • ネイティブインターフェイス:Kivyは、さまざまな入力方法間のギャップを埋め、同じコードを使用して、マウスやタッチスクリーンなどのさまざまな入力方法を処理できるようにします。
  • グラフィックハードウェアアクセラレーションの高速化:OpenGLレンダリングにより、Kivyは、ビデオゲームなど、グラフィック要件の高いアプリケーションに対応でき、スムーズな変換を通じてユーザーエクスペリエンスを向上させることもできます。
  • Python開発を使用する:KivyアプリはPythonで記述されており、簡単でシンプル、優れた移植性、Python標準ライブラリおよびPyPIサードパーティのリッチモジュールを使用できます

Kivyは、多くのモジュールのスーパーセットと見なすことができます。Pygame、SDL、GStreamerなどの多くの有名なモジュールはすべてKivyの一部です。ただし、KivyのAPIはより高度で、統一されており、使いやすいです。

Kivyはオープンソースであり、そのソースコードはGitHubにあります。フォークしたり、パッチを適用したり、新しい機能を追加したりできます。

この本の紹介

この本は9つの章に分かれています。

  • 第1章、時計アプリでは、Kivyアプリケーション開発について簡単に紹介します。Kivy言語、レイアウト、ウィジェット、タイマーを含みます。この章では、電話の時計アプリに似た時計アプリを作成します
  • 第2章では、描画アプリでKivyフレームワークのコンポーネントと機能についてさらに詳しく説明します。描画アプリを作成してカスタムパーツを学習したり、キャンバスに任意の形状を描画したり、マルチタッチイベントを処理したりします。
  • 第3章、Androidレコーディングアプリは、Kivyを使用してAndroidアプリケーションを開発することです。PythonとJavaの間の相互作用は、Pyjniusモジュールを介して実現され、AndroidのAPIが呼び出されて、Kivyユーザーインターフェイスが実現されます。
  • 第4章、チャットアプリはKivyのウェブアプリケーション開発を紹介し、Pythonで簡単な通信プロトコルを記述し、Twistedフレームワークを使用してサーバークライアントモデルを構築し、Kivyチャットアプリを実装します
  • 第5章、リモートデスクトップアプリサーバークライアントアプリケーションを作成するために別の方法を使用します。この章では、HTTPプロトコルを使用してモデルを構築します。最初にコマンドラインモードでHTTPサーバーをセットアップし、次にKivyを使用してリモートデスクトップアプリを実装します
  • 第6章、2048アプリは2048ゲームを実装することです。Kivy属性を使用してデータバインディングを実装し、タッチジェスチャ処理を使用してカスタムパーツを作成する、Kivyのより複雑な機能を示します。
  • 第7章、Flying Birdアプリは、有名なFlappyBirdゲームを実装するもう1つのKivyゲームです。テクスチャ座標、効果音、衝突検出の使用について学習します
  • 第8章、シェーダーアプリでは、KivyアプリケーションでシェーダーをGLSLする方法を紹介します。この章では、最初にインデックスや頂点などのOpenGLプリミティブ型の概念を紹介し、次にGPUで直接実行できるコードを記述し、最後に星空のスクリーンセーバーアプリを実装します。
  • 第9章、シューティングアプリは前の章の内容を継続し、GLSLシェーダーを使用してゲームを作成します。最初に再利用可能なパーティクルシステムを実現し、次にパーティクルシステムを介してゲームキャラクターを構築します。衝突検出、タッチスクリーン制御、効果音など、以前に導入されたコンテンツの多くがこのゲームに反映されます。