Uzun zamandan beri gözüm yüksek çözünürlüklü ve IPS panelli monitörlerdeydi. Yurt dışında NEC ve DELL gibi markaların 2560x1440 gibi yüksek çözünürlüğe sahip çok başarılı monitöreri olmasına karşılık, Türkiye pazarında benzer çözünürlükte alınabilecek wide-gamut olmayan tek monitör Apple 27" Cinema Display. (Wide-gamut olanları Üçgen Yazılım'dan alabilirsiniz. Oldukça güvenilir olan bu firmada başka hiçbir yerde bulamayacağınız IPS panelli 16:10 monitörler de mevcut.)

Senelerdir Windows kullanıcısı olmama rağmen işim gereği son yıllarda oldukça sık OSX kullanmaktayım bu yüzden tek başına monitör almak yerine 27" iMac almayı da düşünmedim değil ancak;

  • taşıdığı vasat donanıma rağmen çok yüksek bir fiyata sahip olması (Yaklaşık 5000TL)
  • dar bir kasada tüm bilgisayar bileşenlerini barındırdığı (ısınan CPU ve GPU dahil) için arıza yapma olasılığının yüksek olması ve internette hakkında çok şikayet yazılmış olması
  • gelecekte donanımını güncellemenin mümkün olmaması ve ekran ile diğer bileşenler aynı kasada olduğu için donanım eskidiğinde ekranın da çöpe gidecek olması

gibi nedenlerden dolayı vazgeçtim ve mecburen oldukça kazık bir fiyata satılan 27" Cinema Display'i aldım. Ancak iş tek başına monitörü almakla bitmiyor.

img alt=

Bu monitörün de en büyük sorunu Mini Display Port dışında görüntü alma amaçlı hiçbir girişe sahip olmaması. Sanırım bunu monitörün PC'lerde kullanılamayıp sadece Macbook veya Mac Mini'ler ile birlikte kullanılabilmesini sağlamak için yapmışlar. Amaçlarına ulaşmış olduklarını söyleyebilirim çünkü NVIDIA'nın hiçbir ekran kartında Mini Display Port yok ve sadece bir kaç tanesinde Display Port var. ATI/AMD'nin kartlarında ise genellikle normal Display Port bulunmakla birlikte, sadece en son çıkan HD6XXX serisindeki kartlarından bazılarında Mini Display Port var. Yani eğer NVIDIA marka bir kart kullanıyorsanız bu monitörü bilgisayarınıza doğrudan takmanızın bir yolu yok.

iPhone/iPad uygulamalarında, her bir hücresi derin bir menü sistemi ve onlarca bileşen içeren tablolar görebileceğiniz gibi, 2-3 bileşen içeren hücrelerden oluşan basit tablolar da görebilirsiniz. Aslında uygulamaların geneline bakarsanız, bahsettiğim ikinci türden tabloların çok daha sık kullanıldığını görürsünüz. Kompleks hücre tasarımlarını genellikle Interface Builder ile ayrı bir .xib dosyasında yapmak mantıklıyken, basit hücreler için ayrı dosya oluşturup projei karıştırmaya gerek yoktur. Bu yazıda tablo hücrelerinin içeriğinin isteğe göre nasıl değiştirilebileceğini göstereceğim. Örnek olarak ise her satırında bir tuş ve tuşa basıldığında görünür halden görünmez hale geçen bir tik ikonu içeren bir tablo oluşturacağım.

iPhone programlama ile ilgili olan bu ikinci yazımda, iPhone uygulamaları geliştirirken en çok kullanılan bileşenlerden biri olan UITableView bileşeninin, yani tabloların nasıl kullanılacağını göstereceğim. Önce bir liste göstermekten başka bir şey yapmayan etkileşimsiz bir tabloyu çalışır hale getirip, sonrasında bu tablonun sırasıyla satırlarına basıldığında bir mesaj gösteren, satırları silinebilen ve satırlarının yerleri değiştirilebilen hale nasıl getirilebileceğini adım adım göstereceğim.

Bu yazımda çok basit bir iPhone uygulamasının nasıl yazılacağını anlatacağım. Göstereceğim örnek uygulamanın yapacağı tek şey aynı daha önce yazdığım Android ile ilgili yazıda olduğu gibi, ekranda bir tuş gösterip, tuşa basıldığında kullanıcıya bir mesaj göstermek. Dolayısı ile bu yazının, Android için yazdığım öteki yazının iPhone versiyonu olduğunu söyleyebilirim. Ancak burada anlatmam gereken daha fazla şey olacak çünkü her ne kadar iOS Android'den çok daha iyi ve programcı dostu bir işletim sistemi olsa da, daha önce Mac OSX için yazılım geliştirmemiş olan kişilere tamamen Fransız gelecek bir ortam. Bunun iki temel sebebi var. Biri iPhone uygulamaları geliştirirken Windows veya Linux kullanıcılarının tamamen yabancıolduğu Objective-C dilini kullanmak zorunda olmak. Diğeri de yazılım geliştirme ortamı olarak Visual Studio ve Eclipse'ten çok farklı bir şekilde çalışan XCode IDE'sinin kullanılması.

Göstereğim uygulamanın kendi bir pek işe yarar bir şey yapmıyor belki ancak iOS ortamına giriş yapmak için yeterli olduğunu düşünüyorum. Bu yazımda objective-c dilini anlatmak gibi bir amacım yok, ancak yine de yeri geldiğinde çok kullanılan bazı yapıların ne anlama geldiği hakkında kısa açıklamalar yapacağım. Bu yazıyı okuduktan sonra aşağıdaki soruların cevaplarını almış olacaksınız.

  • iPhone uygulamaları geliştirmek için hangi yazılım ve donanıma ihtiyaç vardır?
  • XCode ile bir iPhone projesi nasıl oluşturulur?
  • Bir iPhone projesi hangi klasör ve dosyaları içerir ve bunların işlevi nedir?
  • Interface Builder kullanılarak nasıl arayüz tasarlanır?
  • Arayüz ile kod arasında nasıl bağlantı kurulur?
  • Tuşa basmak gibi basit olaylar nasıl karşılanır?
  • Kullanıcıya bir mesaj en kolay nasıl gösterilir?
  • iPhone simülatörü nasıl kullanılır?

Bu cevaplar, iPhone programlama ile ilgili Türkçe bilginin neredeyse hiç olmadığı bu zamanda iPhone uygulamaları geliştirmeye başlangıç yapmak için yeterli olacaktır. Eğer vakit bulabilirsem gelecekte farklı arayüz bileşenlerinin nasıl kullanıldıklarını, cihaz içerisine nasıl kalıcı veriler tutulacağını ve ivme sensörü, GPS, pusula gibi donanımların nasıl kullanılacağını örnekler ile gösteren yazılar yazmayı planlıyorum.