Cara Membuat Apl Mac Pertama Anda Menggunakan Go

WBOY
Lepaskan: 2024-08-27 06:04:36
asal
503 orang telah melayarinya

How to Create Your First Mac App Using Go

Pengenalan

Pembangunan Apl Mac secara tradisinya bergantung pada bahasa pengaturcaraan seperti Swift dan Objective-C. Walau bagaimanapun, kecekapan dan fleksibiliti Go menjadikannya pilihan yang sangat baik untuk mencipta aplikasi Mac yang mantap lagi mudah. Dalam tutorial ini, kami akan membimbing anda langkah demi langkah melalui proses membina, menguji dan menggunakan apl Mac pertama anda menggunakan Go, bermula dengan menyediakan persekitaran pembangunan anda.

Mengapa Gunakan Go for Mac App Development?

Go, juga dikenali sebagai Golang, ialah bahasa yang ditaip secara statik dan disusun oleh Google. Ia telah mendapat populariti kerana kesederhanaan, prestasi dan pengendalian serentak yang cekap. Inilah sebabnya anda boleh mempertimbangkan untuk menggunakan pembangunan apl Go for Mac:

Kesederhanaan: Sintaks Go adalah mudah dan mudah dipelajari, menjadikannya pilihan yang bagus untuk pembangun dari semua peringkat.

Prestasi: Sebagai bahasa yang disusun, Go adalah pantas dan cekap, yang penting untuk mencipta aplikasi desktop responsif.

Keupayaan Merentas Platform: Walaupun panduan ini memfokuskan pada macOS, sifat merentas platform Go bermakna anda boleh menyesuaikan apl anda dengan mudah untuk sistem pengendalian lain.

Concurrency: Go mempunyai sokongan terbina dalam untuk pengaturcaraan serentak, membolehkan anda mencipta apl yang boleh mengendalikan berbilang tugas secara serentak tanpa melambatkan.

Prasyarat

Sebelum menyelami kod, pastikan anda telah memasang alatan berikut:

Go: Pasang versi terkini daripada tapak web rasmi Go.

Alat Baris Perintah Xcode: Pasang ini dengan menjalankan xcode-select --install dalam terminal.

Gio: Gio ialah perpustakaan untuk menulis antara muka pengguna grafik mudah alih dalam Go. Ia memudahkan proses membina GUI dan sesuai untuk pembangunan aplikasi Mac. Anda boleh memasang Gio menggunakan go get -u gioui.org/cmd/gogio.

Langkah 1: Sediakan Persekitaran Pergi Anda

Pertama, anda perlu mengkonfigurasi persekitaran Go anda dengan betul:

Pasang Go: Muat turun dan pasang Go dari tapak rasmi. Ikut arahan pemasangan untuk sistem pengendalian anda.

Sediakan Ruang Kerja Anda: Pergi menggunakan ruang kerja untuk mengatur projek anda. Secara lalai, ruang kerja terletak di ~/go, tetapi anda boleh menukarnya dengan menetapkan pembolehubah persekitaran GOPATH.

   mkdir -p ~/go/src/github.com/yourusername
   export GOPATH=~/go
Salin selepas log masuk

Pasang Gio: Gio ialah kit alat untuk membina aplikasi asli untuk Android, Linux dan macOS. Pasang Gio dengan menjalankan:

   go get -u gioui.org/cmd/gogio
Salin selepas log masuk

Langkah 2: Mencipta Apl Mac Asas

Mari buat apl Mac "Hello World" yang ringkas menggunakan Gio.

Mulakan Projek Anda: Buat direktori baharu untuk projek anda dan navigasi ke sana.

   mkdir HelloWorldMacApp
   cd HelloWorldMacApp
Salin selepas log masuk

Buat Fail Main Go: Buat fail bernama main.go dan bukanya dalam editor teks kegemaran anda.

   touch main.go
Salin selepas log masuk

Tulis Kod: Mulakan dengan menulis program Go asas yang memulakan tetingkap dan memaparkan "Hello World".

  package main

   import (
       "gioui.org/app"
       "gioui.org/io/system"
       "gioui.org/layout"
       "gioui.org/op"
       "gioui.org/widget/material"
       "gioui.org/font/gofont"
   )

   func main() {
       go func() {
           // Create a new window.
           w := app.NewWindow()
           th := material.NewTheme(gofont.Collection())

           for e := range w.Events() {
               switch e := e.(type) {
               case system.FrameEvent:
                   gtx := layout.NewContext(&op.Ops{}, e)
                   layout.Center.Layout(gtx, func(gtx layout.Context) layout.Dimensions {
                       return material.H1(th, "Hello, World!").Layout(gtx)
                   })
                   e.Frame(gtx.Ops)
               case system.DestroyEvent:
                   return
               }
           }
       }()
       app.Main()
   }
Salin selepas log masuk

Bina dan Jalankan Apl Anda: Untuk membina dan menjalankan apl anda, gunakan arahan berikut:

   go run main.go

Salin selepas log masuk

Ini sepatutnya membuka tetingkap baharu yang memaparkan "Hello, World!".

Langkah 3: Meningkatkan Apl Anda dengan Butang

Sekarang kita mempunyai apl asas yang sedang berjalan, mari tingkatkan apl itu dengan menambahkan butang yang memaparkan mesej apabila diklik.

Ubah suai main.go: Kemas kini fail main.go anda untuk memasukkan butang.

   package main

   import (
       "gioui.org/app"
       "gioui.org/io/system"
       "gioui.org/layout"
       "gioui.org/op"
       "gioui.org/widget"
       "gioui.org/widget/material"
       "gioui.org/font/gofont"
   )

   func main() {
       go func() {
           // Create a new window.
           w := app.NewWindow()
           th := material.NewTheme(gofont.Collection())

           var button widget.Clickable

           for e := range w.Events() {
               switch e := e.(type) {
               case system.FrameEvent:
                   gtx := layout.NewContext(&op.Ops{}, e)
                   layout.Center.Layout(gtx, func(gtx layout.Context) layout.Dimensions {
                       return layout.Flex{Axis: layout.Vertical}.Layout(gtx,
                           layout.Rigid(material.H1(th, "Hello, World!").Layout),
                           layout.Rigid(material.Button(th, &button, "Click Me").Layout),
                       )
                   })

                   if button.Clicked() {
                       println("Button clicked!")
                   }

                   e.Frame(gtx.Ops)
               case system.DestroyEvent:
                   return
               }
           }
       }()
       app.Main()
   }

Salin selepas log masuk

Bina dan Jalankan Apl Dipertingkat Anda: Jalankan apl sekali lagi dengan go run main.go. Kali ini, anda sepatutnya melihat butang "Klik Saya" di bawah "Hello, World!" teks. Mengklik butang akan mencetak "Butang diklik!" ke konsol.

Langkah 4: Menambah Lebih Banyak Ciri

Mari tambahkan lebih banyak ciri pada apl kami, seperti input teks dan menu lungsur.

Menambah Input Teks: Ubah suai main.go anda untuk memasukkan medan input teks.

package main

   import (
       "gioui.org/app"
       "gioui.org/io/system"
       "gioui.org/layout"
       "gioui.org/op"
       "gioui.org/widget"
       "gioui.org/widget/material"
       "gioui.org/font/gofont"
   )

   func main() {
       go func() {
           // Create a new window.
           w := app.NewWindow()
           th := material.NewTheme(gofont.Collection())

           var button widget.Clickable
           var textField widget.Editor

           for e := range w.Events() {
               switch e := e.(type) {
               case system.FrameEvent:
                   gtx := layout.NewContext(&op.Ops{}, e)
                   layout.Center.Layout(gtx, func(gtx layout.Context) layout.Dimensions {
                       return layout.Flex{Axis: layout.Vertical}.Layout(gtx,
                           layout.Rigid(material.H1(th, "Hello, World!").Layout),
                           layout.Rigid(material.Editor(th, &textField, "Enter text...").Layout),
                           layout.Rigid(material.Button(th, &button, "Click Me").Layout),
                       )
                   })

                   if button.Clicked() {
                       println("Button clicked with text:", textField.Text())
                   }

                   e.Frame(gtx.Ops)
               case system.DestroyEvent:
                   return
               }
           }
       }()
       app.Main()
   }
Salin selepas log masuk

