iOS Uygulamalarınız İçin Kendi Pod’unuzu Geliştirin

Ferhan Akkan
6 min readAug 2, 2020

--

Merhabalar bugün iOS development’a yeni başlamış olan arkadaşlarımız için kendi kütüphanemizi nasıl geliştirebileceğimizi anlatacağım. Kendi podunuzu oluşturabilmeniz için öncelikle macOS işletim sistemine sahip cihazınıza Cocoapods’ yüklemeniz gerekmektedir.

Cocoapods’ü yüklemek için cihazınızda terminali acın ve aşağıdaki kod satırını girip enter’a basın.

sudo gem install cocoapods

“sudo” kelimesinin en başta olmasından ötürü cihazınızın şifresini isteyecektir. (“sudo” ile birlikte bütün işlemler için yetki alırsınız.) Şifrenizi girerken yazı olarak görünmez siz yazıp enter’a tıklayın yükleme süreci başlayacaktır.

An itibariyle cihazımızda pod geliştirmeye başlamamız için bi engel kalmadı. Şimdi sıra pod geliştireceğimiz projeyi oluşturmakta. Önceden Desktop’uma bi adet Medium Example folder’ı oluşturmuştum ve terminal ile bu dosya yoluna girdim. Projeyi oluşturacağım noktaya ulaşmam ile birlikte projemi oluşturmak için:

pod lib create ProjenizinAdi

Komutlarını girip projeyi oluşturuyoruz. Projeyi oluştururken sizlere birkaç soru sorulacak. Bunları ihtiyaçlarınıza göre farklı şekillerde cevaplayabilirsiniz.

Görselde benim terçihlerimi görmektesiniz. İhtiyaçınıza göre farklı tercihler yapmak sizin elinizde. Enter diyip projenin oluşturulmasını bekliyoruz.

İşlemler bittiğinde projemiz otomatik bi şekilde açılmış olacak ve command+B ile build alalım. İlk olarak düzeltmemiz gereken proje oluşturulduğunda iOS 8.0 Target olarak kabul ediliyor bunu değiştirmek.

İlk Pods’a tıklayıp Project ve Targets kısmlarına girip iOS Development Target’ı 12.0 yapıyoruz. Gene aynı noktada Targets altındaki sekmeler için de Signing & Capabilities kısmına girip Team seçmeniz gerekmekte.

Aynı işlemleri MediumPodExample kısmı için de gerçekleştirmemiz gerekmekte.

Geliştirmeye başlamadan önceki son aşamamız olan kısım ise yukarıdaki bar da görmüş olduğumuz uyarılar. Sarı uçgene tıklayıp karşınıza çıkan değişikliklerin yapılmasını sağlayın. Güncel kod düzenine daha uygun bir yapı olması için Xcode bize bu kolaylığı sağlamakta.

Şimdi projemizi gitHub repomuza göndereceğiz bunun için repomuzu oluşturuyoruz. Başka geliştiricilerinde projenizin kaynak kodlarına ulaşması için public olarak seçiyoruz.

Create repository dedikten sonra önümüze aşağıdaki sayfa geliyor ve burda bize sunulan link’e birazdan ihtiyacımız olacak.

İşlemleri tamamlamızın ardından oluşturduğumuz projemizi gitHub repomuza gönderiyoruz. Bu işlemi gene terminalden yapacağız. Terminalden projemizin olduğu dosya yoluna gidiyoruz ve aşağıdaki işlemleri yapıyoruz.

git init
git add -A
git commit -m "buraya commitinizi giriniz"
git remote add origin https://github.com/ferhanakkan/PodMediumExample.git (Kendi proje linkinizi girin !!!)

Bu kod satırlarını terminalde girdikten sonra ve projemizi gitHub’a pushladıktan sonra gitHub’taki sayfamıza refresh yapıyoruz.

Gördüğünüz üzere projemiz remote repomuza gönderildi.

Şimdi tekrardan Xcode’a geri dönüp genel yapı hakkında biraz inceleyelim.

Podspec Dosyası

Podspec dosyası geliştirmiş olduğumuz pod’un versiyon, geliştirme hedefi, dosyaların nerede olduğunu gösterdiğimiz bi ayar dosyasıdır. Burası oldukça önemli çünkü source dosyalarının yerini burda yanlış girerseniz “Pod validation” aşamasında sorun yaşarsınız. Bu kısım ile ilgili ayarlar ve örnek dosya sizlere ilerleyen kısımda göstereceğim.

Podspec dosyasına 2 farklı yerden ulaşabilirsiniz ancak ikiside aynı dosyadır. Bu dosya yolları ;

  • Pods/Development Pods/Pod/ProjeAdı.podspec
  • ProjeAdı/Podspec Metada/ProjeAdı.podspec

