Objective-C'ye Giriş: Hello World Uygulaması

Bu dersimizde Objective-c'de uygulama geliştirebilmek için nasıl bir yol izlemeliyiz, nelere ihtiyacımız var bunları değineceğim. İlk ders klasiği olan HelloWorld uygulaması ile küçük bir başlangıç yapacağız.

Merhaba,

Bu dersimizde Objective-c'de uygulama geliştirebilmek için nasıl bir yol izlemeliyiz, nelere ihtiyacımız var bunları değineceğim. İlk ders klasiği olan HelloWorld uygulaması ile küçük bir başlangıç yapacağız.

Objectivec 'de uygulama geliştirmek için,
- İntel işlemcili Mac (*1)
- Arayüz için Interface Builder
- iPhone Sdk - Xcode
ihtiyacımız olacak.

*1- Mac İntel işlemcili olması önemli G4 ,G5 işlemciye sahip mac'ler üzerinde çalışmak imkansız değil ancak Windows veya Linux üzerinde geliştirmek için sarf ettiğimiz çabadan çokda farksız olmayacaktır bu nedenle tavsiye etmiyorum.İntel işlemcili olmasına önem gösterin.

Objective -C 'de uygulama geliştirmemiz için bunları temin etmemiz yeterli olacaktır.Hazırladığımız uygulamaları iphone simulator aracılığı ile test edebiliyoruz.Bu uygulamayı kendi cihazımız iphone - ipad veya apple store yüklemek istediğimizde ise $ 99 ödeyerek iPhone Development Program'e katılmamız gerekiyor.

Tüm bu gereksinimlerimiz varsa Xcode açarak Hello World uygulamamıza başlayabiliriz.

Adım 1
Xcode çalıştırdığınızda bir karşılama ekranı gelecektir.Bizim yeni bir proje oluşturmamız için Select File > New Project diyerek aşağıdaki gibi yeni bir proje şablonu açmamız gerekir.


Adım 2
Açılan pencereden Window - Baded Application seçerek Choose diyoruz.Window - Baded Application bizim için proje şablonunu hazırlıyor.Diğer seçenekleri ilerleyen derslerde kullanarak örnekler üzerinde açıklayıcı bir şekilde anlatacağım.Bu adım sonunda bizde projemizin ismini isteyecektir Ben "HelloWorld". yazıyorum.



Adım 3
Projeyi oluşturduktan sonra Xcode arayüzü ve proje şablonunu bizim için üretmiş olması gerekir.



Burada UIApplication nesnesi ana fonksiyondur. xCode bizim için main.m ,HellloWorldAppDelegate.h ve HelloWorldAppDelegate.m arasındaki bağlantıyı sağlıyor.Yeni bir sınıf eklediğimizde bunu HelloWorldAppDelegate.m kontrol edeceğiz main.m ile şimdilik bir işimiz olmayacak.Bu aradaki köprüyu xcode nasıl oluşturdugunu bu konu altında anlatmak çok kafa karıştırıcı ve yeterli gelmicektir.Bunun için bir döküman hazırlayıp konudan ayrı olarak paylaşabiliriz.

Adım 4
Bu adımda UIViewController sınıfı eklememiz gerekiyor.UIViewController sınfıı bir görüntü denetleyicisi diyebiliriz."Helllo World" metinimizi yazdıracağımız veya buton ekleyip bunu kontrol edeceğimiz sınıf.Yeni başlayanlar için daha anlaşılır olması adına buna bir sayfa (ekran) demek sanırım yanlış olmaz.

UIViewController Eklemek için,
Sağ taraftaki Classes Klasörüne sağ tıklayarak Add > New File adımı takip etmeliyiz.Karşımıza aşağıdaki gibi bir ekran gelecektir.



Burada UIViewController subclass seçerek Next demeliyiz.Bizden Sınıfımızın ismini isteyecektir.Ben HelloWorldUIViewController yazıyorum.Bu aşamayı da tamamladıktan sonra Classes klasörüne HelloWorldUIViewController.m ,HelloWorldUIViewControlle.h HelloWorldUIViewControlle.xib eklemiş olması gerekir.HelloWorldUIViewController.m açtığınızda içerisinin boş olmadığını göreceksinizdir.Profil kontrolleri çeşitli metotlar xCode için oluşturulmuştur.Biz loadView metodundan faydalanacağız.Elle (interface builder aracı ile değil) görüntü denetleyicisine metin ekleyeceğiz.


