... Iphone Kategorisi
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).


Tags: keychain access, macosx lock screen menubar
Posted in Iphone, Mac | No Comments »
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.
Tags: huzur pınarı, online radyo, radyo, tgrt, tgrt-fm
Posted in iPad, Iphone, Uygulama | No Comments »
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…
Tags: Arkaplanda müzik çalması, AudioStreamer, ipad radyo uygulaması, iPhone iPad uygulamaları beraber nasıl geliştirilir, iphone radyo uygulaması
Posted in iPad, Iphone | No Comments »
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.
Posted in Genel, Iphone | No Comments »
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.
Tags: Air Attack HD, Lane Splitter
Posted in Iphone, Oyun | No Comments »
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..
Tags: Gelişim Platformu, iphone kursu, Kevser Temiz
Posted in Iphone | 2 Comments »
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…)
Tags: NSDictionary, plist, xcode
Posted in Ders Notları, Iphone, Kendime Not | 7 Comments »
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…)
Tags: orman kebabı, Tab Bar Controller, Tab Bar Controller içinde Navigation Controller kullanımı
Posted in Ders Notları, Iphone, Kendime Not | 10 Comments »
Pazar, Ocak 2nd, 2011
Kursda üçüncü dersin son kısmında hızlıca Navigation Controller’ı görmüştük fakat yazmaya fırsat bulamamıştık. İyi de oldu, çünkü tek bir yazıda uzun uzadıya bütün dersi anlatmaktansa konulara göre bölerek anlatmak daha iyi olur kanaatindeyim.
iPhone uygulamalarında en çok kullanılan view controller’lardan biri de Navigation Controller’dır. Navigation Controller’da hiyerarşik bir düzen vardır. Genelde Table View’larla beraber kullanılır. Kullanıcı ilk Table View’dan bir satıra tıkladığında o satırla ilgili yeni bir view çağrılır. Eğer bu da bir Table View ise burdaki bir satıra tıklandığında bir sonraki ilgili view çağrılır. Her bir alt kademedeyken bir üst kademeye geri dönmek için Uygulamanın üst kısmındaki bar’da geri dönüş butonları otomatik olarak çıkar (Tabi o ekran için bir title -başlık- yazmışsak).
Şimdi basit bir uygulama ile Navigation Controller’in detaylarına inelim. Yemekler adında küçük bir uygulama hazırlayalım, ilk ekranda “Etli Yemekler, Zeytinyağlılar ve Çorbalar” şeklinde yemek kategorileri listelensin. Etli Yemekler’e tıklandığında “Orman Kebabı, Hünkar Beğendi, İskender” sıralansın. Zeytinyağlılar’a tıklandığında “Taze Fasülye, İmam Bayıldı, Barbunya” sıralansın. Çorbalar’a tıklandığında “Ezo Gelin, Tarhana, Yayla, Şehriye” sıralansın. Aslında kursda bu örneği işlemedik ama nasılsa blog’da zamanımız daha bol olduğu için sindire sindire anlayalım diye bu tarz bir örnek kullanmak istedim. (daha fazla…)
Tags: Ezo Gelin Çorbası, navigation controller, UITableViewController, xcode, yemek tarifleri uygulaması
Posted in Ders Notları, Genel, Iphone, Kendime Not | 4 Comments »
Çarşamba, Aralık 29th, 2010
Eğer iPhone uygulamamızda birden fazla Table View kullanmak istiyorsanız ve kodlar da birbirine karışmasın diyorsanız aşağıdaki adımları takip ediniz:
- View Based Application taslağı ile yeni bir proje oluşturun. (Bu yazı için hazırladığımız örnek projemize “CokluTablo” adını verdik. Dosya isimlendirmeleri bu şekilde yapılacaktır.)
- Resurce klasöründeki CokluTabloViewController.xib dosyasını Interface Builder ile açıp içine Library’den 2 tane TableView nesnesi yerleştirin. (Resim 1)
- Xcode’a geri dönüp Classess klasörüne sağ tıklayın ve şu adımları seçin: Add -> New File -> UIViewController Subclass (seçeneklerden sadece UITableViewController subclass seçili olsun). (Resim 2)
- Dosya adı olarak Tablo1.m yazın (Tablo1.h da otomatikmen oluşacaktır).
- Aynı işlemi tekrar yapın ve dosya adı olarak Tablo2.m yazın. (daha fazla…)
Posted in Genel, Iphone, ipucu, Kendime Not | 1 Comment »