Example For ProjeAdı

Bu kısımda yazmış olduğumuz podu direk olarak örnek bi proje üzerinde kullanıp test etmemizi sağlamaktadır. Bildiğiniz bir iOS app kısmı ile aynı.

Pods

Bu kısım esas olarak geliştirmeyi yapacağımız kısımdır. Hem asset hem swift dosyalarımız bu dizinde şekillenecektir. Sınıflarımızı oluşturacağımız dosyaların Pods/Development Pods/ProjeAdı/ dizinin altında yer alması gerekmektedir. Ayrıca asset dosyalarımız da Pods dizininin altında yer alacaktır. Preset olarak ReplaceMe.swift dosyasınız göreceksiniz ilk işiniz bu silmek olsun ve kendi swift dosyanızı oluşturun.

İşin teorik kısmını bitirdikten sonra projemize başlıyoruz. MyClass adlı bi swift dosyası oluşturup içerisinde geliştirmemizi yapacağız. Kütüphanemizin bir fonksyonu bir string dönecek diğer fonksyonu ise UIImage dönecek. Burdaki amacım sizlere basit bir şekilde assetleri nasıl ekleyebileceğinizi göstermek.

Swift dosyasını oluşturduktan sonra image’ı alabilmek için bi Asset dosyası oluşturacağız.

Asset dosyamızı oluşturduk ve içerisine kullanacağımız image dosyasını yerleştirdik.

Öncelikle pod geliştirirken asset dosyanız içerisindeki image’a ulaşabilmeniz için Bundle kısmına olduğunuz sınıfın tipini vermeniz gerekmekte. Yukarıdaki kod parçası size örnek olacaktır. Şimdi Example kısmına geçip podumuz çalışıyor mu test edeceğiz.

Gördüğünüz üzere uygulamamız çalışmakta ancak ProjeAdı.podspec dosyamızı düzenlememiz lazım çünkü elimizdeki sınıf ve asstelerin konumunu belirtmemiz gerekmekte.

Podspec dosyamıza gerekli dosya yollarını belirttik (38–39 satır) ve gerekli target bilgilerini girdik. Şimdi kodumuzu commitleyip gitHub’a pushlayacağız.

Önemli Not !!!

Bu dosya taşıma işlemini yapmaz iseniz validation sırasında hata alacaksınız.

MyClass dosyası Pods/Development Pods/MediumPodExample/Source dosyasına taşındı.

Assets.xcassets klasörü Pods/Resources dosyasına taşındı.

Xcode üzerinden kodumuzu pushladıktan sonrasında gitHub repomuza gidip release oluşturacağız.

Repomuza girip tags’e tıklıyoruz. Sonrasında karşınıza çıkan ekranda Create New Release’e tıklıyor ve versiyon numaranıza uygun şekilde girip title ve commit giriyoruz. Create release yapıyoruz ve gitHub kısmı ile işimiz burada bitiyor.

Tekrardan kendi terminalimizi açıyoruz. Eğer ilk defa bi pod release edecekseniz kayıt işlemini muhtemel yapmamışınızdır bundan dolayı kayıt işlemini aşağıdaki şekilde yapıyoruz. Mail adresinize bi mail gelecek.

pod trunk register 'mailAdresiniz'

Kayıt işlemini tamamladıktan sonra terminalde projemizin olduğu dizine gidiyoruz. Dizine geldikten sonra projemizi onaylanması için gönderiyoruz.

pod lib lint

Eğer bi hata yok ise bir sonraki aşamaya geçmeniz gerekmekte. (Hata olması durumunda terminalde nedeni size iletilecektir.)

pod trunk push

Son olarak projemizi pushluyoruz ve artık podumuz kullanıma hazır. Diğer geliştiricilerin readme dosyalarını örnek alarak kendi readme dosyanızı düzenleyebilirsiniz. Bundan sonra herhangi bi pod yükler gibi kendi podunuzu da istediğiniz app’e entegre edebilirsiniz.

Umarım bu yazım sizlere faydalı olmuştur. Mumkün olduğunca basit şekilde anlatmaya çalıştım. Aklınıza takılan birşey olur ise Linkedin veya burdan yorumlardan yazabilirsiniz.

Örnek proje linki : https://github.com/ferhanakkan/PodMediumExample/releases/tag/0.1.0

Kendi geliştirmiş olduğum projem: (ReadMe örneği için)

https://github.com/ferhanakkan/AuthTextField

Kaynaklar :

https://www.youtube.com/watch?v=u8pHhxZ6BvE

--

--