Swift Dispatch Group Nedir?

Merhaba arkadaşlar, bu yazımızda Swift’de Dispatch Group nedir bundan bahsedeceğiz. Dispatch Group, uygulamanızda birden çok işi asenkron bir şekilde yapmanıza olanak sağlar. Örnek olarak Github repomdaki library projesi üzerinden gideceğim. Projeye buradan ulaşabilirsiniz. Projenin genel çalışması aşağıdaki gibidir.

Apple’ın servislerine giderek kullanıcının girmiş olduğu kelimeyi gruplara ayırarak aratıyor. Film, müzik, uygulama ve kitap olarak farklı bölümler var. Kullanıcı nerede arama yapmak isterse o bölümde arama yapıyor. Kullanıcı, müzik kısmını seçtiğinde Apple’ın servislerine gidip müzik kısmında arama yaparken; kitap kısmını seçtiğinde kitap kısmında arama yapıyor. Bunun yerine kullanıcı bir şey arattığında 4 kısımda da arama yapsın. Buna göre de ekranda yükleniyor simgesi gösterelim. 4 farklı servis isteği göndereceğiz ama bazıları daha erken bazıları ise daha geç gelecek ve son işlem tamamlanıncaya kadar ekranda yükleniyor ikonu kalması lazım.

Aşağıdaki gibi bir Interactor’um vardı. Bu her kategori değiştiğinde tekrardan arama yapıyordu.

Buraya ek olarak tüm kategorilerde arama yapması için bir fonksiyon yazmam gerekiyor. 4 farklı servis isteği atacağım için aşağıdaki gibi yapıyorum. Bir Dispatch Group oluşturuyorum ve her servis çağırımından önce bu servis işleminin Dispatch Group’a dahil olduğundan emin olun. Servis işlemi bittikten sonra ise bu gruptan çıktığından emin olun. 4 farklı servis çağırımını da bu Dispatch Group’a dahil ediyorum ve işlem bittikten sonra çıkarıyorum. Tüm bu gruba dahil olan işlemlerinin hepsi bittikten sonra group.notify ile kalan işlemi yapabilirim. Eğer ki UI’i güncelleyeceksiniz main thread’inde yaptığınızdan emin olun ama başka bir servise istek atacaksanız global’de yapabilirsiniz.

Sorularınız olursa mail veya yorum atarak ulaşabilirsiniz.

Leave a Comment

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.