- (void)loadView {

        

  //alanımızın sınırlarını belirlemek için oluşturduğumuz çerçeve

  CGRect frame = CGRectMake(0, 0, 320, 480);

        

  //UIView sınıfı uygulamamıza arkaplan rengi vermek için ekledigim görüntü denetleyicisi

  self.view = [[UIView alloc] initWithFrame:frame];

        

  //Yukarıda açtıgımzı görüntü denetleyicisin arkaplan rengini UIColor sınıfı ile atıyoruz.

  self.view.backgroundColor = [UIColor whiteColor];



  

  //Yukarıda açtıgımız çerçeveden faydalanarak HelloWorld yazıcagımız etiketimizin konumu belirtiyoruz.

  frame = CGRectMake(100, 170, 100, 50);

  

  //UILabel sınıfından bir label (etiket) oluşturuyorum.

  UILabel *label = [[UILabel alloc] initWithFrame:frame];

  

  //Etiketin metnini belirtiyoruz.

  label.text = @"Hello World!";

  

  //Oluşturdugumuz etiketi sahneye (Görüntü denetleyicisine) ekliyoruz.

  [self.view addSubview:label];

  

  //Referans sayısını bir artıyoruz.Bunun retaincount ile ilgisi var.RetainCount sıfıra geldiğinde nesne dealloc çağırır.Retain release retainCount ile ilgili dokümanları bu dersde vererek daha fazla kafa karıştırıcı olmasını istemiyorum.Bunu bellek yönetimi altında doküman olarak ekleyeceğim.

  [label release];



}



Adım 5
UIViewController (Görüntü denetleyicisi) oluştur.Etiket ekleyerek "Hello World " yazdık arka plan rengi verdik.Ancak bu sınıfı uygulamamıza eklemedik köprü oluşturmadık.Bunun için HelloWorldAppDelegate.m açarak.Görüntü denetleyicimizi ekliyoruz.


#import "ViewController.h"



@implementation HelloWorldAppDelegate.m



@synthesize viewController;



- (void)applicationDidFinishLaunching:(UIApplication *)application { 

 //görüntü denetleyicisini(HelloWorldUIViewController) HelloWorldAppDelegate.m viewController'e atıyorum.

self.viewController = [HelloWorldViewController alloc];

//Uygulamın ana ekranı(penceresi) window görüntü denetleyicisini ekliyorum.

[window addSubview:self.viewController.view];

[window makeKeyAndVisible];

}



Değişkenleri ve ViewController Sıfını tanımlamak için HelloWorldAppDelegate.h açıyoruz.


#import  

@class HelloWorldViewController;

@interface HelloWorldAppDelegate : NSObject  {

UIWindow *window;

HelloWorldViewController *viewController;

}

@property (nonatomic, retain) IBOutlet UIWindow *window;

@property (nonatomic, retain) HelloWorldViewController *viewController;

@end



Adım 6
Objective-c'de kimilerine göre en büyük dert bellek yönetimi çünkü bunu biz elle sağlamak zorundayız.Biraz can sıkıcı olabiliyor ancak alışınca keyifli bile geldiği söylenebilir.Bu adımda bellek yönetimi ile ilgili bir kaç işlem yapıcagız.Java ,Net gibi dillerden geçiş sağlıyorsanız Objective'c'ye biraz kafa karıştırıcı gelebilir bu işlemler ancak Bellek yönetimi dökümanını okudugunuzda bu işlemelerin daha anlaşılır olucağını tahmin ediyorum.
Interface*2 (Açıklama)
Classes Klasöründen HelloWorldViewController.h(Interface) açıyoruz. HelloWorldViewController.m Kullandıgımız değişkenleri buarada tanımlıyoruz.


#import 



@class HelloWorldViewController;



@interface HelloWorldAppDelegate : NSObject  {

    UIWindow *window;

  

  HelloWorldViewController *viewController;

  

}



@property (nonatomic, retain) IBOutlet UIWindow *window;

@property (nonatomic, retain) HelloWorldViewController *viewController;



@end



Implementation *2 (Açıklama)
Tekrar HelloWorldViewController.m(Implementation) geri dönerek şu eklemeleri yapıyoruz.


@synthesize window;

@synthesize viewController;



- (void)dealloc {

  [viewController release];

  [window release];

  [super dealloc];

}




HelloWorldViewController.m son hali şu şekilde.



#import "HelloWorldAppDelegate.h"

#import "HelloWorldViewController.h"



@implementation HelloWorldAppDelegate



@synthesize window;

@synthesize viewController;





- (void)applicationDidFinishLaunching:(UIApplication *)application {    

  

  self.viewController = [HelloWorldViewController alloc];

  

  [self.window addSubview:self.viewController.view];

  

  [self.window makeKeyAndVisible];

}





- (void)dealloc {

  [viewController release];

  [window release];

  [super dealloc];

}



@end




Uygulamayı test edebilmek için Build > Build and Go demelisiniz. Kullandıgınız xCode sürümüne bağlı olarak Sağ üst köşeden "Run" diyebilirsiniz.

Açıklama
*1- Mac İntel işlemcili olması önemli G4 ,G5 işlemciye sahip mac'ler üzerinde çalışmak imkansız değil ancak Windows veya Linux üzerinde geliştirmek için sarf ettiğimiz çabadan çokda farksız olmucaktır bu nedenle tavsiye etmiyorum.İntel işlemcili olmasına önem gösterin.


*2- Objective-C Sınıf yapısı implementation ve interface bölümlerinden oluşur.Interface bölümü değişkenlerin ve metotların tanımlandıgı alanlardır.

Önizleme ve Kaynak dosya


  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

tebrik ederim başlangıç olması açısından iyi olmuş..

Yukarı Git