Menambah Menu lungsur: Tambahkan menu lungsur pada apl anda.

 package main

   import (
       "gioui.org/app"
       "gioui.org/io/system"
       "gioui.org/layout"
       "gioui.org/op"
       "gioui.org/widget"
       "gioui.org/widget/material"
       "gioui.org/font/gofont"
   )

   func main() {
       go func() {
           // Create a new window.
           w := app.NewWindow()
           th := material.NewTheme(gofont.Collection())

           var button widget.Clickable
           var textField widget.Editor
           var list widget.List

           list.Axis = layout.Vertical

           items := []string{"Item 1", "Item 2", "Item 3"}

           for e := range w.Events() {
               switch e := e.(type) {
               case system.FrameEvent:
                   gtx := layout.NewContext(&op.Ops{}, e)
                   layout.Center.Layout(gtx, func(gtx layout.Context) layout.Dimensions {
                       return layout.Flex{Axis: layout.Vertical}.Layout(gtx,
                           layout.Rigid(material.H1(th, "Hello, World!").Layout),
                           layout.Rigid(material.Editor(th, &textField, "Enter text...").Layout),
                           layout.Rigid(material.Button(th, &button, "Click Me").Layout),
                           layout.Rigid(material.List(th, &list).Layout(gtx, len(items), func(gtx layout.Context, index int) layout.Dimensions {
                               return material.Button(th, new(widget.Clickable), items[index]).Layout(gtx)
                           })),
                       )
                   })

                   if button.Clicked() {
                       println("Button clicked with text:", textField.Text())
                   }

                   e.Frame(gtx.Ops)

 case system.DestroyEvent:
                   return
               }
           }
       }()
       app.Main()
   }
Salin selepas log masuk

Jalankan Apl Anda: Jalankan apl anda sekali lagi dengan go run main.go dan lihat ciri baharu dalam tindakan.

Langkah 5: Membina Apl Mac Kendiri

Setelah apl anda sedia, anda perlu membinanya sebagai aplikasi kendiri. Ikuti langkah ini:

Bina Apl Anda: Gunakan gogio untuk membina apl anda untuk macOS.

   gogio -target darwin .

Salin selepas log masuk

Arahan ini akan menjana .app bundle yang boleh anda jalankan terus pada macOS.

Uji Apl Anda: Buka .app bundle yang dijana untuk menguji aplikasi anda. Pastikan semua ciri berfungsi seperti yang diharapkan.

Langkah 6: Pembungkusan dan Pengedaran

Untuk mengedarkan apl anda, anda mungkin mahu menandatangani dan mengesahkannya untuk macOS.

Tandatangan Apl Anda: Tandatangan kod diperlukan untuk mengedarkan apl anda di luar Mac App Store. Gunakan alat tanda kod untuk menandatangani apl anda.

reka bentuk bersama --deep --force --verify --verbose --tanda "Aplikasi ID Pembangun: Nama Anda" HelloWorldMacApp.app

Notari Apl Anda: Untuk memastikan macOS membenarkan apl anda berjalan tanpa amaran, notarikannya menggunakan xcrun altool.

xcrun altool --notarize-app --primary-bundle-id "com.yourname.helloworldmacapp" --username "yourappleid@example.com" --password "app-specific-password" --file HelloWorldMacApp.zip

Edarkan Apl Anda: Setelah disahkan, anda boleh mengedarkan apl anda melalui tapak web, e-mel atau cara lain.

Kesimpulan

Tahniah! Anda telah berjaya mencipta apl Mac pertama anda menggunakan Go. Panduan ini merangkumi asas menyediakan persekitaran pembangunan anda, membina aplikasi mudah, menambah ciri dan mengedarkan aplikasi anda. Dengan kesederhanaan dan prestasi Go, anda serba lengkap untuk membangunkan apl Mac yang berkuasa dan cekap. Teruskan menerokai Gio dan Go untuk meningkatkan kemahiran anda dan mencipta aplikasi yang lebih kompleks.

Rujukan

Pergi Bahasa Pengaturcaraan

Kit Alat Gio untuk Go

Alat Baris Perintah Xcode

Dokumentasi Pembangun Apple

Catatan blog ini menyediakan panduan komprehensif untuk membina apl Mac pertama anda menggunakan Go, dengan banyak contoh kod untuk membantu anda memahami setiap langkah. Dengan mengikuti panduan ini, anda boleh mula dengan pantas dengan pembangunan apl Mac dan menerokai keupayaan hebat Go dan Gio.

Atas ialah kandungan terperinci Cara Membuat Apl Mac Pertama Anda Menggunakan Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!