Objective c nedir

Objective C

Bilindiği üzere , Objective-C programlama dili Apple firmasının ürünleri üzerinden uygulama geliştirmemizi sağlayan programlama dilidir. 2008 senesi itibari ile iPhone tanıtımından sonra Dünya üzerinden popüleritesi bi hayli artmıştır.

Objective-C, Dünyanın en popüler dili olan  C ‘nin Obje (Nesne) temelli halidir diyebiliriz.

C programlama dili 1972 yılında ortaya çıktığında programcılar bir problemi küçük parçalara ayırılarak çözerlerdi.Yazilan uygulamalar, Prosedürlere, Fonksiyonlara bölünerek  adım adım uygulama programlanırdı. İşleve dayalı programlama parçalara bölünmüş ayrı işlevselliği olan kod bloklarının çağrılması mantığına dayanan bir yöntemdir. Tanımlanmış fonksiyonlar program sırasında herhangi bir zamanda çağrılabilirler. Fonksiyonlar diğer fonksiyonların içindende çağrılabilecekleri gibi kendi kendilerini de çağırabilirler. Uygulama bu şekilde yazılmış olduğu için oldugu için kolayca parçalara bölünebilirdi.

Ancak, yazılan program sayısının gün geçtikçe artması ve bilgisayar ortamında çözülmesi istenen problemin gittikçe büyümesi ile birlikte bu tür programlama şekli yeterli gelmemeye başladı. 1980 yıllarında çözüm olarak ilk gerçek Nesne Yönelimli Programlama Dili (Object Oriented Programming Language) olan Smalltalk geliştirildi. Daha sonra ise C programlama dilini temel alan ama farklı bir yapı geliştirerek nesne yönelimli çözüm üreten diller(Örn: C++) geliştirildi. Bu dillerin hepsi temel olarak C programlama dilini esas alsalar da, kendi yapı şekilleri, sözdizimleri vardı. Bu dillerden farklı olarak Objective-C, Smalltalk’un nesne yönelimli çözümünü C programlama dili üzerine ekleyerek yeni bir programlama dili olarak ortaya çıkmıştır. Objective-C, C’nin üzerine yazılmış, Nesne Yönelimli Programlama (OOP-Object Oriented Programming) dilidir.

Cocoa

Objective-C içerisinde Mac OS ve iOS da kullanılabilmesi için Cocoa ve Cocoa Touch framework barındırır. Cocoa framework çatısı sayesinde Unix platformunun gücüne tam erişim sağlayarak üst düzey API’leri ile sadece birkaç satır kod sayesinde üstün uygulamalar  yapabiliriz. Cocoa ve Cocoa Touch framework, uygulama içerisinde bir çok animasyon, ağ ve yerel platform işlemleri, görünüm ve animasyon işlemlerini fazlası ile kolaylaştırır.

Cocoa gibi özel kütüphaneleri kullanmayan Objective-C programları gcc derleyicilerinde derlenebilir. Yani, 70‘lerde yazılmış bir C programını Xcode programının son sürümünde derleyip çalıştırdığınızda hiçbir hata almadan programın çalıştığını göreceksiniz. Bu nokta önemlidir çünkü, bu C tabanlı diğer hiçbir programlama dilinde mümkün değildir.Bu yüzden içerisinde C dilinin özelliklerinide barındırmaktadır. Elbette bu özelliği herkesin şikayet ettiği syntax problemini ortaya çıkarmıştır.Diğer dillere aşina olan programcılar, Objective-C öğrenirken ciddi şekilde syntax ‘i anlamakta ve kodlama yapmakta zorlanmaktadırlar.Objective-C syntax ‘i tamamen ingilizce bir metin okuyormuşcasına düzenlenmiştir.Bu da syntax başlarda biraz garip gelsede sonrasında kod okunabilirliğini ve kod yazma işini kolay hale getirmektedir.

Nesne Yönelimli Programlama (OOP-Object Oriented Programming) ‘da her şey bir nesne olarak kabul edilir. Nesne Yönelimli Programlama ise problemi gerçek hayattaki nesne kavramına benzetilerek geliştirilen  nesneler aracılığıyla çok daha sade, verimli ve hızlı çözüm yolu sunar. Sınıflar ise bu nesnelerin ne yapabildiğini, hangi özellikleri taşıdığını ve hangi verileri depoladığını detaylı bir şekilde açıklayan tariftir. Sınıf tanımlamasında en sık kullanılan klasik örneklerden biri de mimarların bir yapının inşaatına başlanmadan önce çizdiği plandır. Mimar inşaat için gerekli tüm ayrıntıları belirtir ve plan artık yapıda kullanılmak için hazır haldedir. Plan yapının kendisi değildir ancak yapı için şarttır, aynı plan kullanılarak birden fazla yapı inşaat edilebilir ve bu planı hiçbir şekilde etkilemez.

Yazılımın Bakım (Maintenance) Kolaylığı

Nesne Yönelimli Programlama dillerinde, nesneler ait oldukları sınıfların sunduğu şablonlarla temsil edilirler. Birbirinin benzeri ya da aynı konu ile ilişkili sınıflarsa bir araya getirilerek namespace ya da package (paket) adı verilen sınıf kümeleri oluşturulur. Bu durumda yazılımın bakımı demek; ya mevcut sınıflarda değişiklik ya da yeni sınıf eklenmesi anlamına gelir. Bu da yazılımın tümünü hiçbir şekilde etkilemeyecek olan bir işlemdir. Oysa klasik yapısal programlama dilleriyle geliştirilen programlarda yazılımın bakım maliyeti üretim maliyetinin çok önemli bir yüzdesi kadardır (%40’lar civarında).

Genişletilebilirlik (Extensibility)

Nesne Yönelimli Programlama’da mevcut bir sınıfa yeni özellik ve metotlar ekleyerek artan işlevsellik sağlamak son derece kolaydır.

Üretilen Kodun Yeniden Kullanılabilirliği (Reusability)

Nesnelerin üretildiği sınıflar, ortam içinde her uygulama geliştiricinin kullanımına açık olduğu için ortak bir kütüphane oluşturulmuştur. Her kullanıcı bu ortak kütüphanede bulunan sınıfları kullanarak gerekli kodu yeniden yazmaktan kurtulur ve uygulamaya özgü kod parçaları, ortak kullanımdaki sınıfların kod uzunluklarına göre göz ardı edilebilir boyuttadır.

Model  View Controller ( MVC )

Mvc, Model view controller kelimelerinin baş harflerinden oluşan, 1979 yılında Trygve Reenskaug tarafından tanımlandıktan sonra yazılım alanında kullanılmaya başlayan, yazılım mühendisliği’nde kullanılan bir yazılım paternidir. Kullanıcıya yüklü miktarda verinin sunulduğu karmaşık uygulamalarda veri ve gösterimin ayrıştırılacak, veriler (model) ve kullanıcı arayüzü (view) birbirini etkilemeden düzenlenebilir. Model view controller(Mvc), bunu controller adı verilen ara bileşenle model ve view tamamlamaktadır.

Mvc düzeninde yazılan kodlar, düzenli,anlaşılır ve sistematik şekilde yazılır.Bu sayede geliştirilen uygulama çok daha hızlı programlanabilir.Ayrıca kodlar ayrıştırıldığı için uygulamanın genel performansına bu durum yansıyacaktır.Objective-C ile MVC yazılım paterini üzerinden kodlar yazılmaktadır. Cocoa framework, Model – View – Controller tasarım anlayışı üzerine inşa edilmiştir.




Yorum yapılmamış


İlk adımı sen at :)



Bir Cevap Yazın

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