Storyboard Dosyanızı Düzenleyin

Ege Sucu
Ege Sucu
Nov 5 · 3 min read

Projelerimizde Storyboard kullanıyoruz (eğer SwiftUI tasarlamaya başlamadıysanız 😊), ancak pek çoğumuz bireysel ve küçük ölçekteki projelerde Storyboard’ı tam olarak doğru kullanmıyor olabiliriz. Peki bu dosyaları nasıl daha düzenli bir hale getirebiliriz? Gelin keşfedelim.

Neleri Yanlış Yapıyoruz?

Öncelikle bu noktada nerelerde yanlış yaptığımızı keşfetmemiz önemli.

  1. Bir Storyboard üzerine çok fazla ViewController koyuyoruz.
  2. ViewController arası geçişlerde çok fazla Segue kullanıyoruz.
  3. Segue yapılarından geriye dönüşü tasarıma bağlıyoruz.

Hemen detaylarını açıklayayım.

Bir Storyboard dosyası bünyesinde yer alan objeler çoğaldıkça:

  • Daha uzun sürede yüklenir.
  • Beraber çalışılan projelerde çatışma(conflict) yaratır.

ViewController arası çok fazla Segue kullandıkça:

  • Her segue için bir identifier girmek gerekir ve hesap karışır.
  • prepare(forSegue:) fonksiyonunda hangi segue ile gideceğini belirlemek için bir çok if-else sorgusu yapmanız gerekir.

Biraz önceki sorunu çözdüğümüzde UnwindSegue methodlarına gerek kalmadan önceki ViewController’a dönebileceğiz.

Sıra sorunları çözmekte!

Storyboard Dosyasını Parçalara Ayırın

Yok, yırtmayın. Silmeyin, yakmayın! Onu kastetmedik. 😀

Yapmanız gereken ViewController dosyalarınızı kategorize etmek. Örnek olarak bir durum ele alalım:

6 segue, 6 unwind segue, 1 storyboard ve 7 ekran 🤢

Bir uygulamanın Giriş kısmındaki 3 ekranı görüyoruz. Bu uygulama sonrasında 3 aşamalı bir kurulum ekranına gidiyor ve en son Home ekranına ulaşıyor. Bunların hepsi bir “Main.storyboard” dosyasında yer alıyor.

İlk etapta bu dosyayı üçe ayırıyoruz.

İsimleri:

  • Home.storyboard(Home ekranını tutacak)
  • Setup.storyboard(Setup ekranlarını tutacak)
  • Welcome.storyboard(Welcome ekranlarını tutacak)

Bu yaptığımız işleme Storyboard Refactoring deniyor. Bir çok projede bu yaklaşımı görebilirsiniz. Peki bu storyboard dosyaları arasında nasıl gezeceğiz?

Bu yöntemi kullanabilirsiniz, ancak altta yer alacak yöntem daha az kod ile aynı işi yapacaktır.

ViewController Arası İlerleyin

Segue storyboard üzerinde de yapılabilir, kodlama ile de. Burada önemli nokta her bir ViewController’a bir Storyboard ID vermekte. Tabii bu biraz zahmetli. Bunu bir extension içerisinde yer alacak kod bloku ile çözebiliriz.

Yukarıda yaptığımız kodun eklenti hali, birden çok çağırabilir bir hale dönüştü.

Bu oluşturduğumuz fonksiyon sayesinde gitmek istediğimiz ViewController dosyasına bir ID atamadan geçiş yapabiliriz. Örnek olarak Setup Ekranı 3'teyiz ve Home Ekranı’na geçmek istiyoruz. Bu durumda kodumuz 2 satırdan oluşacak.

Bu sayede HomeViewController dosyasına Segue olmadan gidebiliyoruz. En başında verdiğim koda göre de daha kullanışlı oluyor, çünkü her ViewController için değeri farklı oluyor.

Peki ya UnwindSegue?

Unwind Segue methodunu iki sebeple kullanırız.

  1. Geriye dönerken veri aktarmak için
  2. Geri dönebilmek için

Eğer niyetimiz sadece bir ViewController geri dönmek ise o zaman HomeViewController içerisinde bir aksiyon yaratabilirsiniz.

Eğer niyetiniz veri aktarmak ise o zaman delegation yazımızı okuyarak kod ile aynı işlemi gerçekleştirebilirsiniz.

Bu yöntemler sonucu durumumuz şu hale döndü:

0 Segue, 3 farklı Storyboard ve 0 karmaşa😊

Böylece Storyboard dosyamız daha basit bir hal aldı.

Bir yazımızın daha sonuna geldik. Storyboard dosyaları biriktirdiğinizde çok karmaşık olabiliyor. Bu pratikler sayesinde hem diğer iş arkadaşlarınızla birlikte bir proje üzerinde daha kolay çalışabileceksiniz, hem de storyboard dosyası başınıza bela olmaktan çıkacak. Sorularınızı yorum kısmında belirtebilirsiniz. Hepinize keyifli kodlamalar😊

TurkishKit

Apple dünyasında sınırları belirleyecek nitelikte uygulamalar tasarlamak ve geliştirmek isteyen lise & üniversite öğrencilerinin buluşma noktası.

Ege Sucu

Written by

iOS Developer

TurkishKit

Apple dünyasında sınırları belirleyecek nitelikte uygulamalar tasarlamak ve geliştirmek isteyen lise & üniversite öğrencilerinin buluşma noktası.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade