2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Go言語】Wailsとは何か|GoとWeb技術でデスクトップアプリを作るフレームワーク

2
Posted at

はじめに

本記事では、Go言語でデスクトップアプリを開発できる
フレームワークWailsの概要をまとめます。

GO言語の環境構築は、以下の記事をご参考にしてください。


1. Wailsとは

WailsはGoのコードとWebフロントエンドを
単一バイナリにまとめてデスクトップアプリを作れるフレームワークです。 GitHub

一言で言うと、

Goバックエンド + HTML/CSS/JavaScript フロントエンド
               ↓
         1つの.exeファイル

という構成でデスクトップアプリが作れるツールです。

デスクトップアプリなのでネットワーク接続は要らず、
CSSでデザインできるのでおしゃれにできます。


2. なぜWailsを使うのか

デスクトップアプリを作る方法はいくつかあります。
代表的なものと比較します。

フレームワーク 言語 特徴 問題点
Electron JavaScript 有名・実績あり ブラウザをまるごと内蔵するため重い(RAM500MB超えも)
Tauri Rust + JS 軽量・高速 Rustの学習コストが高い
Wails Go + JS 軽量・高速 Goが書ければすぐ始められる

WailsはElectronのようにブラウザエンジンを丸ごと内蔵せず、
OSのWebView2を使うためメモリ効率が大幅に優れています。 DEV Community


3. Wailsの主な特徴

特徴 内容
単一バイナリ ビルドすると1つの.exeファイルになる
軽量 ElectronのようにChromiumを内蔵しない
フロントエンド自由 React・Vue・Svelte・Vanilla JSなど使える
GoとJSの連携 JavaScriptからGoの関数を直接呼び出せる
クロスプラットフォーム Windows・macOS・Linuxに対応
ホットリロード 開発中にコードを変えると即座に反映される

4. アプリの構成イメージ

Wailsアプリは2つの部分で構成されています。
Goバックエンド(業務ロジック・システム操作)と
Webベースのフロントエンド(UI)がシームレスに連携します。 Wails

┌─────────────────────────────────┐
│         デスクトップアプリ       │
│                                 │
│  ┌──────────┐   ┌────────────┐  │
│  │ Go       │   │ フロント    │  │
│  │ バックエンド│◄─►│ エンド    │  │
│  │ (処理)  │   │ (HTML/JS)  │  │
│  └──────────┘   └────────────┘  │
│                                 │
│  GoとJSがメモリ内で直接通信する    │
└─────────────────────────────────┘

GoのPublicメソッドはJavaScript側から直接呼び出せます。

// Goで書いた関数
func (a *App) Greet(name string) string {
    return "こんにちは、" + name + "!"
}
// JavaScriptから呼び出せる
import { Greet } from '../wailsjs/go/main/App'

const result = await Greet("太郎")
console.log(result) // こんにちは、太郎!

5. Wailsが向いているケース

ケース 理由
GoでCLIツールを作っていてGUIを付けたい バックエンドをそのまま使える
Electronが重すぎると感じている 同等の見た目でメモリを大幅削減できる
社内ツールをデスクトップアプリ化したい 配布が.exe1ファイルで済む
Rustが難しくてTauriを断念した Goで書けるのでハードルが低い

まとめ

項目 内容
特徴 Go + Web技術でデスクトップアプリが作れる
強み 軽量・単一バイナリ・GoとJSの直接連携
比較 Electronより軽く・Tauriより学習コストが低い
対応OS Windows・macOS・Linux

次の記事でインストールから環境構築までの手順をまとめます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?