CocoaPods ile Kütüphane Yönetimi
This is a Turkish tutorial about Cocoapods. I will write about this dependency manager tool.
Merhaba arkadaşlar. Bugün dışarıdan bir kütüphaneyi uygulamamıza nasıl ekleyebileceğimizi göreceğiz. Cocoapods tüm bu kütüphane yönetimini sağlayan bir tool. Cocoapods kullanarak tek bir komutla istediğimiz kütüphaneyi projemize dahil edip kullanabiliyoruz. Şimdi gelin bu işin nasıl yapıldığına bakalım.
CocoaPods Kurulumu
Terminalimizi açıyoruz ve oraya sudo gem install cocoapods komutunu yazıyoruz. Bu komut CocoaPods'u bilgisayarımıza kuracaktır. Artık onu kullanmaya başlayabiliriz.
CocoaPods Kullanımı
Şimdi kütüphane eklemek istediğimiz projemizin dizinine "cd" komutu ile gidelim. Standart bir Xcode proje yapısı aşağıdaki gibidir.
Bu dizine terminalde geldikten sonra pod init yazın. Bu komut bize adı Podfile olan bir dosya üretecektir. Bu işlemden sonra pod install yazıp yükleme yapacağız. Podfile içinde şuan bir kütüphane belirtmediğimiz için sadece dosyaları açacaktır.
Yüklemeden sonra gördüğünüz gibi yeni dosyalar geldi. Şimdi bunların ne olduğuna bakalım. Podfile yüklemek istediğimiz kütüphaneleri içinde belirteceğimiz dosyamız. xcworkspace uzantılı dosya kütüphane ile birleşmiş projeyi ifade ediyor. Artık projenizi xcodeproj üzerinden değil xcworkspace üzerinden çalıştırmanız gerekiyor. Bu şekilde kütüphaneler de sizinle beraber olacak. Podfile.lock ise yüklü olan kütüphanelerin hangi versiyonunu kurduğumuzu belirtiyor. Kütüphanenin daha güncel bir versiyonu olabilir ve siz eski versiyonu kullanıyor olabilirsiniz. O yüzden çok önemli bir dosya. Son olarak Pods diye bir dosya oluştu. Bu dosya da kurulan kütüphaneleri içinde barındırıyor.
Şimdi projemize birkaç kütüphane eklemek isteyelim. Podfile dosyasını terminalden veya başka bir editörden açabilirsiniz. Fakat bazı editörler dosya yazılarını bozabiliyor aklınızda bulunsun. Podfile'ı açın ve target ile end arasına pod 'RxSwift' yazın. Terminale dönüp pod install deyin.
xcworkspace uzantılı dosyadan projenizi açtığınızda artık bu kütüphaneyi istediğiniz gibi kullanabiliyor olacaksınız. Tek yapmanız gereken onu "import" etmek.
Şuan da sadece isim ile bir kütüphaneyi çektik fakat genelde versiyon numarası vererek kullanmak daha faydalı olabilir. Çünkü aynı proje üzerinde çalışan birkaç kişi podları yüklediği zaman farklı versiyonları çekebilir. Buna sebep olan şey de CocoaPods'un yerelinizde versiyonları tutuyor oluşu. Eğer siz Cocoapods'un tuttuğu bu versiyonları güncellemezseniz her zaman kendinize göre en güncelini fakat gerçekten güncel olmayan bir versiyonu çekiyor olacaksınız. Bu versiyon güncelleme işini ise pod update komutu yapmaktadır. Bu komutun tehlikeli yanı versiyon belirtmediğiniz kütüphaneler için güncelleme yapacak olmasıdır. Kodunuz bir anda derlenmemeye başlayabilir.
Şimdi gelin ve versiyon işleminin nasıl yapıldığına bakalım. Podfile.lock dosyasını açtığımda kurulan sürümün 4.1.0 olduğunu görüyorum. Belki siz 4.0.0 versiyonunu kullanmak istiyor olabilirsiniz.
O zaman versiyon belirtelim ve 4.0.0 versiyonunu kullanalım. pod 'RxSwift', "~> 4.0.0" ile versiyon belirttiğimiz podu Podfile içerisine ekleyelim. Yapmanız gereken virgül koyup ok ile yüklemek istediğiniz versiyonu belirtmek. pod install yazdığımız zaman artık 4.1.0 değil 4.0.0 versiyonu yüklenecektir. Podfile.lock içerisinde de bunu görebileceksiniz.
Projenizde UI veya Unit test yazıyorsanız onlar için de kütüphane ihtiyacınız olabilir. Xcode içerisinde ana kod ve testlerin olduğu kısım ayrıdır. O yüzden ana projenizde yer alan bir kütüphane testleriniz içerisinde doğrudan kullanamazsınız. Şimdi gelin onlar için de yükleme yapalım.
target 'HelloSteemit' do
use_frameworks!
pod 'RxSwift', "~> 4.0.0"
end
target "HelloSteemitTests" do
pod 'RxSwift', "~> 4.0.0"
pod 'OHHTTPStubs/Swift'
end
target "HelloSteemitTests" do
pod 'RxSwift', "~> 4.0.0"
end
Artık testlerimiz için de kütüphane yükleyebiliyoruz. Peki burada gözünüze kötü gelen bir şey var mı? Benim var. Aynı pod satırını kopyala yapıştır yapmak. Birden çok podu testlerim ve ana projem içinde kullanmak isteseydim sürekli kopyala yapıştır mı yapacaktım? Cevap hayır. Bunun için bir alan belirtip onu kullanacağız.
def shared_pods
pod 'RxSwift', "~> 4.0.0"
pod 'FacebookCore'
pod 'FacebookLogin'
end
target 'HelloSteemit' do
use_frameworks!
shared_pods
end
target "HelloSteemitTests" do
shared_pods
pod 'OHHTTPStubs/Swift'
end
target "HelloSteemitTests" do
shared_pods
end
Artık dışarıdan bir kütüphaneyi projemize eklemek istediğimizde nasıl yapacağımızı öğrenmiş olduk. Herkese iyi kodlamalar. :)
Posted on Utopian.io - Rewarding Open Source Contributors







Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Öğretiniz için teşekkürler Burak bey
Hey @thornaci I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x