📦

GitHubで配布可能な軽量アプリの作り方

2025/03/07に公開

GitHubで配布可能な軽量アプリの作り方

この記事では、GitHubをプラットフォームとして利用し、軽量なアプリケーションを作成し配布する方法を解説します。Pythonを例に、PyInstallerを用いたアプリケーションのビルドと、DMGbuildを用いたmacOS向けインストーラーの作成、そしてGitHub Actionsを用いた自動化まで、実践的な手順を踏まえながら説明します。この記事は、『GitHub Actionsで爆速リリース!PyInstaller & DMGbuild 実践 macOS アプリ開発入門』の内容に基づいています。

軽量アプリ開発のメリット

軽量アプリは、ダウンロードサイズが小さく、インストールが簡単で、リソース消費も少ないため、ユーザーにとって魅力的です。特に、シンプルなツールやユーティリティアプリの場合、軽量であることは大きなメリットとなります。

Pythonアプリケーションのビルド (PyInstaller)

Pythonで記述されたアプリケーションを配布可能な形式に変換するには、PyInstallerが便利です。PyInstallerは、Pythonスクリプトとその依存ライブラリをまとめて、単一の実行ファイルまたはディレクトリにパッケージ化します。

インストール

pip install pyinstaller

アプリケーションのビルド

シンプルな「Hello, World!」を表示するPythonスクリプト app.py を例に取ります。

# app.py
print("Hello, World!")

このスクリプトをビルドするには、以下のコマンドを実行します。

pyinstaller --onefile app.py

--onefile オプションを指定することで、単一の実行ファイルが生成されます。生成された実行ファイルは dist ディレクトリ内に配置されます。

より複雑なアプリケーションのビルド

外部ライブラリを使用する場合や、画像などのリソースを含める場合、--add-data オプションや --hidden-import オプションなどを使用する必要があります。詳しくはPyInstallerの公式ドキュメントを参照してください。

macOS向けインストーラーの作成 (DMGbuild)

macOSでは、アプリケーションを配布する際にDMGファイル形式のインストーラーが一般的に使用されます。DMGbuildを使用すると、PythonスクリプトからDMGファイルを作成できます。

インストール

pip install dmgbuild

DMGファイルの作成

DMGbuildの設定ファイル settings.py を作成します。

# settings.py
app_name = "My App"
app_path = "dist/app" # PyInstallerで生成された実行ファイルのパス
dmg_name = "My App Installer"
dmg_volume_name = "My App"

次に、以下のコマンドを実行してDMGファイルを作成します。

dmgbuild -s settings.py "My App Installer" "My App Installer.dmg"

GitHub Actionsによる自動化

GitHub Actionsを使用することで、アプリケーションのビルドとリリースプロセスを自動化できます。

ワークフローファイルの作成

.github/workflows/release.yml ファイルを作成し、以下の内容を記述します。

name: Release

on:
  push:
    tags:
      - 'v*'

jobs:
  build:
    runs-on: macos-latest

    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v4
        with:
          python-version: '3.x'
      - name: Install dependencies
        run: pip install pyinstaller dmgbuild
      - name: Build application
        run: pyinstaller --onefile app.py
      - name: Create DMG
        run: dmgbuild -s settings.py "My App Installer" "My App Installer.dmg"
      - name: Release
        uses: softprops/action-gh-release@v1
        with:
          files: "My App Installer.dmg"

このワークフローは、タグが v* で始まるプッシュが行われた際に実行されます。macOS環境でPythonをセットアップし、PyInstallerとDMGbuildを用いてアプリケーションをビルドし、DMGファイルを作成します。最後に、作成されたDMGファイルをGitHub Releaseにアップロードします。

実践的な例:シンプルなテキストエディタ

PythonのTkinterライブラリを使用してシンプルなテキストエディタを作成し、上記の手順で配布可能なアプリケーションを作成してみましょう。 (コードは省略しますが、書籍内で詳細に解説されています)

結論

この記事では、PyInstaller、DMGbuild、そしてGitHub Actionsを用いて、軽量なアプリケーションをGitHubで配布する方法を解説しました。これらのツールを組み合わせることで、効率的な開発ワークフローを構築し、ユーザーに簡単にアプリケーションを届けることができます。

次のステップ

  • PyInstallerやDMGbuildの高度な機能について学ぶ
  • GitHub Actionsのワークフローをカスタマイズして、より複雑なビルドプロセスを自動化する
  • 異なるプラットフォーム向けのビルドと配布方法を検討する

書籍情報:

  • 書籍タイトル:GitHub Actionsで爆速リリース!PyInstaller & DMGbuild 実践 macOS アプリ開発入門
  • 書籍スラッグ:book-20250307-184553
  • チャプター数:21
  • 主なトピック:PyInstaller, DMGbuild, GitHub Actions, macOSアプリ開発, アプリ配布, CI/CD
GitHubで編集を提案

Discussion