Documentation Index
Fetch the complete documentation index at: https://ziva.zeleza.ru/llms.txt
Use this file to discover all available pages before exploring further.
Hızlı Başlangıç
Bu kılavuzda Ziva’un ana özelliklerini gösteren basit bir TUI uygulaması oluşturacağız.
Adım 1: Proje Oluşturma
Yeni bir Go projesi oluşturun:
mkdir ziva-demo
cd ziva-demo
go mod init ziva-demo
go get github.com/qzeleza/ziva
Adım 2: Temel Uygulama
main.go dosyası oluşturun:
package main
import (
"fmt"
"log"
"time"
"github.com/qzeleza/ziva"
)
func main() {
// Başlık ile görev kuyruğu oluştur
queue := ziva.NewQueue("Ziva Demo Uygulaması")
// Görünümü yapılandır
queue.WithAppName("BenimUygulamam")
queue.WithTasksNumbered(false, "[%d]")
// Görevleri oluştur
createTasks(queue)
// Kuyruğu çalıştır
if err := queue.Run(); err != nil {
log.Fatal(err)
}
// Sonuçları göster
printResults()
}
func createTasks(queue *ziva.Queue) {
// 1. Zaman aşımı ile onay görevi
confirm := ziva.NewYesNoTask("Onay", "Kuruluma başlansın mı?").
WithTimeout(5*time.Second, "Evet")
// 2. Ortam seçimi
environments := []string{
"development||Geliştirme ortamı",
"staging||Test ortamı",
"production||Canlı ortam",
}
env := ziva.NewSingleSelectTask("Ortam Seçimi", environments).
WithDefaultItem("staging")
// 3. Bileşen seçimi
components := []string{
"api||REST API sunucusu",
"web||Web arayüzü",
"cli||Komut satırı",
"docs||Belgeler",
}
comp := ziva.NewMultiSelectTask("Bileşenler", components).
WithSelectAll("Tümünü seç").
WithDefaultItems([]string{"api", "cli"})
// 4. Doğrulama ile proje adı girişi
name := ziva.NewInputTask("Proje Adı", "Adı girin:").
WithValidator(ziva.DefaultValidators.Required())
// 5. Fonksiyonel görev
setup := ziva.NewFuncTask("Kurulum", func() error {
time.Sleep(2 * time.Second) // İş simülasyonu
return nil
}, ziva.WithSummaryFunction(func() []string {
return []string{"Yapılandırma oluşturuldu", "Proje hazır"}
}))
// Tüm görevleri kuyruğa ekle
queue.AddTasks(confirm, env, comp, name, setup)
}
func printResults() {
fmt.Println("\n🎉 Uygulama tamamlandı!")
fmt.Println("Sonuçlar görev nesnelerinde saklandı.")
}
Adım 3: Çalıştırma
Uygulamayı çalıştırın:
Farklı türde görevlerle etkileşimli arayüzü göreceksiniz.
Adım 4: Sonuçlarla Çalışma
Sonuçlarla çalışmak için örneği genişletelim:
func printResults(confirm *ziva.YesNoTask, env *ziva.SingleSelectTask,
comp *ziva.MultiSelectTask, name *ziva.InputTask) {
fmt.Println("\n📋 Yapılandırma Sonuçları:")
fmt.Printf("Onay: %v\n", confirm.IsYes())
fmt.Printf("Ortam: %s\n", env.GetSelected())
fmt.Printf("Bileşenler: %v\n", comp.GetSelected())
fmt.Printf("Proje adı: %s\n", name.GetValue())
}
Ve main’i güncelleyin:
func main() {
queue := ziva.NewQueue("Ziva Demo Uygulaması")
// Referansları koruyarak görevleri oluştur
confirm, env, comp, name := createTasksWithReferences(queue)
if err := queue.Run(); err != nil {
log.Fatal(err)
}
// Sonuçları göster
printResults(confirm, env, comp, name)
}
Ana Kavramlar
Görev Kuyruğu (Queue)
Görevlerin sıralı yürütülmesini yöneten merkezi bileşen:
queue := ziva.NewQueue("Başlık")
queue.WithAppName("BenimUygulamam") // Uygulama adı
queue.WithClearScreen(true) // Ekran temizleme
queue.WithTasksNumbered(true, "[%02d]") // Görev numaralandırma
Görev Türleri
- YesNoTask - Evet/Hayır seçimi
- SingleSelectTask - Tek seçenek seçimi
- MultiSelectTask - Çoklu seçenek seçimi
- InputTask - Doğrulama ile metin girişi
- FuncTask - Fonksiyon yürütme
Zaman Aşımları
Tüm görevler varsayılan değerlerle zaman aşımını destekler:
task.WithTimeout(10*time.Second, defaultValue)
Doğrulama
Çeşitli veri türleri için yerleşik doğrulayıcılar:
v := ziva.DefaultValidators
inputTask.WithValidator(v.Email()) // Email
inputTask.WithValidator(v.IP()) // IP adresi
inputTask.WithValidator(v.MinLength(5)) // Minimum uzunluk
Sonraki Adım
Bileşenler
Tüm mevcut bileşenleri detaylı inceleyin
Doğrulama
Veri doğrulama sistemi hakkında bilgi edinin
Stil
Uygulama görünümünü özelleştirin
Örnekler
Gelişmiş kullanım örneklerini inceleyin