"Enter"a basıp içeriğe geçin

Kategori: iOS

Ottomania

Bir kaç gün önce TRT1’de “En Uzun Yüzyıl” isimli dizinin bir bölümüne denk geldim. Bu tabiri Prof. İlber Ortaylı’nın bir kitabının adından hatırlıyordum. Dizide eniştesi Sultan Abdülaziz Han’ın ve katledilişine ve hasta kızkardeşinin hakaretler görmesine dayanamayan Çerkez Hasan’ın Avni Paşa’nın hakkından gelmesi ve sonra da idam edilmesi işleniyordu. Böyle tarihi karakterlerin -bilhassa haksızlıklara maruz kalmasının- konu edildiği televizyon yapımlarını izledikten sonra hemen bir wikipedia araştırması başlar bizim evde. O kimdi, öbürü kimdi, hakikaten öyle mi olmuştu.. Bu sorguları yaparken Sultan  Abdülaziz’i, sonrasında Sultan Abdülhamit’i, Avni Paşa denen deyyusu, Mithat Paşa denen zevatı inceleyip durdum. Hatta hızımı alamadım V. Murat’ı tekrar…

Objective-C Arkaplanda Ses Çalma – Audio Session

Uygulamanızda audio özellikleri kullanıyorsanız, yani bir servisten veya bir dosyadan ses oynatıyorsanız uygulamayı kapattığınızda arkaplanda sesin devam etmesini isteyebilirsiniz. Bunun için yapılması gereken işlem oldukça basit. Öncelikle uygulamanızın plist dosyasına  “UIBackgroundModes” nodu ekleyip karşısına “audio” yazmak lazım (Xcode bu yazdıklarınızı sürümüne göre başka kelimelerle otomatik olarak değiştiriyor, şaşırmayın). Sonra uygulamanızın AppDelegate.m dosyasındaki init veya applicationDidFinishLaunching fonksiyonlarından birine şu kodu yazıyorsunuz. -(id) init { [[AVAudioSession sharedInstance] setDelegate: self]; [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; }

Ebruli Osmanlıca Sözlük Yenilendi

Bundan dört sene önce ikinci sürümünü çıkardığımız Ebruli Osmanlıca Sözlük iOS uygulamasının yeni sürümü (iPhone 5/5S/5C uyumlu) nihayet yayında. Keşke yıllar önce yapmaya karar verdiğim iPad sürümünü de bitirebilseydim ama malesef o başka bir bahara kaldı. Ebruli Sözlük’ün yeni sürümünde tasarımı biraz sadeleştirdik. İnşallah beğenirsiniz. Bir önceki sürümündeki “her aramaya dair sadece ilk 10 kelimeyi getirme” gibi bazı teknik detaylar “bazı” kullanıcıların yanlış anlamasına neden oluyordu. AppStore’daki yorumlarda çirkin itham yazacak kadar durum vahimleşince yeni sürümde yanlış anlamaya sebebiyet verecek bu kısıtlamaları kaldırdık. Ayrıca bu sürümde uygulamamıza küçük bir de oyun ekledik. Rastgele bir Osmanlıca kelimenin açıklaması karşınıza geliyor ve…

İyi sanatçılar kopyalar, büyük sanatçılar çalar

3 Aralık 2012’de şu sayfada bahsettiğim Romo’yla nihayet tanışma fırsatı bulduk. Bir Kickstarter başarı hikayesi olan Romo tam da beklediğim kalitede bir ürün olarak karşıma çıktı. Ürünün CE, FC gibi çeşitli standartlardan ziyade Apple’ın verdiği MFi (Made For iDevices) ibaresi taşıması ayrı bir önem arz ediyor benim için. Romo’yu henüz tam olarak inceleyemedim, zira Lightning girişi olan bir cihaz sipariş vermiştim ve ürün gelene kadar ben de öyle bir iPod’a yahut iPhone’a sahip olurum diye düşünmüştüm. Henüz olamadığım için Romo’yu ofisteki arkadaşların iPhone5’leri ile deneyecek kadar kurcalayabildim. Romo’nun gücü kaliteli donanımından ziyade onu çalıştıran yazılımdan geliyor veya gelecek. Zira yazılım…

Robi’ye Devam

Nerdeyse bir yıl önce burada da bahsettiğim robot projem için bir kaç aydır Kosgeb projesi hazırlamakla meşguldüm. Çalıştığım firmamın desteğiyle konuya hakim bir danışman arkadaşımızın gayretleri neticesinde projemiz çok şükür Kosgeb’den onay aldı. Artık önümüzde 15 aylık bir süreç var. Bu proje görünenin aksine aslında bir yazılım ar-ge projesi. Zira elektronik kısmı için profesyonel bir firmadan hizmet alımında bulunacağız. Benim derme çatma elektronik bilgim bu işe müsait değil 🙂 Tabi projenin elektronik kısmı hakkında da bilgi sahibi olmaya gayret edeceğim ama asıl yazılım konusunda zorlu ve uzun bir yol var önümüzde. Robotun yani Robi’nin otonom ve uzaktan kontrol şeklinde iki…

AFNetworking (AFXMLRequestOperation) Main Thread’i Engelliyor

Bir önceki yazıda bahsettiğim uygulamayı neredeyse bitirdim fakat bir problem nedeniyle AppStore’a gönderemedim. Uygulamada AFNetworking’in AFXMLRequestOperation classını kullanarak RSS datasını çekip, gelen xml’i parse edip ilgili mutable (sonradan öğe eklenebilen) dizilere doldurmayı ve bir table’ı bu dizideki elemanlarla  oluşturmayı hedefliyordum. İlgili viewController classıma xml parsing delegate metodlarını yazabilmek için <NSXMLParserDelegate> ibaresini ekledim ve gereken metodları yazdım. İşlem gayet düzgün çalıştı fakat veriler parse edildikten neredeyse 2-3 saniye sonra table güncelleniyordu.Halbuki [self.tableView reloadData] fonksiyonunu parsing işleminin bitiminde çalışan – (void)parserDidEndDocument:(NSXMLParser *)parser fonksiyonuna eklemiştim. Debug yapınca reloadData’nın sırası geldiği halde çalışmadığını, AFNetworking’in parse işleminden sonra başka rutinlerinin icra edildiğini, 1-2 saniye sonra…

AFNetwork Expected content type hatası

Geçen yıl başladığım bir uygulamayı tamamlamaya niyetlendim. Uygulamanın bir kısmında RSS okumam icab ediyordu. Bunun için AFXMLRequestOperation kullandım fakat sürekli olarak “Expected content type” hatası verip listelediği application/xml, text/xml tiplerinden biri olması gerektiğini bağırıp durdu. Google’da aratınca öğrendim ki AFNetwork kütüphanesinde AFXMLRequestOperation.m dosyası içerisinde hangi xml dosya tiplerini kabul ettiğine dair yukarıdaki listenin tutulduğu bir fonksiyon varmış: + (NSSet *)defaultAcceptableContentTypes { return [NSSet setWithObjects:@”application/xml”,@”application/rss+xml”, @”application/atom+xml”, @”text/xml”, nil]; } Bu kısma benim çalıştığım RSS dosyasının tipi olan application/rss+xml’i de eklediğimde sorunum çözülmüş oldu.

Objective-C’de Mail Gönderme Modal’ı Kullanmak

Bazı uygulamalarda gördüğümüz mail gönderme modalını hazırlamak çok basitmiş. Evvela projeye  MessageUI.framework framework’ünü eklemek gerekiyor.  Sonra mail modalını kullanacağımız ekranın OrnekViewController.h dosyasında aşağıdaki dosyaları yüklemek ve  ayrıca mail gönderme işlemleri ile ilgili delegate fonksiyonlarını da bu class’da kullanabilmek için MFMailComposeViewControllerDelegate ifadesini kullanmak gerekiyor. #import <UIKit/UIKit.h> #import <MessageUI/MessageUI.h> #import <MessageUI/MFMailComposeViewController.h> @interface OrnekViewController : UIViewController<MFMailComposeViewControllerDelegate>{ } @end Daha sonra OrnekViewController.m dosyasında şu iki fonksiyonu kullanmak yeterli.. – (IBAction)actionEmailComposer{ if ([MFMailComposeViewController canSendMail]) { MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init]; mailViewController.mailComposeDelegate = self; [mailViewController setSubject:@”Mail Konusu”]; [mailViewController setMessageBody:@”mesaj” isHTML:NO]; [self presentViewController:mailViewController animated:YES completion:nil]; } else { NSLog(@”Mail gonderilemiyor”); } } -(void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error{ [self…

Objective-C’de integer MutableArray’i oluşturmak

Bir iki haftadır QuickDialog kütüphanesi ile bir proje geliştirmeye çalışıyorum. Dökümantasyonu malesef çok açıklayıcı olmadığı için işin acemisi olarak biraz zorlanıyorum. QuickDialog’da “çoktan seçmeli” bir liste oluşturmak ve bir tuşa dokunulduğunda bu listedeki tüm elemanların seçili olmasını sağlamaya çalışıyordum. QRadioSection adındaki bu yapı selectedIndexes isimli bir NSMutableArray içerisinde seçili öğelerin indislerini tutuyor. Tüm elemanları seçili hale getirmek için bu MutableArray’a tüm indisleri yazmalı ve tabloyu reload fonksiyonu ile yenilemeliyiz. Buraya kadarını anladım fakat ne yaptımsa selectedIndexes’a tüm indisleri yerleştiremedim. Mesela şu yolu denedim; QRadioSection  *liste=[[self.root sections] objectAtIndex:0]; NSMutableArray *arr=[[NSMutableArray alloc] initWithObject:0,1,2,3,nil]; [liste setSelectedIndexes:arr]; Bu şekilde yazınca hata vermiyordu ama listede…

MKNetwork ile Array Post Etmek

MKNetwork’le array post etmek için iki gündür çabalıyorum. Google’da okuduklarım beni çözüme ulaştırmasa da çözüme giden yolu görmemi sağladı. Aslında çözüm çok ta basitmiş. MKNetwork’le post etmek istediğim verileri karşılayacak api PHP ile yazıldığından; bir array’in gitmesi için mesela şu şekilde olması gerekiyor; il_id[]=53&il_id[]=61&id_id=10 Bu; php’de il_id diye bir array oluşturup içine 53, 61,  10 verilerini yerleştirir. Problem şu; MKNetwork NSMutableDictionary tipinde bir parametre listesi alıyor. Yapısı gereği NSMutableDictionary objesine birden fazla aynı key’e sahip öğe ekleyemiyoruz. yani “il_id[]” keyini sadece bir kere kullanabiliyoruz. Ben de bunu aşmak için uğraş veriyordum. Google’da bulduğum şu sayfa sorunumu çözmedi ama çözümü bulmamı…