iOS Framework Oluşturmak

Bu yazıda Swift programlama dili ile “iOS framework oluşturmak nedir? Ne işe yarar?” gibi sorulara yanıt bulacaksınız ve kendi framework ünüzü yaratmayı öğreneceksiniz.

 

Nedir?

iOS için oluşturduğumuz framework aslında binary bir dosyadır ve uygulamanızda kullanabilmeniz için servisler, modeller ve fonksiyonlar sunar. Sizin veya bir başkasının yaratmış olduğu framework leri uygulamanıza dahil ederek projenizde kullanmanıza olanak sağlar.

Framework yarattığınızda .framework uzantılı bir dosya oluşur. Elinizde sadece framework dosyası varsa kodların orjinaline erişmeniz mümkün değildir. Yalnızca framework ün size sunduğu özellikleri uygulamanızda kullanabilir ve fonksiyonların signature larına bakabilirsiniz.

 

Avantajları Nelerdir?

iOS framework oluşturmak için nedenler şunlar olabilir:

  • Modularity
  • Abstraction
  • Reusability

Modularity

Projeniz için custom bir framework yarattığınızda benzer istekleri ve özellikleri bir araya toplamaya özen gösterirsiniz. Modeller bir yerde durur, servisler bir yerde durur, Utils elemanları bir yerde durur ve bunlar arasındaki bağımlılığı minimize etmeye çalışırsınız. Dolayısıyla high cohesion & low coupling prensiplerini uygulamış olur ve kodununuz modüler bir hal alır. Bu da framework ün yönetilebilmesini ve geliştirilebilmesini kolaylaştırır.

Abstraction

Göz önünde karışık iç içe kodlar, bir sürü if else ler ve süslü parantezler görmek hoş değildir. Bu işler mecburen yapılacaksa bile business logic kararları alınan ön tarafta değil; işin perde arkasında yapılmalı. Örneğin bir web servisine istek atıp gelen cevabı parse etmek, error handling yapmak ve modele map etme gibi işleri uygulamanın belli yerlerinde yapmak yerine bu işleri framework tarafında oluşturulan bir fonksiyona yaptırmak daha doğrudur. Bu da kodunuzu abstract bir hale getirecektir.

Reusability

Benzer şekilde, framework de oluşturduğunuz bir fonksiyona birden çok kez ihtiyaç duyduğunuzda sadece ilgili fonksiyonu çağırmak yeterli olacağından yeniden kullanabilirlik de önemli bir avantaj olarak öne çıkıyor.

Nasıl Oluşturulur?

Yeni proje yarat ekranından Cocoa Touch Framework seçin.

 

 

 

 

 

TestFramework isimli proje yarattıktan sonra AuthenticationAPI isminde bir Swift dosyası oluşturun.

 

 

 

 

Initializer ve dışarıya açılacak metodlar public şeklinde tanımlanmalıdır. İstenirse public yerine open anahtar kelimesi de kullanılabilir fakat bu durumda class dışarıdan subclass edilebilir hale gelecektir -ki çoğu zaman buna ihtiyaç yoktur.

Örnekte bir web servisine sahte bir istek atıldığı ve response handler ın bu cevabı döndüğünü simüle ediliyor. Gerçek hayatta bu istek gerçek bir endpoint e asynchronous atılacaktır.

 

Şimdi proje ismi ile aynı olacak şekilde bir Swift dosyası oluşturun.

 

 

 

 

 

Bu ana class bir Singleton class ı olacak ve tüm servislere bu class üzerinden erişilecek.  Initializer ı private yaparak dışardan bir müdahale ile yeni bir instance yaratmanın önüne geçmeniz gerekli.

Daha sonra servis classlarınızdan türeyen bir instance tanımlayın ve initializer içinde ilgili class objesini yaratın.

 

Framework projesi dahilinde yapmak istedikleriniz şekillendikçe Models, Services, Utils isminde klasörler oluşturup geliştirmeleri devam ettirebilirsiniz.

Test etmek için framework projesini build edin.

Framework ü uygulamayı çalıştıracağınız cihaz gamında (simülatör dahi olsa) aynı tipteki cihaz için build etmeye lütfen özen gösterin.

Build işlemi tamamlandığında Products klasörü altında framework ün yaratıldığını görebilirsiniz.

 

 

 

Framework artık asıl projeye dahil edilebilir hale geldi.

Framework kodunda bir güncelleme yaparsanız oluşturduğunuz binary otomatik olarak güncellenmeyecektir. Dolayısı ile framework ü update ettiğinizde uygulamanızda da aynı binary dosyasını kullandığınızdan emin olmalısınız.

 

Nasıl Kullanılır?

Lütfen framework ün bulunmuş olduğu dizine gidin ve üretilen dosyayı asıl uygulamanız içerisine sürükle-bırak yapın.

Daha sonra uygulama ayarlarına gidin ve General > Embedded Binaries kısmındaki + butonuna tıklayarak framework dosyanızı bulup ekleyin.

 

 

 

 

 

Artık framework ilgili uygulama class ı içerisinde import edilerek kullanılabilir hale geldi.

 

Sonuç

Artık oluşturduğunuz custom framework’ü bir CocoaPods pod u olarak paylaşabillir, kendi projelerinizde kullanabilir veya üçüncü kişilere satabilirsiniz. Ayrıca kurumlar da ekip içlerinde kullanılması ve geliştirilmesi için kendi iOS framework lerini oluşturmayı düşünebilirler.