... Iphone Kategorisi

iPhone Explorer

Perşembe, Mayıs 3rd, 2012

iPhone’daki dosyalarınızı Sync belasına bulaşmadan almak istiyorsanız ücretsiz iPhone Explorer (yeni adıyla iExplorer) tam bu iş için biçilmiş kaftan. Voice Memo’daki 40 dakikalik ses dosyasını iPhone’u sync etmeden nasıl alabilirim diye araştırırken bu harika uygulamaya rastladım. Windows versiyonu da mevcut. iPhone’unuzdaki fotoğraflar, videolar, voice memo gibi medya öğelerinin yanısıra uygulamaların içindeki Documents klasörünü de gösterip oradan data almanızı sağlıyor. Sürükle bırak yöntemi ile iExplorer’daki dosyaları masaüstünüze kopyalayabiliyorsunuz.

Yeni iPad ve “Arayüz Tasarımı” konusunda bir kaç kelam

Perşembe, Mart 8th, 2012

Biraz önce www.apple.com adresinden 7 Mart Apple etkinliğine ait 85 dakikalık videoyu izlemeyi bitirdim. Steve Jobs’un ardından yapılan ilk etkinlikti bu. Aylar öncesinden büyük bir hayran kitlesi -ben dahil- bu gün tanıtılacak olan yeni iPad’i bekliyorduk. Bugün sadece yeni iPad sunulmadı, iOS 5.1 yayınlandı ve Apple TV’nin yeni versiyonu açıklandı. Ama asıl olay yeni iPad’di tabi ki.

iPad’in beklediğim en önemli özelliği tam olarak “amazing” bir olaydı bence: RetinaDisplay Ekran. 2048 x 1536 çözünürlük. Dünyanın parasını verip aldığımız kocaman LCD televizyonların sunduğu çözünürlükten bile daha fazla! (Apple ürünlerini almaktan henüz LCD tv almaya fırsatım olmadı, hala tüplü televizyona bakıyorum, bu gidişle alamayacağım).

Yeni iPad’in diğer teknik özellikleri (A5X işlemcisi, 5 Megapiksel iSight kamerası, 4G ağını desteklemesi) de harikaydı. Sunumu keyifle izledim. Fakat bu yazımda iPad’in dışında özellikle değinmek istediğim başka bir husus var.

Sunumda iMovie uygulamasının yeni sürümü de tanıtıldı. Ben iMovie’nin bu sayfada ekran çıktıları görünen arayüzüne “bayıldım” diyebilirim. Spiralli ve kenarlarında sekmeleri olan bir defter görünümünü çok beğendim. iOS uygulamalarındaki bu “gerçeklik” unsurunu eminim benim gibi pek çok kullanıcıyı da cezbediyordur. Sırf ekran tasarımları harika diye işime yarasın yaramasın pek çok uygulama satın aldığımı biliyorum. Apple kendi harika uygulamalar yazdığı gibi, diğer geliştiricilerin de harika uygulamalar yazmasını sağlıyor. Çünkü her uygulama kolay kolay AppStore’a giremiyor. Bir kaç gün önce küçük ve basit bir formül uygulaması göndermiştim. Aldığım cevap kısaca: “uygulamanız hiç eğlenceli değil” idi :) Gayet de haklılardı…

Ofiste uzun bir süredir “arayüz” konusunda arayışlar içerisindeyiz. Yürüttüğümüz projeler “web tabanlı uygulamalar” olduğu için bir web sitesi ile kıyaslanamayacak derecede fazla kullanıcı etkileşimi var. Web sitesinde daha çok içeriği ziyaretçiye sunmak önplandadır. Web tabanlı uygulamada ise bu sadece işin bir kısmıdır. Asıl önemli olan kısmı kullanıcılardan gerekli girdileri almak ve bunları işlemek. İşte burası tam olarak “arayüz” probleminin doğduğu nokta.

