top of page

IOS Platformlarindaki Arayüz Yapilari Nasildir?

  • Writer: Sevdanur GENC
    Sevdanur GENC
  • Oct 7, 2012
  • 3 min read

Bu makalemde MVC, Objective C, Xcode ve Arayüz Yapimi hakkinda biraz bilgi veriyor olacagim. Objective C'de iki turlu dosya yapisi bulunmaktadir. Birisi .h uzantili digeri ise .m uzantilidir. Bunlar hakkinda biraz bilgi verecek olursam. .h uzantili dosyada temel soz dizimleri @interface ile baslayip @end ile bitmektedir. Yani class ile ilgili tum tanimlamalari bu iki dizim arasinda yapmamiz gerekmektedir. @interface //Kodlar bu iki dizim arasinda olmalidir... @end seklinde olmaktadir. Gormus oldugunuz interface satirinda her zaman class'in ismini belirlememiz gerekiyor. Sonrasinda iste kullanacagimiz Super Class'in ismini yazariz. Meslea NSObject yazilabilir. @interface ClassIsmi : NSObject  gibi. NSObject ; IOS'daki butun nesnelerin tamami direkt veya dolayli olabilecek sekilde NSObject'e baglidirlar. Eger Super Class kullaniliyorsa buna ait baslik dosyasi kullanmamiz gerekiyor. Yani bir nevi framework'unu belirlemiz gerekmektedir. #import <Foundation/Foundation.h> seklinde olmalidir. Olusturacagimiz degiskenler suslu parantezler arasinda yer almak zorundadir. Class icin metod aciklamalarini suslu parantezlerin bitimlerini yazmaya baslayacagiz. Veya @end isaretinden oncede yer aliyor diyebiliriz. Objective C'de tum nesneler kumelere bolunmustur durumdadir. Ve bunlara ait olacak sekilde pointerler kullanilacaktir. Bunlari yerel bir degiskenmis gibi gostermenin veya benzeri bir islem yapmanin bir yolu yoktur. Objective C'ye ozgu Id diye bir tip bulunmaktadir. Ustlendigi gorevi ise herhangi bir nesneyi gostermektir. Yani pointer'i herhangi bir nesneye gonderebiliriz. Metod isimlerinin basindaki - isaretleri bir ornek degiskene mesaj gonderilmesi demektir. Yine ayni sekilde metod isimlerinin basindaki + isarerleti Class'a mesaj gonderilmesi demektir. .m uzanli dosyalar ise Uygulama dosyalari olacaktir. .h uzantili dosyalarda tanimlanan genel metodlarin uygulamalari burada gerceklesecek. Ayni zamanda baska metodlarada yer alacaktir tabikide. Bu dosyada dikkat etmemiz gereken diger bir nokta ise; dizilimleri belirtirken @implementation ile baslayip @end ile bitirmesidir. Ayni zamanda NSObject'te kullanilmamistir. .h uzantili dosyada olusturdugumuz metodlari burada tekrar ayni sekilde yaziyoruz. Yapmamiz vede dikkat etmemiz gereken tek fark sonunda noktali virgul olmamasidir. Suslu parantezler kullanmamiz gerekiyor. Bunun sebebi bu suslu parantezler arasina metodlarimiz ile ilgili kodlari yazmamiz gerektigidir. Metodlardaki degerleri donderirkende koseli parantezli deyimler kullaniyor olacagiz. Bir diger bilmemiz gereken yapi ise Conteller'larla ilgili baslik dosyalari bulunmaktadir. Burada gorecegimiz UIViewController, UIKit'in MVC yapisina nasil baglandigini bize hissettirmis olacaktir. IBAction ; Void ile ayni mantiktadir. Hatta tamamen aynidir diyebiliriz tek bir farki vardir o da Interface Builder programi baslik dosyalarina bakar, dolayisiyla neyin IB ile kullanarak baglamak istediginiz sey oldugunu bu sekilde tahmin edecek ve ona gore davranacaktir. IBOutlet ; Void gibi kullanilir. Fakat, IB'a UI Label pointer'inin IB'i kullanarak baglamak istedigimiz birseyler oldugunu bellirtmis oluyoruz. Dosyalarimiz arasinda .h ve .m dosyalarindan farkli olarak .XIB uzantili bir baska dosyamiz daha olacak. Bu kullanici arayuzu olan kisimdir ve Interface Builder kismi burada bulunmaktadir. Interface Builder'a ulastigimiz zaman karsimiza File's Owner adinda kucuk bir pencere acilmis olacaktir. Interface builder'da kullanabilecegimiz tum kontrollerin hepsi burada bulunmaktadir. Ayni zamanda Library penceresi bulunmaktadir. Kullanici arabirimini olusturmak icin surukleyebilecegimiz UIKIT ve diger bazi setlerde bulunan butun nesnelerin uzunca bir listesi burada bulunmaktadir. Yani Label, Round Rect Button, Text Field gibi nesneler bulunmaktadir. Inspector adinda bir penceremiz vardir. Interface Builder'da herhangi bir nesne sectigimizde bununla ilgili butun ozellikleri buradan ayarlayabiliriz. Bir nevi diger arayuz programlarindaki Properties pencereleri ile esdegerde dusunebilirsiniz. Birde .XIB dosyasina ait ana pencere bulunmaktadir. burada ust seviye view'larin grafiksel bir temsili bulunmaktadir. Ayrica Controller veya File's Owner gibi gorsel temsili olmayan nesnelerde burada yer almaktadir. Nesneleri ulasbilmemiz icin kullanabilecegimiz bir pencere olarakta dusunebiliriz tabikide. Surukleme Olaylari ; View'de iki turlu surukleme olayi bulunmaktadir vardir. View uzerindeki bir butondan .xib dosyasinin bulundugu penceredeki File's owner dogru surukleyip birakiyoruz. Karsimiza kucuk siyah bir pencere cikacaktir ve karsimiza kullanabilecegimiz metodlarin ismi listelenecektir. Eger birden fazla islemi baglayacaksaniz bunun icin bir tanesini surukleyip biraktiktan sonra onu kopyalayip view'in uzerine istediginiz kadar yapistirabilirsiniz. Buda bize sunulmus olan kolayliklardan bir tanesidir diyebiliriz. Cunku bu islem ile birlikte yaptiginiz baglantilarda kopyalanmis olacak. Ve bu da ciddi anlamda buyuk bir kolaylik saglamaktadir. Diger bir surukleme olayi ise File's Owner'dan hazirlamis oldugumuz view ekraninin uzerine olacaktir. Yani burada controller'dan view'e dogru bir surukleme yapiyoruz. Tamamen aksi yone olacaktir. Yani bir outlet olusturmus oluyoruz. Surukleme islemini bitirdiginizde yine karsimiza siyah kucuk bir pencere cikmis olacak. Burada farkli secenekler karsimiza gelmis oluyor. XCode ve SDK'lar, Developer adindaki ust bir klasore kurulur. Developer klasoru icerisine girdigimizde Applications'i goruruz. XCode ve Interface Builder'in bulundugu yer burasidir. Basit bir uygulama yapilacaksa View-Based Application kullanilabilir tabikide. Bir bakima basit bir MVC olarakta bilinmektedir. Cunku karsimiza bir controller ve bir view'den meydana gelen bir proje olusturacaktir. Tabi Model icin gerek olan dosyayi kendimiz sonradan uygulamamiza eklemek zorunda kaliyoruz. Keyifli Calismalar Dilerim.

Recent Posts

See All
Oracle Java Cloud Service Uygulamasi

Bir onceki Oracle Cloud Computing yazisinda bahsettigim gibi JDeveloper Oracle Cloud icin gelistirmis oldugu surumu olan Oracle JDeveloper 11g (11.1.1.6.0) ile kucuk bir uygulama gelistirip bunu oracl

 
 
 
Oracle Cloud Computing Hakkinda

Bulut bilisim konusundaki arastirmalarima devam ederken bu kez solugu Oracle Cloud Computing'de aldim. Bu makalem ve ilerleyen makalelerimde Trial versiyonu ile user tarafini pek yormayan bir yapidan

 
 
 
Nested Parallel Loops

Matrix Multiplication / Matrix Carpma islemlerini OpenMP araciligi ile paralel alanda nasil yapilabilecegini incelerken ayni zamanda for construct'larin nested parallel loops alaninda nasil calistigin

 
 
 

Comments


©2035 by Sevdanur Genc. Powered and secured by Wix

bottom of page