İçeriğe geç

Coordinator Pattern

Merhabalar, bu yazımda sizlere iOS uygulamalarınızı daha kaliteli hale getirecek olan Coordinator tasarım deseni kullanımını paylaşacağım.

Tasarım desenleri bildiğimiz gibi kodlarımızı daha kaliteli, daha efektif ve daha bir çok avantajlar sağlamakta. Bugün sizlere paylaşacağım desen ise Coordinator olarak adlandırılmakta. İsmindende anlaşılacağı üzre koordine etme amacı taşıyan bir tasarım deseni. Bu tasarım deseninin amacı ve mantığı neticesinde en uygun olarak iOS uygulamalarımızda sürekli olarak gerçekleştirdiğimiz ViewController arası gidiş, geliş olaylarını düzenli bir şekilde koordine edebiliriz. Buda bize karmaşık uygulamalarda basitlik kazandırır.

iOS ile VC push işlemleri gerçekleştirirken UINavigationController ve UITabBarController kullanırız. Ben bugün paylaşacağım örnekte uygulamamızda kullandığımız UINavigationController üzerinden bir koordine işlemi göreceğiz.

Lafı fazla uzatmadan olayı kod üzerinde görelim.

Bu işlem için Swift dilinde bulunan Protocol, Delegate işbirliği bizim için oldukça önemli.

Koordinator sınıflarımıza bağlanacak bir protokol ve içerisinde bulunması gereken değişken ve fonksiyonları yazdık.

Bu protokolde her sınıf için gerçekleşecek aksiyonlar olan addChild ve removeChild için bir extension ekledik. (Direk bağlı sınıf içerisindede yazabilirsiniz.)

Yukarda basit bir MainCoordinator sınıfı yazdık. Bu sınıf root bir nav a bağlı vc ile başlayıp devam edecek şekilde olacak. Bunun için gerekli kodları AppDelegate üzerinde başlatalım.

.start fonksiyonu içerisinde bulunan ViewController sizin root olarak belirlediğiniz bir vc. ve buradaki ViewController.instantiate() fonksiyonu extension olarak yazdığımız olayı daha kolay hale getirmek adına VC isim alıp döndüren bir fonksiyon. Buna bağlı olan protokolü VC sınıflarınıza eklemeniz gerekli ve storyboard id sınıf isminiz ile aynı olmalı.

Daha sonra gerekli VC sınıfınız aşağıdaki şekilde diğer sayfaya Coordinator sınıfı ile ilerleyecektir.

Bundan sonraki yazımda back işlemi için gerçekleştirmemiz gereken olayları sizlerle paylaşacağım.

Uygulamalarda gerçeklenebilecek oldukça yararlı bir tasarım deseni olduğunu düşünüyorum, kullanmanızı tavsiye ederim 🙂

İlgilenenler için Reactive olarak yazılmış Coordinator tasarım desenini kullanan RxCoordinator kütüphanesini inceleyebilirsiniz.

Yazının Devamı için Coordinator – Part 2

 

 

Tarih:Design Patterns

Bu yazı yorumlara kapalı.