Bir kaç haftadır sosyal medyada ve diğer platformlarda “arayüz konusunda kendini geliştirmiş, front-end developer” ilanları yayınlıyoruz fakat henüz ciddi bir başvuru alamadık. Bugün ofiste bu mevzuyu tartışırken aklıma geldi; kartvizitinde “Arayüz Tasarım Uzmanı” yazan sadece bir kişi bildiğimi farkettim. Halbuki pek çok grafiker ve web developer tanıyorum. Ama kendini arayüz tasarım uzmanı olarak tanıtacak kadar bu işe ciddiyetle eğilmiş sadece bir kişi biliyorum: Veli Ogla Süngutay. Bundanüç dört sene önce iki ay gibi kısa bir süre kendisi ile çalışmıştım. Çok titiz ve tam işinin ehli bir insan olduğunu düşündüğümü hatırlıyorum. Biraz önce Googling yaptım ama kendisi ile ilgili herhangi bir neticeye varamadım. Belki bu satırlara denk gelirse kendisi irtibata geçer.

Çok ufak bir detay bile kullanım açısından harika sonuçlar ortaya çıkarabilir. Örneğin iOS’da herhangi bir fotoğrafı Twitter’a göndermek istediğinizde karşınıza çıkan minik pencereyi çok başarılı buluyorum. Şu detaylara lütfen göz gezdirin.

Bilgisayar ekranında kocaman görünen bu görüntü elinizdeki iPhone’un deli çözünürlüğünde mükemmel detaylar olarak karşınıza çıkıyor. Benzer bir ekrana Android işletim sistemli telefonlar da sahip (kayın biraderip ekran çıktısı almayı başarırsa onu da bu yazıma katacağım). Bu görüntüde ilk olarak sağdaki ataçlanmış fotoğrafa dikkat edin. Oraya klasik keskin kenarlı olarak fotoğrafı koymuş olabilirdi. Üzerindeki Photoshop efektlerinden aşina olduğumuz bevel & emboss efektini koymayıp kabartma hissi uyandırmayabilirdi. Resmin üzerinde böyle gerçekçi bir ataç yerine sembolik bir ataç koyabilir ya da daha kötüsü hiç koymayabilirdi. Ama tüm bu detaylar ince ince düşünülmüş ve o resim özenle o şekilde oraya konmuş. Harika bir terzilik.

Devam edelim, arkaplandaki kağıt dokusuna bakın. Üzerindeki gri çizgiler bir defter yaprağı dokusu hissini güçlendirmiş ve alelade değil, satırlara denk gelecek şekilde düşünülmüş. Sırf bunu sağlamak bile aslında arkaplanda pek çok hususu düşünmeyi gerektiriyor. Anroid cihazlar çeşitli en ve boylarda, çeşitli çözünürlüklerde olduğu için tasarımcının işi iOS’a oranla çok daha zor. Demek ki envai türlü iPhone, iPad görmememizin bir nedeni var (iPhone ve iPad’in türleri değil de modelleri artıyor bu doğru, ama tasarımcının işi zorlaşmıyor zira modeller arasındaki ekran oranı sürekli korunuyor).

Ve bu ekranda bahsedeceğim son husus;  Vazgeç butonuna, Tweet yazısına, en alttaki “Konum Ekle” ve sağdaki “81″ ibaresine dikkatle bakın. Buradaki yazı ve simgeler sanki defter yaprağından içeri doğru basık bir şekilde duruyor. Bir derinlik var. Apple’ın hemen hemen tüm ürünlerinde bunu görebilirsiniz. Sadece bunu değil tabi, tüm bu ince işçiliği görebilirsiniz.

Yukarıdaki ekran çıktıları şirket içinde kullandığımız henüz tamamlanmamış “Ubicheck”  yazılıma ait. Burada iki unsura değinmek istiyorum. Birincisi, bu sayfa aslında bir liste sayfası, kullanıcıları listeliyor. Normalde listeler klasik tablo gibi sunulur. Bu uygulamada ise minik kartlar şeklinde sunmayı denedik. Kullanıcılar mevzubahis olduğu için kullanıcı arama yaparken isimleri okumasından ziyade fotoğraflara bakması daha hızlı sonuç vereceği için kullanıcı fotoğrafını ön planda tuttuk. (Uygulamalarımızda liste ekranına gelindiğinde arama yapmaksızın son datalar hazır olarak görüntülenir. Kullanıcı detaylı bir arama yapmak istiyorsa o zaman arama formunu kullanır.)

