Merhaba. Bu yazıda Swift Package nedir nasıl oluşturulur ? Bu konuya değineceğiz ve bir örnek oluşturacağız.
Swift paketleri, bize aynı kodu tekrar tekrar kullanma imkanı verir. Kodu bir defa yazar daha sonra kullanmak istediğimiz diğer projelerimizde Carthage, CocoaPods, Embedding ve ya Swift Package Manager üzerinden belirli bir versiyonu çekip kullanırız.
Swift Package Versiyonlama kuralları hakkında daha fazla bilgi için şu yazıyı inceleyebilirsiniz
Swift Package bizi zaman israfından kurtarır. Diğer geliştiricilerin yazdığı packageları da kullanabildiğimiz için bir avantaj sağlar. Örnek olması açısından bir proje oluşturalım. Bir önceki yazıda bir PopView oluşturmuştuk. Ben bu PopView’ı projelerimde sürekli kullanmak istediğimden dolayı bir Swift Package haline getirmek istiyorum.

PopView için bir @IBDesignable sınıfı yazmıştık. Bu yazıda ufak bir değişiklikle sınıfın access controlünü diğer modüllerde erişeceğim için public olarak düzenliyorum. ve

Bu sınıfa ek olarak aşağıdaki sınıfı yazıyorum. Sınıfımız içerisindeki contentWillLoadWithSuccess(_:) fonksiyonunu çağırdığımda ekrana PopView çıkıcak ve 1.4 saniye sonra kaybolucak.


Kod tamam paketleme işlemine geçebiliriz. – Bu sadece bir örnek siz istediğiniz kodu paketleyebilirsiniz. –
Xcode sol üst taraftan
- File -> New -> Package -> Library seçiyoruz.

Ardından isim veriyoruz ve alt kısımda bulunan Add to: ve Group: değerlerine projemizi girip oluşturuyoruz. – Burdaki paketi kaydettiğimiz dizini bir kenarda tutalım. –

Create ettikten sonra aşağıdaki gibi bi ekran karşılıyacak bizi.
Burada paketin özelliklerini görüp düzenleyebiliyoruz. Örneğin iOS 15.0 ve sonrası için istiyorsanız bunu burada ayarlayabiliyorsunuz. Ve ya hangi platformlarda aktif olucak iOS macOS tvOS gibi gibi düzenlemeler yapabiliyorsunuz.

Sources klasörüne geldiğimde içerisinde boş bir dosya görüyoruz. Kodumuzu ekleyeceğimiz esas yer burası. Yani buradaki kodu paketliyoruz.

Bu dosyayı siliyorum ve yerine yukarıda oluşturduğumuz kodların bulunduğu dosyaları ekliyorum ve paketi hazır hale getiriyorum.

Paket hazır hale geldikten sonra paketi GitHub’a dağıtabiliriz. Öncelikle Xcode üzerinde açık olan projemizi kapatalım. Ardından Package kaydettiğimiz dizine gidip Package.swift dosyasını açalım.
Ben desktop’a kaydetmiştim ;
- Desktop/LoadingWithSuccessView/Package.swift

Ardından Github üzerinden bir repo oluşturalım ve deploy edelim.
Git işlemleri için Xcode’nin kendi tool’unu kullanıcam.
Xcode üst menüden
- Integrate -> New Git Repository
seçiyorum ve create edip lokalde bir repo oluşturuyorum. Ardından Source Controller Navigator üzerinden Repositories’e geliyor ve remote üzerinde de repo oluşturuyorum.

Repoyu create ediyorum.

Repo başarıyla oluşturuldu Github üzerinden görebiliriz.

Ardından Xcode geri dönüp Source Navigation Controller’da repoya bir tag ekliyorum ki ileride sürüm kontrolleri yapma işimiz kolaylaşsın.

Versiyon kontrollerinin düzenli olması adına ilk sürümü 1.0.1 ardından 1.0.2 1.0.3… gelecek şeklilde numaralandırıyorum.

Tag’i de attığımıza göre commit atıp pushlayabiliriz. Push atarken include tag’s seçeneğini de işaretleyelim.
Package başarıyla oluşturuldu artık istediğimiz projede kullanabiliriz.
Package kullanmak için Xcode üzerinde
- File -> Add Package Dependencies
üzerinden GitHub’taki reponun url’i ile arama yapıyorum. Denemek isterseniz reponun linkini aşağıya bırakıyorum.
https://github.com/ibrahimTasdemir27/LoadingWithSuccessView

Ardından paketi ekliyorum. Ve kullanmak istediğim yere import edip çağırıyorum. ve sonuç ;

SONUÇ
Paketimizi başarılı bir şekilde oluşturup dağıttık ve kullandık.
