CocoaPods ile Kütüphane Yönetimi

in #utopian-io9 years ago (edited)

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

Sort:  

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

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • Seems like you contribute quite often. AMAZING!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

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

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.099
BTC 63969.33
ETH 1843.09
USDT 1.00
SBD 0.38