Objective C etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Objective C etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Pazar, Aralık 15, 2013

XCode Bölüm 02 – Sınıflar ve Temel Yapılar

Merhaba,

Bir önceki yazımızda (XCode Bölüm 01) iOS platformunda uygulama geliştirebilmek için kullanılan XCode IDE ‘sine nasıl erişebileceğimizi ve platformun görsel olarak nasıl bir görüntüye sahip olduğunu, projeyi ve emulatörü nasıl çalıştırabileceğimize göz gezdirmiştik.

Bu yazımızda ise pratikte iOS programlanın sınıf dosyalarına ve mimari yapısına göz atıyor olacağız. Yeniden bir proje oluşturmuyor ve bir önceki örneğimizdeki Boş demo projesinden devam ediyorum.
Öncelikle proje içerisinde yer alan sınıf dosyalarının isimlerine göz atalım.

Sınıf Dosyaları (Class Files)

Boş demo projesini oluşturduktan / açtıktan sonra sol bölümde proje dosyalarını görebiliyoruz. (Visual Studio kullanan arkadaşlar var ise Solution Explorer bölümünün görevini yapmaktadır.)

Blogpost1

AppDelegate.h
AppDelegate.m

ViewController.h
ViewController.m

Main.StoryBoard
    Main_iPhone.StoryBoard
    Main_iPad.Storyboard

Şimdi dosyalara göz attığımız da; AppDelegate sınıflarında uygulama seviyesindeki (Application Level) konmutları ekleyebilir ve kullanabiliriz. Bu sınıflar iOS uygulamalarını temsil eder.

AppDelegete sınıfının .m ve .h dosyalarından oluştuğunu göreceğiz. Bu dosyalar C++ kullananlar var ise hatırlayacağınız üzere .h dosyalarında Header file ‘ları (referanslar gibi düşünebilirsiniz) çağırır. .m ise implementasyon (implementation) dosyalarını çağırır.

ViewController adından da anlaşılacağı üzere form üzerinde yer alan objelerin bulunduğu dosyalardır.

Bir de görsel olarak grafikle göstermek gerekirse alt kısımdaki gibi olacaktır.

your_xcode_project_app_flow

Peki AppDelegate ve ViewController dan bahsettik. Ancak Main.Storyboard dosyalarından bahsetmedik. Bu nedir?

StoryBoard

ViewController sınıflarından yararlanan ve görsel objelerimizin bulunduğu bölümdür. Uygulamanın görsel görünümü ile ilgili olarak nesneleri ekleyebileceğimiz, sonuçlarını görebileceğimiz bölümdür.

Main.StoryBoard, ViewController sınıfları ile yönetilebilir kodların kullanılması mümkündür.

Main.StoryBoard, XCode IDE‘sin de InterfaceBuilder alanında yer almaktadır. ViewController.h sınıfı ile referans dosyalarını ve hazırladığımız metodları kullanabilriz.

 

BlogpostPic03 

Görsel olarak görmek gerekirse alt kısımda yer aldığı şekilde olacaktır.
Form üzerine ekleyebileceğimiz kontroller ise IDE ‘nin sağ alt kısmında yer almaktaıdr. Sürükleyip bırakmanız yeterlidir. Form üzerine kontrolleri eklerken hizamaları konusunda IDE yardımcı olmaktadır.

BlogPostPic04

Peki, bu sınıflar birbirleri ile nasıl ilişkili diye aklımıza bir soru takılıyor. Bunu da alt kısımda yer alan basit akış şeması cevaplamaktadır.

your_xcode_project_classes

Şimdi bu kadar konuyu incelediğimizde kafamıza çok geleneksel ama bir o kadar da önemli bir soru takılıyor. Bu uygulamanın objeleri canlı ortamda nasıl çalışıyor.

Uygulamalarınız canlı ortamda diğer bir çok uygulamalar gibi bellek üzerinde oluşmaktadır. Uygulamanın hata vermesi durumunda bellekte kullanmış olduğu alanı serbest bırakmaktadır. Eğer multi tasking bir uygulama geliştiriyor iseniz ise uygulama arka planda bellek kullanmaya devam etmektedir. Ancak farklı uygulamalar ile bu belleği paylaşabilmektedir. (Güzel bir teknoloji :) )

Daha önceden uygulama geliştiriciler eklemiş oldukları referansları ve kullanmış oldukları bellekleri boşaltmak / serbest bırakmaları gerekmekteydi. Daha şu anda güncel kullandığımız IDE lerde otomatik olarak referansları sayıyor ve gerekli temizlik işlemlerini sağlıyor. Sadece projeyi oluştururken Automatic Reference Counting seçeneğinin seçilmiş olması gerekiyor.

Yazımızın burada sonuna geliyoruz. Objective C ‘inin gelişimini ve bunu başımıza kimler sarmış diye merak edenler için wikipedia da yer alan yazıyı okuyabilirsiniz. (Yazının dili Türkçe dir)

http://tr.wikipedia.org/wiki/Objective-C
Umarım yararlı olabilmiştir.

--

TT

C/C++ & Objective C – Yazımsal Benzerlikler

Merhaba,

Objective C ‘ye merak salmış bir çok kimse C ile arasındaki farkları merak etmiş ve incelemiştir. C ya da C++ tecrübesi olan kişiler ise aradaki basit farkları görmüştür.

En temel anlamda yazımsal farklılıklara alt kısımda yer alan görüntü ile sizde mükayese edebilirsiniz.

Ekran Resmi 2013-02-11 01.17.24

Aslında çok benziyor değil mi? :)

İyi günler dilerim.

--

TT