skip to Main Content
Xcode Için Proje Şablonu Hazırlama

Xcode için Proje Şablonu Hazırlama

Bu yazıda amacımız Xcode üzerinde Single View App gibi, kendi proje şablonumuzu hazırlamaktır. Günümüzde projelerin kodlanması ve ürüne dönüştürülmesi çok önemlidir. Fakat onun kadar önemli diğer bir nokta, projeye ilk adım atılırken uygulayacağınız mimaridir. Genellikle bu kısım kodu yazacak yazılımcının insiyatifine bırakılır. Durum böyle olunca bakımı zor, güncellenmesi daha zor projeler ortaya çıkmaktadır.

Yazılım projelerinde her ürün, farklı bir mimari kullanarak geliştirilebilir (MVP, MVVM, MVC, VIPER vb.). Seçilen mimari, projenin kapsamı ve ihtiyaçları ile ilgili bir konudur. Fakat her projeye başlandığında yeni proje oluşturulması, isimlendirme kuralları, dosya yapısı vb. ne kadar dikkat edilirse edilsin farklılık göstermektedir. Durum böyle olunca proje ile ilgili yeni bir istek geldiğinde neyi nerde bulacağınız biraz karmaşık bir hal alabilmektedir. Bu yüzden proje oluşturma aşamasında harcadığınız zamanı en aza indirmek için Xcode üzerinde mimarilere uygun başlangıç şablonları oluşturabilirsiniz. Bu sayede tüm projeleriniz belirli bir yapıda devam eder ve zamandan da tasarruf sağlamış olursunuz. Lafı çok uzattım, artık Xcode için bir proje şablonu nasıl oluşturulur onu inceleyelim.

1. Xcode Proje Şablonunun Oluşturulması

Öncelikle şablon kavramı, proje oluştururken “Create a new Xcode project” seçeneğini seçtikten sonra karşımıza gelen Single View App, Game, Tabbed App vb. yapılardır. Xcode içerisinde varsayılan olarak gelen proje şablonları, “/Applications /Xcode.app /Contents /Developer /Platforms /iPhoneOS.platform /developer /Library /Xcode /Templates /Project/ Templates /iOS/Application” dizini altında bulunmaktadır. Bu dizin altında bulunan Single View App.xctemplate bizim Swift projelerimizde kullandığımız temel proje şablonudur. Ben bu dizinde bulunan Single View App.xctemplate dosyasını kopyalayıp güncelleyerek devam edeceğim. Siz isterseniz bu dizine yeni bir dosya oluşturarak buna devam edebilirsiniz. Fakat yeni oluşturduğunuz dosyanın sonunun .xctemplate ile bittiğinden emin olmalısınız.

Single View App.xctemplate içerisine bakacak olursanız, aşağıdaki dosyaları göreceksiniz. Bu dosyalardan TemplateIcon ve TemplateInfo dosyaları şablon için olması gereken dosyalardır.

  • Main.storyboard
  • TemplateIcon.png
  • TemplateIcon@2x.png
  • TemplateInfo.plist

Main.storyboard uygulamanın görünüm ekranı, TemplateIcon ise şablonunuzun resmidir. Burada önemli olan TemplateInfo.plist dosyasıdır. Tüm işlemleri bunun içerisinde yapacağız. TemplateInfo.plist içerisindeki Identifier alanı benzersiz bir alan olmalıdır. Bu alanı değiştirdikten sonra Xcode’u yeniden çalıştırdığımızda artık oluşturduğumuz şablon ekrana gelecektir. Dosya yapımız aşağıdaki gibi olacaktır.

 

 

Xcode Simple View App Template

 

 

Xcode TemplateInfo.plist identifier

 

Xcode choose custom template

 

 

Resimlerde de gördüğünüz üzere, oluşturduğumuz “Ratel Project Template” proje şablonu başarılı bir şekilde Xcode içerisine gelmiştir.

2. Proje Şablonuna Mimarinin Dahil Edilmesi

Bu bölümde mimarinize uygun oluşturmuş olduğunuz basit Xcode dosyalarını sisteme dahil edeceğiz. Ben basit bir MVC mimarisine uygun yapı oluşturdum. Siz isterseniz kendinize göre farklı mimariler kurabilirsiniz.

Aşağıda gördüğünüz gibi basit bir içi boş Xcode projesi oluşturdum. Şimdi oluşturduğum proje dosyasına gidiyorum ve oradaki Models, Views, Controllers ve Services dosyalarını kopyalayıp oluşturduğumuz .xctemplate dosyası içerisine yapıştırıyorum. Artık son ayarlamaları TemplateInfo.plist içerisinde yapacağız.

 

Xcode base MVC template

 

3. TemplateInfo.plist Dosyasının Düzenlenmesi

TemplateInfo.plist dosyasını açıyoruz. Options > Item 0 > Units > Swift > Nodes altına her dosya için yeni bir Item(String) oluşturup, kopyaladığımız dosyaları, yolu ile birlikte Item değeri olarak ekliyoruz.

 

Xcode TemplateInfo.plist options

 

Sadece bu şekilde ekleyip bırakırsak, Xcode, içleri boş birer dosya oluşturacaktır. Biz var olan dosyaları şablon içerisine kopyalamak için Definitions altına da tanımlama yapmamız gerekecektir.

TemplateInfo.plist içerisinde bulunan Definitions altına  dosya yollarını ekliyoruz (Her dosya için ayrı ayrı eklenecektir.). Eklediğimiz değerlerin ismi dosya yolu türü ise Dictionary olmalıdır. Eklediğimiz her dosya yolu altına ise Path(String), Group(Array) olacak şekilde iki tane alan ekliyoruz. Burada Path yine dosya yolu, Group elemanları ise dosya yoluna giderken atladığımız dosyalardır (Dosya kırılımları.). Aşağıdaki resimle daha iyi anlaşılabilir.

 

Xcode TemplateInfo.plist definations

 

İşlemimiz bu kadar. Artık yeni oluşturduğumuz şablonu seçerek oluşturulan tüm projelere ilgili mimari dosyaları otomatik olarak eklenecektir. Fakat seçmeli olarak modül ekleme işlemi için 4. maddeyi okumanızı tavsiye ederim.

4. Seçmeli Modül Ekleme

Bu bölümde ise Xcode üzerinde proje oluştururken Use Core Data gibi checkbox nasıl eklenir ve bu checkbox değerine göre ilgili proje modülleri (Login Modülü, Tutorial Modülü vb.) projeye nasıl dahil edilir onu göstereceğim.

Bunun için TemplateInfo.plist içerindeki Options altına yeni bir Item ekliyoruz. Eklediğimiz Item altına Identifier(String), Name(String), Description(String), Type(String), Default(String), Units(Directory) olacak şekilde yeni elemanlar ekliyoruz. Eklemiş olduğumuz Units altına ise checkbox işaretli ise ve işaretli değil ise koşulları için iki tane eleman ekliyoruz  (true, false). Bu bölüm cevaplar sonucunda ne yaptırmak istediğinize bağlı olarak değişiklik gösterebilmektedir. Ben checkbox işaretlenmesi durumunda (true), sisteme Login Modülü ekleyeceğim. Bunun için true değerinin türünü Directory olarak belirliyorum. false seçeneğinde ise bir aksiyon yapmayacağım için bu alana istediğiniz değer verebilirsiniz. true (Directory) altına ise Nodes (Array) adında yeni bir değer ekliyoruz. Son olarak bu Nodes altına yaptırmak istediğimiz işlemleri Item olarak ekliyoruz. Ben Login/Login.swift sınıfını eklemek istediğim için Item 0 (String) değerini Login/Login.swift olarak belirliyorum. Burada istediğiniz işlemleri yaptırabilirsiniz. Aşağıdaki resimde kırılımları görebilirsiniz.

 

NOT : Yukarıdaki paragrafta bahsettiğim işlemi yaparsanız projenize boş Login.swift adında dosya ekleyecektir. Fakat biz oluşturduğumuz Login.swift dosyasını projeye eklemek istediğimiz için 3. maddedeki Definitions altına  Login dosyalarını da eklemeliyiz.

 

Xcode TemplateInfo.plist checkbox

 

 

Xcode TemplateInfo.plist definations

 

Son olarak proje oluşturma ekranında aşağıdaki gibi bir checkbox oluşacaktır.  Bu checkbox sadece oluşturduğumuz şablonun seçilmesi durumunda görünecektir.

 

Xcode choose options for your new project

 

Burada anlatılanlar Xcode projesi şablonu oluşturmak için temel işlemlerdir. Diğer TemplateInfo.plist dosyalarını incelerseniz daha detaylı kullanımlar keşfedebilirsiniz. Bu plist dosyası sadece kopyalama ve taşıma işlemleri yapmanın yanında, örneğin AppDelegate.swift dosyasında istediğiniz alana istediğiniz kod bloğunu yazabilme ayrıcalığı da sağlamaktadır.

Bol keşifler 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir