2 Nisan 2020

2.Bölüm Ders 2: IOS Programlama

2.Bölüm Ders 2: IOS Programlama

B. IOS Programlama

iOS, Apple firmasının mobil platformlar için geliştirdiği bir mobil işletim sistemidir. Çekirdeğini MAC OSX den alan iOS içinde 4 katman bulundurmaktadır:

  • Core OS tabakası (Sockets ve dosya sisteminin olduğu nesneye yönelik olmayan katmandır),
  • Core Servisleri tabakası (nesneye yönelik ara yüzlerle bu işletim sisteminin çoğunu kapsadığı katmandır),
  • Medya tabakası (Ses, müzik, video gibi dosyaların çalıştırıldığı katmandır.),
  • Cocoa Touch tabakası (Dokunmatik ekran üzerinde yapılan parmak hareketlerini algılayan bir yapıya sahip ve nesneye yönelik bir ara yüzün olduğu en üst katmandır).


Programcılar uygulama geliştirmeye başlamadan önce işletim sistemi sürümlerinin kullanım oranlarını mutlaka gözden geçirmelidir. Çünkü programlarda hafıza yönetimi (Garbage Collection) çok önemlidir. Özellikle bazı sürümlerden sonra ortaya çıkan yapılar geliştiricinin üstünden yükü kaldırır. Örneğin iOS 7 ile birlikte standart haline gelen “ARC” gibi. Automatic Reference Counting kelimelerinin kısaltması olan bu sistem nesnelerin yaratıldıktan sonra onların hafızadaki durumunu düzenleyen sistemdir. Bu sistem sayesinde her seferinde nesneleri elle bellekten çıkarmamıza gerek kalmayacaktır. Bu da programcıya büyük bir kolaylık sağlamaktadır.

Şekil 12: Kullanım oranları

iOS işletim sistemleri için programlama dili olarak Objective-C kullanılmaktadır. Dil genel olarak olarak C tabanlıdır. Fakat C dilinden oldukça farklı özellikleri de vardır.

Objective-c Programlama Dili

Şekil 13: Objective-C Programlama dili

Objective-C, C dilinin üzerine yazılmış, yansımalı, nesne yönelimli bir programlama dilidir. 1983 yılında geliştirilmeye başlanan dil ObjC, Objective C ve Obj-C olarak da isimlendirilir. 26 Ekim 2007 tarihinden itibaren Apple firması tarafından geliştirilmeye başlanan dil OpenStep standardı üzerine kurulu olan Mac OS X ve GNUstep işletim sistemlerinde kullanılmaktadır.

Objective-C, C’nin syntax’ı(sözdizimini), ilkel türleri ve akış kontrol deyimlerini miras alır. Sınıfları ve yöntemleri tanımlamak için söz dizimi ekler. Objective-C, dinamik yazma ve bağlama sağlayar. Aynı zamanda nesne grafik yönetimi ve nesne hazırlıkları için dil seviyesi desteği de ekler.

TIOBE indekslerine göre iOS programlama için yazılım geliştiricilerin yıllarca ilk tercihi olan ve C programlama dili esaslarına dayanan Objective-C listede geçen yıla göre iki sıra yükselmiş olmasına rağmen popülerlik bakımından sonra çıkan Swift’in gerisindedir. [1]

Objective-C’deki modül dosyaları “.m” uzantısına sahiptir. Başlık dosyaları “.h” dır. Objective-C’de oluşturulan tüm nesneler dinamik belleğe yerleştirilmelidir. Bu nedenle, herhangi bir sınıftaki bir nesnenin bir göstergesi olan id türü özel bir önem taşır.

Aşağıdaki örnekte, bir for döngüsü içinde tanımlanmış bir x değişkeni var. Bu, x’in o blokta yerel olduğu anlamına gelir. For döngüsü içinde x’e erişebiliriz ancak başka hiçbir yerde erişilmez.

#import
int main (int argc, const char * argv[]) {
int i;
for (i=0; i<10; i++) {
int x = 10;
NSLog(@”x = %i”, x);
}
NSLog(@”x = %i”, x); // x’in sınırları dışında kullanılmış
}

Swift Programlama Dili

Şekil 14: Swift Programlama Dili

Swift  2 Haziran 2014 yılında Apple tarafından düzenlenen WWDC[2] konferansında duyrulan, iOS ve OS X platformlarına uygulamalar geliştirmek için oluşturulmuş, öğrenilmesi kolay, nesne yönelimli ve güçlü bir dildir.

Swift, C ve Objective-C’deki en iyileri bir araya getiren iOS ve OS X sistemlerine uygulamalar geliştirmek için tasarlanan yeni bir programlama dilidir. Xcode derleyicisi kullanarak tasarlanabilir.

Swift dilinin hazırlanmasında sadece Objective-C, değil Rust, Haskell, Ruby, Python gibi birçok programlama dilinden faydalanılmıştır.

Swift, kullanımı kolay ve açık kaynak kodlu bir programlama dilidir. Bir çok üniversite ve eğitim kurumlarında, bilgisayar programlama derslerinde öğretiliyor olması geleceğini güçlendirmektedir. Swift, gerçek zamanlı geri bildirim olanağı sağlayan ve mevcut Objective-C koduna sorunsuz bir şekilde monte edilebilir.

Şekil 15: Swift dili ile yazılmış popüler uygulamalar.

Daha detaylı bilgi için https://www.apple.com/tr/swift/ adresi ziyaret edile bilinir.

Apple, Swift’in Objective-C’den 2,6 kat, Python’dan 8,4 kat daha hızlı olduğunu söylüyor. Kısacası dilin ana felsefesi sadeliği, hızı ve güvenliğidir

Benzerlikler Farklılıklar
Int, Float, Double gibi sayısal türleri Swift’te noktalı virgül (;) kullanımı zorunlu değil
for…in numaralandırma söz dizilimleri Başlık dosyaları Swift’te bulunmamakta
Apple ürünleri için halen geliştirmeye devam etmeleri Swift’te String ifadeler Unicode’u tamamı ile desteklenir
Syntax yapısı Objective C ‘ye göre oldukça basit ve anlaşılması kolaydır.
Hafıza/Bellek Yönetimi (Memory Management) Swift’te daha esnek

Tablo5.2: Swift, Objective C karşılaştırması

Swift geliştiricileri bu programlama dili ile telefonlar, akıllı saatler ve Apple bilgisayarlar için mobil uygulamalar yazmak için kullanır. Google’ın Android’i tamamen Swift’e transfer etmek istediğine dair bir söylenti bile vardı. Önemli olan nokta, 2016 sonbaharında Apple’ın herkesin iOS için uygulamaları nasıl programlayacağını öğrenebileceği bir öğrenim merkezinin açılışına katkıda bulunması. Ancak hepsi bu kadar değil, Swift zaten birçok lider eğitim kurumunun müfredatına dâhil edildi. Bu programlama dili büyük bir potansiyele sahip olduğunu gösteriyor.

[1]              https://www.tiobe.com/tiobe-index/  (24.01.2019)

[2]              WWDC: Apple etkinlikleri  ( https://developer.apple.com/wwdc/ )

Bu ve devam edecek anlatımların tamamı ve sınavlar

tez.hilmibilici.com 

alt domaininde yayındadır. Tezimi paylaşıma açıyorum. Alın teridir, lütfen paylaşırken kaynak belirtmeyi unutmayın. 


Bir cevap yazın

E-posta hesabınız yayımlanmayacak.