Bu da aynı ekranın bazı detaylar uygulanmamış hali. Bence arada dağlar kadar fark var.

Aynı uygulamada başka bir modül: Toplantı modülü. Hangi gün ne toplantısı yapılmış, ne kararlar alınmış, kimler katılmış gibi bilgileri tuttuğumuz modülün liste ekranı. Kullanıcı ekranında kartları kullandığımız için diğer ekranlarda da bu üsluba bağlı kalmak gerekiyordu. Fakat toplantılarda “fotoğraf” gibi belirleyici bir unsur yoktu. Onun yerine “toplantının konusu” ve “toplantı tarihi” daha önemliydi. Tarih bilgisi görsel olarak rahat ifade edilebilirdi. Bir simgenin içerisinde toplantı başlığı yazılmazdı herhalde. O nedenle bu ekranda fotoğraf alanında büyük puntolarla toplantı tarihini koyduk ve yıl bilgisini eklemedik. Zira en güncel kayıtlar en son görüntüleneceğinden zaten o yıla ait kayıtlar görüntülenmekteydi. Kaldı ki “25.08.2011″ gibi uzun versiyonu da başlığın hemen altında ayrıca gösteriliyordu.

Yazıya başlayalı bir saat oldu ama kayınbirader hala Android telefonundan Twitter uygulamasına dair ekran çıktısı gönderemedi. Kabahat işletim sisteminde, zira bunun için bir kolaylık düşünülmemiş.

Arayüz konusunda daha derin problemlerimiz var. Bu örnekler hep “bilgiyi sunmak” ile ilgiliydi. Asıl problem ise yukarıda bahsettiğim gibi kullanıcıdan girdileri alacağımız ekranlar; yani FORM’lar. Bazen çok uzun bir form kullanmamız gerekebiliyor. Bir öğrenciyi kayıt ettiğinizi düşünün. Öğrencinin kimlik bilgileri, aile bilgileri, okul bilgileri vesaire derken bir kaç ayrı form devreye giriyor. Kullanıcı bunları hiç zorlanmadan, sırasını takip etmek için fare ile taklalar atmadan, bir hata ile karşılaştığında yazdıklarını kaybetmeden, hatayı düzgün bir uyarı ile farkederek bu girdileri yapması gerekiyor. İşte asıl mesele; kendini bu problemlerin çözümünde yetiştirmiş geliştiriciler bulmak.

MacOSX menübar’dan ekranı kilitleme

Pazartesi, Ocak 23rd, 2012

Birden fazla mönitör ile çalışıyorsanız ekranı kilitlemek için Hot Corner özelliği bazan sizi yorabiliyor (üç mönitör kullanıyorsanız ve alışkanlık icabı en sağ üst köşeyi ayarlamışsanız oraya varmak mesele oluyor), aslında bunu kolaylaştırmak için mönitörlerin görüntü hizalarını hot corner yaptığınız köşelerden tam denk getirmemek çok işe yarıyor. Böylece her mönitörde hot corner ayarlarınız çalışıyor.

Fakat bu yazıda menübar’ı kullanarak nasıl ekranı kilitleyebiliriz ona değinmek istiyorum. Keychain Access programını çalıştırıp menübar’dan Preferences’e ulaşın. İlk sekmede en üstte “Show keychain status in menu bar” kutusunu işaretlediğinizde menünüzde bir kilit simgesi belirecektir. Bu simgeye tıkladığınızda açılan menüden ekranı kilitleyebileceğiniz gibi “Keychain Access”in diğer seçeneklerine de ulaşabiliyorsunuz (diğer seçeneklerin tam olarak ne olduğunu bilmiyorum).


Tgrt-FM iPhone/iPad uygulaması 3. sürümü yayında

Pazartesi, Kasım 28th, 2011

Apple bu sefer çok bekletmedi galiba. Tam bir hafta önce gönderdiğimiz uygulama bugün incelemeye alındı ve ardından kabul görüp ApStore’da yayınlanmaya başladı. Keşke daha önce iki kere gönderdiğim Tgrt-Haber uygulaması da geçebilseydi ama yayındaki bir problemden dolayı sürekli reject ediliyor. Çaresine bakacağız inşallah.

Tgrt-FM’in yeni uygulamasında radyonun değişen yayın url’si güncellendi. Zira eskisi bu nedenle çalışmıyordu. Sonra iPad’de de çalışabilecek şekilde geliştirildi. Zaman problemi nedeniyle arayüz olarak iPad’de farklı bir yapıya gidemedim malesef. Belki bir sonraki sürümünde olabilir.

Radyo’nun Twitter ve Facebook hesaplarına anında ulaşılabilmesi için kısayollar koyduk ve uygulama içerisinde web penceresi kullandık. iPad’de sorun olmaz ama iPhone’un nispeten dar ekranında problem oluşturabilir. Tepkilerden anlayacağız.

Ayrıca uygulamanın yapımcısı sevgili Huzur Pınarı sitesine de uygulama içerisinde link verdik.

Tgrt-FM iPhone/iPad uygulamasının yeni sürümü nihayet yolda..

Pazartesi, Kasım 21st, 2011

Neredeyse bir ay kadar önce Tgrt-FM iPhone uygulamasında kullanılan sunucu adresinin değiştirildiğini, uygulamanın güncellenmesi gerektiğini haber verdiler ama hem Tgrt tarafından beklediğim bazı adreslerin (yayın akışı, frekans listesi ve streaming adresinin onların vereceği sabit adreslerde tutulmasını talep ettim, böylece hem kendi sunucumda parse etmeme gerek kalmayacak hem de olası streaming adres değişikliğinde uygulamayı güncellemek gerekmeyecek) gelmesi hem de fırsat bulup yeni bir tasarım yapmam biraz uzun sürdüğü için ancak bugün göndermek nasip oldu.

Sürekli istememe rağmen PHP’den başımı kaldıramadığım için unuttuğum Objective-C ve Xcode’un bana çıkartığı problemler de cabası tabi. Ama Tgrt-FM’in bu yeni sürümü sayesinde bir şeyi daha tecrübe etmiş oldum. iPhone ve iPad uygulamasını tek program altında kotarmak nasılmış onu öğrendim ve çok hoşuma gitti.

Ben tamamen tek bir arayüzle ve tek bir kod grubu ile işi halledeceğimi düşünüyordum ama tamamen öyle değilmiş. Evvela projeye başlarken Device Family seçeneğini “Universal” olarak işaretliyorsunuz. iPhone için ayrı, iPad için ayrı .xib dosyaları oluşuyor. Dolayısı ile iki uygulamanın görüntüsü tıpatıp aynı olmak zorunda değil. Mesela ekran daha büyük olduğundan iPad’de daha değişik bir arabirim sunabilirsiniz. Ama kod grubu tek parça olabiliyor. Şöyle ki: bizim örneğimize göre açıklayayım. Yanda gördüğünüz üzere TgrtFM klasörü altında TgrtFmAppDelegate dosyaları ile iPad ve iPhone klasörleri var.  Bu klasörlerde de TgrtFMAppDelegate_iPad ve TgrtFMAppDelegate_iPhone dosyaları ve .xib dosyaları var.

Yani eğer iPhone ve iPad için farklı fonksiyonlar yazmayacaksanız hepsini ana klasördeki AppDelegate dosyalarına yazabiliyorsunuz. Eğer birbirinden ayrı işlemler olacaksa sadece onları kendi klasörlerindeki AppDelegate dosyasına yazabiliyorsunuz.

Uygulamanın bu sürümünde kullanıcılardan sık sık aldığımız bir şikayeti de düzelttik. Bir radyo uygulaması olduğundan arkaplana atıldığında da yayının devam etmesi beklenen bir davranıştır. Malesef önceki sürümde bu özellik yoktu. Audio Streaming konusunda zerre bilgim olmadığından internette bulduğum dökümanlardan ne anlıyorsam o kadar iş yapabiliyorum. Bu uygulamada kullandığımız ve http://cocoawithlove.com/ blogunun sahibi Matt Gallagher’ın yazdığı AudioStreamer classı için interneti tarumar ettim. Bir kaç örnek uygulama indirdim ve gerçekten arkaplanda yayının devam ettiğini gördüm. Ama bunu sağlamak için çok girift kodlar yazmışlardı. Bana daha transparan bir çözüm lazımdı. Ne bileyim, bir ayar dosyasına bir şey yazmak ya da bir konfigürasyon sayesinde bu işin olmasını bekliyordum.

Tam da aradığım çözümü şurada buldum. Örneği yazan kişi “böyle yapınca simülatörde çalışıyor, ama gerçek bir cihazda deneyemedim” diyordu. Korktuğum oldu, gerçek cihazda çalışmadı. Daha sonra şimdi adresini hatırlamadığım başka bir yerde de info.plist dosyasına arkaplanda çalışması için bir key eklemek gerektiğini okudum:

    <key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>

Böylece mevzu tamamlanmış oldu. Ondan sonra bir saatimi de uygulamayı AppStore’a göndermeye harcadım. Kullandığım bilgisayar değişince keychain uygulamasında sertifikaları vs düzenlemem gerekiyordu. Nasıl yapılacağını hatırlamadığım gibi sürekli lazım olmadığından böyle son dakikalara kaldı. Uzun ama bildiğim yolu seçip Apple Developer Center sitesinden tekrar sertifika talep ettim, tekrar developer ve distribution profile’ları oluşturup indirdim. Xcode’a ekledim bütün hatalardan arındıkdan sonra “Archive” deyip uygulamayı gönderdim. Gönderme işleminde de hatalar çıkabiliyor, 7. denememde anca toparlayabildim.

İnşallah AudioStreamer class’ından kaynaklanan iki notice için Apple uygulamayı reddetmez. Çalışmasına engel olan hatalar değil. İnternette araştırdım ama nasıl çözüleceğini bulamadım. Matt Gallagher de class’ı güncellememiş.

Bekleyelim bakalım…

Hello Siri!

Cumartesi, Kasım 12th, 2011

Dün akşam bir arkadaşımın Almanya’dan getirttiği iPhone 4S’i biraz kullandım. İlk işim Siri’yi incelemek oldu tabi. Benim İngilizce telaffuzum berbat ötesi olduğundan Siri pek bir şey anlamadı. Gerçi Türkçe anlasaydı da telaffuzumu beğenmeyebilirdi (Bizim uşaklardan Cemal’i bağla dedum da).

Geçen sene iPhone 4′ü de ilk kez bu arkadaşda görüp “patrondan önce kullandım” havasını atmak için hemen twitter, instagram, facebook, friendfeed ne kadar sosyal medya varsa paylaşmıştım :)) Ama patronum şuan Amerika’da olduğundan gelirken kendine bir tane alıp “hava öyle değil böyle atılır Hasan’cım” derse şaşırmayacağım :))))

Bu kullandığım iPhone 4S, Almanya’dan geldi. Hem de piyasaya çıktığı günün ertesinde. Yeni iPhone’nun ABD ile aynı anda piyasaya çıktığı bir kaç ülke varmış. Bu sene Almanya da bu kervana katılmış. Aynı anda almayı geçtim, bize aynı sene içerisinde gelsin ona da razıyım. Ama asıl razı olamadığım fiyatı!

Unlock olarak Almanya’dan alınan telefonun fiyatı yaklaşık 2100 TL. Bunu duyunca tepem attı tabi. Ülkemizde hepsiburada.com’da 2800′den satılmasına ayrı sinirlendim, geçen sene iPhone4′ü Turkcell’den kampanyasız olarak aldığım fiyattan bile ucuz olmasına ayrı sinirlendim.

Hülasa; yediğimiz kazığın haddi hesabı yok. Bu kazığı Apple mı atıyor? Almanya’ya 10 liradan Türkiye’ye 20 liradan mı satıyor? Yoksa Türkiye’deki Turkcell, Avea, Vodafon “bizimkiler pahalıyı ayrı sever” deyip onlar mı icabımıza bakıyor. GSM firmalarının hiç bir maliyeti olmamasına rağmen SMS’e ayda 30 TL fatura kestiklerine ve iMessage sayesinde Apple’ın en azından bu yükün bir kısmından kurtulmama vesile olduğuna bakarsam, bu küçük hesap bile kazığı nerden yediğimi açık açık gösteriyor.

Harika bir iPad Oyunu: Air Attack HD

Pazartesi, Mart 28th, 2011

Bugün İstanbul Forum’daki Bimeks standlarını dolaşırken iPad’ler gözüme çarptı. Yenileri değil tabi :) Onların Türkiye’ye gelmesine daha çok var. Eskileri bile anca geldi.

Müşterilerden biri iPad’lerden birini kapmış söylene söylene oyun oynuyordu. Ne oynuyor, neye söyleniyor diye merak ettim, yaklaştım. “Adamlar ne güzel yapmış, teknolojiye bak bee” diyordu. Meğer hayıflanması cihazı beğenmesindenmiş :) “Bu daha eskisi, yenisi bundan da güzel” diyerek lafa karıştım. Oynadığı oyuna şöyle bir baktım. Eskiden atari salonlarından hatırladığım “Raptor” tarzı bir oyundu. Tabi ki grafikleri Raptor’dan bir milyon kat daha güzeldi. iPad’de uygulamaların ne işe yaradığından ziyade ne kadar güzel göründükleri daha çok ilgimi çekiyor. Hemen yandaki iPad’i kaptım. Aynı uygulama onda da kuruluymuş Allah’dan. Adını ezberlemeye çalıştım ama eve gelinceye kadar unuttum. Sadece “air” kelimesi aklımda kalmış. Kısa bir aramadan sonra buldum ve satın aldım. Çok şükür aşırı pahalı oyunlardan değildi: 0.99 $ cık bayıldık.

Oyun hem görsel açıdan hem de oynanabilirlik açısından çok güzel. Uçağı parmağınızla yönetirken illa tam üstünde tutmanız gerekmiyor. Ekranın en alt kısmından da yönlendirme yapabiliyorsunuz. Böylece asıl manzarayı kaçırmamış oluyorsunuz. Oyunda sürekli ilerlerken düşmanlar hem karadan hem nehirden hem de havadan bombalar yağdırıyor. Vurabildiğinizi vurup tamamen tükenmeden ilerlemeye çalışıyorsunuz. Checkpoint noktalarında yeni silahlar, mühimmatlar alabileceğiniz bir dükkan beliriyor. Kazandığınız puanları burda kullanıp daha gelişmiş silahlarla oynayabiliyorsunuz.

Oyun yukardan bakınca 2 boyutlu gibi görünse de aslında bütün ortam 3d olarak tasarlanmış. Uçaklar, tanklar, ağaçlar vs bunu hemen farkettiriyor. Bunun dışında oyunun bazı noktalarında -çok fazla oynamadım, şimdiye kadar bir kere rastladım- ilerideki büyük engel neyse ona yaklaşıp onun etrafında fır dönüyor ve o engeli ortadan kaldırmaya çalışıyorsunuz. Engeli ortadan kaldırdığınızda oyun tekrar bu yukardan bakış moduna geri dönüyor.

Air Attach HD, geçen gün otobüste yanımda oynayan birinden farkedip kurduğum Lane Splitter adlı motorsiklet oyunundan çok daha eğlenceli. Ama onu da yabana atmayın derim. Bir deneyin. Ücretsiz.

iPhone Kursu’ndan Mezun Olduk

Salı, Mart 8th, 2011

Aralık ayında başladığımız iPhone kursumuz bugün sona erdi. Sevgili hocamız Kevser Temiz’e emeklerinden dolayı şahsen çok teşekkür ederim. iPhone gibi popüler bir alanda ilk eğitimi verip -üstelik oldukça ekonomik fiyatla- lider eğitim firmalarına fark atan Gelişim Platformu’na ayrıca teşekkür ederim.

Kursa katılmadan önce Objective  C konusunda internetten ve çeşitli kitaplardan derme çatma ingilizcemle edindiğim bilgilerin bu kursda aldığım eğitim yanında solda sıfır kaldığını farkettim. 60 saatte Objective C’ye tabi ki %100 hakim olmak imkansız, ama en temel konuların hepsini öğrendik. Artık kendimizi geliştirip eksiklerimizi tamamlamak bize kalmış.

Kursun ilk zamanlarında öğrendiğim herşeyi akşamında bloga yazmak, hem bilgilerimi tazeyken pekiştirmek hem de paylaşmak istemiştim ama işyerimdeki yoğunluk nedeniyle buna devam edemedim. İnşallah yoğunluk ortadan kalkarsa yine yazılara devam edeceğim.

Nasip..

iPhone Kursu: Plist’lerle tablo oluşturmak-Bölüm1

Perşembe, Ocak 20th, 2011

İki haftadır iPhone kursumuzla ilgili yazı yazamadık. Bunun en büyük nedeni kurs dışındaki işlerimizin aşırı yoğun olmasıydı. Kursdaki konular da giderek daha karmaşık hale geldiği için malesef yazacak vakit bulamadım. Bir ara screen-recording ile video şeklinde hazırlayayım dedim ama sessiz bir ortamda boşluğa konuşmayı beceremedim. Bir kaç popüler video blog inceledim, ama bana göre değilmiş. Hasılı, klasik usüle devam.

Bugün sanırım 10. dersi gördük. Sayısı mühim değil, mevzusu mühim. Artık dışardan data alabileceğimiz konulara geldik. Hocamız önce plist denen dosyalardan nasıl veri okuyabileceğimizi anlattılar. Kısa fakat çok yararlı bir konu olduğundan blogda paylaşmak istedim.

Plist dosyaları, anahtar=>değer (key=>val) formatında veri içeren basit xml dosyalarıdır. Aslında bütün iPhone/iPad uygulamalarında zaten bir tane plist dosyası (uygulama_adi.plist) bulunmaktadır ve uygulamanın icon dosyaları, uygulamanın görünecek adı, ana nib dosyasının ne olduğu gibi bazı ayarlar bu dosyada tutulur.

Biz de istediğimiz kadar plist dosyası oluşturup projemizin resource kısmına koyabilir ve uygulamamızda bu dosyalardan faydalanabiliriz.

Basit bir örnekle konunun detaylarına girelim: Amacımız yine yemek tarifleri uygulaması  yazmak olsun. Ama bu kez datamızı kodun içerisine değil bu plist dosyalara yazalım. İnşallah ileriki konularda da veritabanına yazarız. Uygulamamız “navigation based” bir uygulama olsun ve ilk açıldığında listede yemek kategorileri olsun, tıklandığında ikinci listede de o kategorilerdeki yemekler görünsün. Sonraki aşamaların mantığını zaten daha önceki yazılarda uzun anlatmıştık. O kısımlara hiç girmeyelim. Sadece birbiri ardınca iki listeyi plistlerle doldurmayı görelim.

(daha fazla…)

iPhone Kursu 4. Ders: Tab Bar Controller

Salı, Ocak 4th, 2011

Yarın kursumuzun beşinci dersi var, bense daha dördüncü dersi yeni yazıyorum. Bugün bütün günümü üçüncü dersin ikinci kısmı olan Navigation Controller yazısını yazmaya harcadığım için -ve tahminimden çok daha uzun sürdüğü için- Tab Bar Controller’a anca sıra geldi. Uzun uzun yazmak gerçekten yorucu oluyor, ileride Video Blog şekline geçmeyi düşünebilirim.

Bu kez kısa kısa gitmeye çalışacağım. Bir önceki uzuun yazıyı iyice sindirdiyseniz temelde ondan farklı hiç bir şey yapmadığımızı göreceksiniz.

Bu dersde sıfırdan Tab Bar Controller kullanmayı göstermişti hocamız. Fakat notlarımı şirkette unuttuğum için dersteki örnek yerine yine bir önceki yazıdaki gibi Yemek Tarifleri uygulamasının başka bir versiyonu ile yazıya devam edelim. Tab Bar kullanmak asıl amacımız olacağı için daha önceki yazıda “Etli Yemekler, Zeytinyağlılar ve Çorbalar” şeklinde olan kategorileri bu kez Tab Bar’ımızın sekmeleri olarak düşünelim. Sekmelere basıldıkça birer liste çıksın ve içinde yemekler sıralansın (Table View Controller). En son sekme olarak da “Hakkımızda” sekmesini ekleyelim. Buna basıldığında programımız hakkında küçük bir bilginin yer aldığı ekran görünsün (Custom View Controller).

(daha fazla…)