Herşey ilk adımlarla başlar...

Wednesday, February 15, 2012

Adım adım ilk iphone uygulaması

Herkese yeniden merhabalar,

Bir süredir blog'a yeni gönderiler yapmaya fırsat bulamıyorum. Ama bundan sonra daha sık yazıyor olmaya çalışacağım.

Bu yazıda xcode kullanarak nasıl ilk iphone uygulaması (bir nevi "Hello World" ) yazılır onu öğreneceğiz. Yazıya başlarken belirteyim, mac'inizde xcode indirilmiş ve kurulmuş olduğunu varsayıyorum.

İki tane text field ve bir button 'dan oluşan , bir text field'dan input alan ve button'a tıklandığında diğer textfield 'a text set eden bir  uygulama yazacağız. Bu sayede input almayı ve output yazdırmayı görmüş olacak ve ekrandaki action nasıl yakalanıyor öğrenmiş olacağız.

Hadi başlayalım

Xcode 'u açıyoruz. Ve projemizi oluşturuyoruz.

Create a new Xcode Project
Proje olarak view-based Application seçiyoruz.



Projemizi isimlendiriyoruz.. "My First iPhone Application".




Kullanacağımız kaynakları tanımlıyoruz. Bunun için My_First_iPhone_ApplicationViewController.h dosyasını kullanıyoruz. Burada yaptığımız interface de bulunan iki componenti tanımlamak ve bir de kullanacağımız bir methodu belirtmek. Başta belirttiğim iki tane text field 'ı da burada tanımlıyoruz.



Tanımlamalar bitti :) Ve görsel kısma geçiyoruz. Resources klasörünün altındaki My_First_iPhone_ApplicationViewController.xib (nib diye okunuyor) dosyasına çift tıkladığımızda Xcode'un Interface builder kısmı açılacaktır.



Ve işte Interface Builder 'da geldi :) Size tavsiyem interface builder ile xcode 'u ayrı space'lerde açmanız. Bu sayede daha rahat hareket ediyorsunuz ( özellikle 13" macbook pro kullanıyorsanız :)



Kullanacağımız iki tane text field 'ımızı ve button 'umuzu yerleştirelim. En üstte de application ismi yazmak için bir label yerleştirdim.


Button ve Text Field'ları sürükle bırak yaparak taşıyoruz. Daha sonra köşelerinden tutarak boyutlarını değiştiriyoruz. Bu konuda Xcode bize yardımcı da oluyor..


Button daha belirgin olsun diye isimlendirelim. Üzerine bir text yazalım..


Bir de gri arayüz yerine daha canlı bir renk seçelim. View 'a (arka plan) a tıkladıktan sonra yine "view" sekmesinden Background'a tıklayarak renk seçebilirsiniz.


Şimdi yapmamız gereken çizdiğimiz bu component'leri ilk başta tanımladığımız objeler ile eşleştirmek. (Kaynaklarımızı tanımladığımız .h dosyasındaki yazdıklarımız ile eşleştiriyoruz). Bunun için yapmamız gereken sadece sürükle bırak ; File's Owner 'a tıklıyoruz. Inspector'da (soldaki pencere ve command shift i ile açılıyor ) connections tabında daha önce yazdıklarımızı görebiliyoruz. Burada ki isimlerin yanında bulunan yuvarlaklara tıklayarak eşleştirme yapacağız.


Yuvarlaklara tıklayarak sürükle bırak yaptığımızda çıkan ok ile eşleştirmemizi yapıyoruz.


text1 'i üstteki Text Field'a text2 'yi ise alttaki Text Field'a eşleştiriyoruz.


Button için de da aynı şekilde bir eşleştirme yapıyoruz. Yalnız bu sefer outlet değil de action ile eşleştiriyoruz. Action olduğu için diğerlerinden farkı kullanacağımız action 'lar listelenecek. Bunun için yine sürükle bırak yapıyor..



Ardından da copy methodunu buttonumuzdaki Touch down inside action'i ile eşleştiriyoruz.



Artık değişiklikleri kaydettikten sonra Interface Builder ' ı değiştrebiliriz. (Command + s kombinasyonu ile kaydedebilirsiniz , aynı şekilde command + q ile de çıkıyoruz).

Bundan sonra yapmamız gereken tek şey copy button'una tıklandığında olacakları yazmak kaldı. Ve bunun için de sadece  My_First_iPhone_ApplicationViewController.m (yani implementation dosyamıza) copy methodumuzu yazmamız yetecektir.


Yazdığımız method bu kadar da kısa :) (yalnız copy isminin .h dosyasında tanımladığımız method ismi ile aynı olmasına dikkat edin)

 -(IBAction)copy:(id)sender{
  
    [text2 setText:[text1 text] ];
  
}


Artık ilk iPhone application 'umuzu çalıştırabiliriz. Simulator olarak iphone seçili olduğundan emin olun. Ardından Build and Run 'a basarak çalıştırınız.



İlk Text Field' ımıza herhangi birşeyler yazıyoruz.



Ve Copy 'e tıklıyoruz....



Tebrik ederim ilk iPhone uygulamanızı yazdınız :) Artık iOS development dünyasına girmiş bulunuyorsunuz :)


0 comments: