Berkontribusi

Edit dokumentasi ini

Terjemahkan dokumentasi atau buka proyek lengkap di komputer Anda.

Tidak ada yang dipublikasikan hingga Anda memilih untuk mengirimkan pekerjaan Anda.

Aplikasi Pertama Anda

Bangun aplikasi Wails yang berfungsi dalam 10 menit

Kita akan membangun aplikasi sapaan sederhana yang menunjukkan konsep inti Wails:

  • Backend Go yang mengelola logika
  • Frontend yang memanggil fungsi Go
  • Binding yang aman secara tipe
  • Hot reload selama pengembangan

Waktu penyelesaian: 10 menit

Buat Proyek Anda

1

Buat proyek

bash
wails3 init -n myapp
cd myapp

Tindakan ini membuat proyek baru dengan templat Vanilla + Vite bawaan (HTML/CSS/TypeScript dengan bundler Vite).

2

Pahami struktur proyek

text
myapp/
├── main.go              # Application entry point
├── greetservice.go      # Greet service
├── frontend/            # Your UI code
│   ├── index.html       # HTML entry point
│   ├── src/
│   │   └── main.ts      # Frontend TypeScript
│   ├── public/
│   │   └── style.css    # Styles
│   ├── package.json     # Frontend dependencies
│   ├── tsconfig.json    # TypeScript configuration
│   └── vite.config.ts   # Vite bundler config
├── build/               # Build configuration
└── Taskfile.yml         # Build tasks
3

Jalankan aplikasi

bash
wails3 dev

Aplikasi terbuka dan menampilkan antarmuka sapaan. Masukkan nama Anda lalu klik “Greet”—backend Go akan memproses input Anda dan mengembalikan sapaan.

Cara Kerjanya

Mari pahami kode yang membuatnya berfungsi.

Backend Go

Buka greetservice.go:

greetservice.go
go
package main

import (
	"fmt"
)

type GreetService struct{}

func (g *GreetService) Greet(name string) string {
	return fmt.Sprintf("Hello %s, It's show time!", name)
}

Konsep utama:

  1. Layanan—Struct Go dengan metode yang diekspor
  2. Metode yang diekspor—Greet diawali huruf kapital sehingga tersedia bagi frontend
  3. Logika sederhana—Menerima nama dan mengembalikan sapaan
  4. Keamanan tipe—Tipe input dan output telah ditentukan

Mendaftarkan Layanan

Buka main.go dan temukan pendaftaran layanan:

main.go
go
err := application.New(application.Options{
    Name: "myapp",
    Services: []application.Service{
        application.NewService(&GreetService{}),
    },
    // ... other options
})

Tindakan ini mendaftarkan GreetService Anda ke Wails sehingga semua metode yang diekspor tersedia bagi frontend.

Frontend

Buka frontend/src/main.js:

frontend/src/main.js
javascript
import {GreetService} from "../bindings/changeme";

window.greet = async () => {
    const nameElement = document.getElementById('name');
    const resultElement = document.getElementById('result');

    const name = nameElement.value;
    if (!name) {
        return;
    }

    try {
        const result = await GreetService.Greet(name);
        resultElement.innerText = result;
    } catch (err) {
        console.error(err);
    }
};

Konsep utama:

  1. Binding yang dibuat secara otomatis—GreetService diimpor dari kode yang dihasilkan
  2. Pemanggilan yang aman secara tipe—Nama dan signature metode sesuai dengan kode Go Anda
  3. Asinkron secara bawaan—Semua pemanggilan Go mengembalikan Promise
  4. Penanganan kesalahan—Kesalahan dari Go ditangkap dalam try/catch

Sesuaikan Aplikasi Anda

Mari tambahkan fitur baru untuk memahami alur kerjanya.

Tambahkan Fitur “Sapa Banyak Orang”

1

Tambahkan metode ke GreetService

Tambahkan kode berikut ke greetservice.go:

greetservice.go
go
func (g *GreetService) GreetMany(names []string) []string {
    greetings := make([]string, len(names))
    for i, name := range names {
        greetings[i] = fmt.Sprintf("Hello %s!", name)
    }
    return greetings
}
2

Aplikasi akan di-build ulang secara otomatis

Simpan berkas tersebut dan wails3 dev akan secara otomatis mem-build ulang kode Go Anda serta memulai ulang aplikasi.

3

Gunakan di frontend

Tambahkan kode berikut ke frontend/src/main.js:

frontend/src/main.js
javascript
window.greetMany = async () => {
    const names = ['Alice', 'Bob', 'Charlie'];
    const greetings = await GreetService.GreetMany(names);
    console.log(greetings);
};

Buka konsol browser dan panggil greetMany()—Anda akan melihat array sapaan.

Build untuk Produksi

Saat Anda siap mendistribusikan aplikasi:

bash
wails3 build

Yang dilakukan proses ini:

  • Mengompilasi kode Go dengan pengoptimalan
  • Mem-build frontend untuk produksi (diperkecil)
  • Membuat executable native di bin/

Output: bin/myapp.exe

Klik dua kali untuk menjalankannya. Tidak memerlukan dependensi (WebView2 merupakan bagian dari Windows).

Yang telah kita pelajari

Struktur Proyek

  • main.go untuk backend Go
  • frontend/ untuk kode UI
  • Taskfile.yml untuk tugas build

Layanan

  • Buat struct Go dengan method yang diekspor
  • Daftarkan dengan application.NewService()
  • Method tersedia secara otomatis di frontend

Binding

  • Definisi TypeScript yang dibuat secara otomatis
  • Pemanggilan fungsi yang aman terhadap tipe
  • Asinkron secara default (Promise)

Alur Kerja Pengembangan

  • wails3 dev untuk hot reload
  • Perubahan Go secara otomatis memicu build ulang dan mulai ulang
  • Perubahan frontend langsung dimuat ulang dengan hot reload

Ada pertanyaan? Bergabunglah dengan Discord dan tanyakan kepada komunitas.

Edit halaman

Terakhir diperbarui: