0Pricing
Swift Academy · Pelajaran

Pola Coordinator

Pusatkan logika alur navigasi.

Pola Coordinator adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.

Masalah Navigasi

Saat tampilan mendorong dan menyajikan tampilan lain secara langsung, logika navigasi menjadi tersebar di seluruh aplikasi. Setiap layar harus mengetahui layar berikutnya sehingga tercipta keterikatan yang erat.

Pola Koordinator mengatasi hal ini dengan memindahkan navigasi ke dalam objek khusus.

Apa Itu Koordinator?

Koordinator adalah objek yang tugas tunggalnya mengelola alur navigasi. Koordinator menentukan layar berikutnya dan membuat pengendali tampilan atau tampilan yang akan ditampilkan.

Tampilan tidak perlu memahami perutean—tampilan hanya memberi sinyal saat terjadi peristiwa, lalu Koordinator menentukan tindakan yang harus dilakukan.

Protokol Koordinator

Sebagian besar implementasi dimulai dengan protokol kecil yang dipatuhi oleh setiap Koordinator.

protocol Coordinator: AnyObject {
    var childCoordinators: [Coordinator] { get set }
    func start()
}

Koordinator Konkret

Koordinator konkret memiliki pengendali navigasi dan membuat layar pertama di dalam start().

final class AppCoordinator: Coordinator {
    var childCoordinators: [Coordinator] = []
    let navigationController: UINavigationController

    init(navigationController: UINavigationController) {
        self.navigationController = navigationController
    }

    func start() {
        let vc = HomeViewController()
        navigationController.setViewControllers([vc], animated: false)
    }
}

Memisahkan Tampilan dari Perutean

Manfaat utamanya: tampilan tidak lagi membuat layar berikutnya. Sebagai gantinya, tampilan memberi tahu Koordinator bahwa suatu peristiwa terjadi, lalu Koordinator melakukan perutean.

Dengan begitu, sebuah layar dapat digunakan kembali dalam alur yang berbeda tanpa mengubah kodenya.

Mengirim Sinyal Peristiwa ke Atas

Tampilan berkomunikasi dengan Koordinator melalui delegate atau fungsi yang menangkap konteks. Tampilan tidak mengetahui tujuan berikutnya.

protocol HomeViewControllerDelegate: AnyObject {
    func homeDidSelectProfile()
}

final class HomeViewController: UIViewController {
    weak var delegate: HomeViewControllerDelegate?

    func profileTapped() {
        delegate?.homeDidSelectProfile()
    }
}

Menangani Rute

Koordinator mematuhi delegate dan menentukan cara bernavigasi saat peristiwa terjadi.

extension AppCoordinator: HomeViewControllerDelegate {
    func homeDidSelectProfile() {
        let profile = ProfileViewController()
        navigationController.pushViewController(profile, animated: true)
    }
}

Koordinator Anak

Alur besar seperti orientasi awal dan pembayaran memiliki koordinator anak masing-masing. Induk memulai anak dan menyimpannya di dalam childCoordinators agar anak tetap hidup.

func startOnboarding() {
    let child = OnboardingCoordinator(navigationController: navigationController)
    childCoordinators.append(child)
    child.start()
}

Menghindari Kebocoran Memori

Karena induk menyimpan anak, Anda harus menghapus anak saat alurnya berakhir; jika tidak, akan terjadi kebocoran. Pendekatan yang umum digunakan adalah panggilan balik penyelesaian.

func childDidFinish(_ child: Coordinator) {
    childCoordinators.removeAll { $0 === child }
}

Koordinator dengan SwiftUI

Di SwiftUI, Koordinator sering mengendalikan jalur NavigationStack. Koordinator memiliki jalur yang dapat diamati, dan tampilan menggunakan append untuk menambahkan rute ke dalamnya.

final class Router: ObservableObject {
    @Published var path: [Route] = []

    func push(_ route: Route) {
        path.append(route)
    }
}

enum Route: Hashable { case profile, settings }

Ringkasan Manfaat

Pola Koordinator memberikan:

  • Tampilan yang dapat digunakan kembali tanpa navigasi yang ditetapkan secara tetap
  • Logika alur yang terpusat dan mudah diubah
  • Perutean yang dapat diuji dan dipisahkan dari antarmuka pengguna
  • Alur yang dapat disusun melalui koordinator anak

Uji Singkat

Ujilah pemahaman Anda tentang Koordinator.

Ringkasan

Anda telah mempelajari pola Koordinator:

  • Koordinator memiliki navigasi sehingga tampilan tidak bergantung pada perutean
  • Tampilan mengirimkan sinyal peristiwa ke atas melalui delegate atau fungsi yang menangkap konteks
  • Koordinator anak memodelkan alur yang berdiri sendiri
  • Hapus anak saat alurnya selesai untuk menghindari kebocoran

Jika dipadukan dengan MVVM, Koordinator melengkapi arsitektur yang rapi dan dapat diuji.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pola Coordinator” gratis?

Ya — teks lengkap “Pola Coordinator” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pola Coordinator”?

Pusatkan logika alur navigasi. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Swift Academy?

Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Pola Coordinator” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?

Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Pola MVVM
  2. Menghubungkan View Model ke View
  3. Pola Coordinator
  4. Menguji View Model
← Kembali ke Swift Academy