Swift’te Kütüphane Oluşturma (Private Pod)

Muhammet İkbal Yaşar
GISEra
Published in
4 min readMay 2, 2018

Merhaba. Uzun süredir planlarımın arasına alıp gerçekleyemediğim yazılar silsileme nihayet başlayabiliyorum. Anlatıma girmeden önce kısaca kendimden bahsetmek istiyorum. Mühendisim ve Web & Mobil(iOS Swift) uygulamalar geliştiriyorum. Geliştirmiş ve geliştirmeye devam etmekte olduğum kişisel projelerim mevcut. Ben ve arkadaşlarım edindiğimiz tecrübeleri paylaşmak çin GISEra Medium grubunu kurduk. Bilgi paylaşıldıkça çoğalır. Bu çalışmada katkısı olan Furkan OZOGLU’na teşekkür ediyorum…

Orta ve ileri düzey iOS uygulama geliştiren herkesin muhakkak belli noktalarda ihtiyaç duyduğu ve kullandığı kütüphaneler olmuştur. JSON parse işlemlerinden tutunda (Alamofire)mobil uygulamada göstereceğiniz uyarı ekranının tasarımına kadar birçok hazır kütüphaneyi uygulamamıza “pod install” diyerek kurup kullanmışızdır. Peki biz public veya private bir kütüphane oluşturabilir miyiz?

Evet… Kendi kütüphanemizi yapabiliriz.

Kendi projelerimiz için geliştirmiş olduğunuz ve her projemizde kullandığınız bize özel kod bloklarını her defasında projeye kopyalamamak veya hazırlamış olduğumuz kütüphaneyi her projede kolayca güncel tutup kullanabilmek, yada işe yeni başlayan bir arkadaşımıza sadece kütüphanemizi kurdurarak tüm kod bloklarımıza erişmesini sağlamak için sadece erişim yetkisi olanların kurabildiği özel kütüphane yapmaya ihtiyaç duyarız.

Aşağıda adım adım özel kütüphane nasıl oluşturulur anlatacağım.

İşlem Adımları

  1. GitHub ve GitLab den özel (private) repo oluşturacağız. Ben GitHub dan devam edeceğim. MediumFramework adında bir kütüphane oluşturacağım.

Burada dikkat etmemiz gereken private seçili olması, ayrıca .gitignore, readme ve license de seçerseniz başlangıçta projemize eklenmiş olur.

2. Oluşturduğumuz private repo yu Github Desktop uygulamasını kullanarak bilgisayarımıza klonluyoruz. Dileyen terminal kullanarakta bu işlemi yapabilir.

3. Klonladığımız repoya, bir framework projesi oluşturup ekliyoruz. Xcode -> CocoaTouch Framework -> Next ->Create

Reponuzun altındaki klasör dizini aşağıdaki gibi olmasına dikkat ediniz.
Ayrıca commit’i tüm işlemler tamamlanınca yapacağız.

4. Oluşturduğumuz framework projesine Fahrenheit ve Celsius değerlerini hesaplayan bir class ekleyelim. Kütüphanemiz bu işi yapıyor olsun.

4. PodSpec dosyasını oluşturma

İlk olarak terminali açıp dosya konumuna gidiyoruz.

Daha sonra terminal komut satırında “pod spec create -pod ismi-” diyerek dosyamızı oluşturuyoruz.
Burada pod spec dosyasına framework ismi ile aynı ismi verdim.

Ve dosya dizininde pod spec dosyası oluşturulmuş olur.

Podspec dosyasının içini aşağıdaki gibi editleyebilirsiniz. Bu dosya kütüphaneniz ile ilgili ayarların tutulduğu dosyadır.

5. Podspec dosyasını ayarladıktan sonra validate(onaylama) işlemi yapacağız.
pod lib lint “dosyayolu.podspec”

Burada dikkat edeceğiniz husular;
* pod lib lint dediğimizde bir uyarı verdi, bu uyarı pod’un erişilemez olduğunu söyleyen bir uyarı. Zaten github da private olarak oluşturduğumuz için bu uyarıyı almamız gayet normal. Eğer bir hata olsaydı “error” olarak belirtecekti. Hata detayında yazan sorunu giderip tekrar “pod lib lint” yapmanız gerekiyor.
* Fakat podsumuzu valide edebilmemiz için bu uyarıları önemsetmemek gerekiyor. O sebeple “ — allow-warnings” diyerek bu uyarıyı önemsemiyoruz.
* “passed validation” yazısını gördüğümüzde işlem tamamlanmıştır.

6. Artık commit vakti. Github Desktop dan commit — push yaparak kütüphanemizi tamamlamış oluyoruz. Geriye sadece herhangi bir projeye “pod install” deyip kullanmak kalıyor.

7. Örnek olarak bir projede kullanalım :)

  • İlk olarak bir proje oluşturuyoruz
  • Oluşturulan projeye pods kuruyoruz. Terminalden bu işlemleri aşağıdaki gibi yapabilirsiniz. Burada dikkat edilecek husus; pod install dedikten sonra private kütüphane olduğu için sizden kullanıcı adı ve şifrenizi isteyecektir. (Github’da o framework’e erişebilmek için github kullanıcı bilgilerinizi istemektedir.)
  • Kurulum yaptıktan sonra .xcworkspace dosyasını açarak viewControllere kütüphanemizi import ediyoruz. Ve kütüphanemizde hazırlamış olduğumuz sıcaklık hesapla işlemini basitçe yapıyoruz.

Ve ilk makalemin sonuna gelmiş bulunuyorum. Başta biraz karışık gelsede aslında işlem adımları gayet basit. Artık gerek kendi kodlarınızı gerekse iş yerinde herkesin kullanmasını istediğiniz kodları tek bir yerden yönetmek, her seferinde aynı kodları tekrar yazmamak ve daha düzenli çalışmak için kütüphane oluşturmanızda hiç bir engel kalmamış oluyor. Bu işlem adımları çok küçük farklar ile GitLab için de geçerli, testini yaptım.

Görüş ve önerilerinize açığım, makaleyi daha iyi bir seviyeye taşımak için bunlara ihtiyacımız var. Bundan sonraki yazım hazırlamış olduğumuz ios uygulamasını apple storeye göndermede bize çok büyük kolaylık sağlayan fastlane kütüphanesi üzerine olacak.

Takipte kalın :)

--

--