Archive for December, 2009
Android’in Veri Tabanlarında Gezinti
Posted by Sarp Centel in Android on December 29th, 2009

Dosya Sisteminde Gezinti
Cihaz üzerinde komut satırına erişmek için adb shell komutunu kullanıyoruz.
Android işletim sistemi Linux kernel’i üzerine kurulu olduğu için, Linux üzerinde alışkın olduğumuz bazı komutları cihaz üzerinde de çalıştırabiliyoruz. Mesela ls komutu ile dizinleri listeleyebilir, cd dizinadı ile istediğimiz dizine geçebilir, cd .. ile bir üst seviyedeki dizine geri dönebiliriz.

Bu şekilde klasörler arasında dolaşarak istediğimiz bilgilerin nerede durduğunu bulmamız gerekiyor. Mesela veri tabanları genellikle /data/data dizinin altında duruyor. Örnek olarak Contacts uygulamasına ait verilere göz atalım. Bu bilgiler /data/data/com.android.providers.contacts/databases dizininde bulunan contacts.db dosyasında bulunuyor. (NOT: SDK 2.0 ve sonraki sürümlerde contacts2.db olarak geçer).

Database’e Erişim

Cihazdan Dosya Kopyalamak

Kaynaklar
UITableViewCell.textLabel Farklı Arkaplan Rengi
Posted by Deniz Adalar in iPhone on December 15th, 2009
UITableViewCell içerisinde önceden tanımlı olarak gelen textLabel alanının arkaplan rengi, o hücre yaratılırken değiştirilemiyor. Bu sorun farklı renkte ya da bir renk geçişi içeren arkaplana sahip hücre oluşturmak istersek ortaya çıkıyor. Örnek olarak aşağıdaki kod beklediğimiz etkiyi vermeyecektir:
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:nil];
[cell.textLabel setBackgroundColor:[UIColor redColor]];
[cell.textLabel setText:[NSString stringWithFormat:@"Cell%d", indexPath.row+1]];
return [cell autorelease];
}
Bu kod satırının sonucunda textLabel’in arkaplanının kırmızı olmasını bekleriz, ancak çalıştırdığımızca arkaplan rengi değişmemiş görünür. Şu şekilde:

Bunun sebebi aslında iPhone SDK’sının otomatik olarak -hücrelerin ekranda kaydırılırken işlemciyi yormaması için- hücrelerin arkaplanlarını opak yapması ve standart bir renk ile göstermesidir. Bu durumun istisnası ise hücrenin seçilmesi durumudur. Dolayısıyla normal durumda textLabel opak olarak gösterilecek, ancak seçili (highlighted) duruma geçtiğinde arkaplanı transparan yapılacak ve arkasına belirttiğimiz backgroundView getirilecek. Normal durumlarda hangi renkte kalması gerektiğini söyleyebileceğimiz bir değişken olmadığı için (3.1.2 SDK’sinde yok en azından) textLabel normal durumda arkaplan rengini bulunduğu tablonun arkaplanı olarak ayarlar.
Eğer biz normal durumda farklı bir renkte görünmesini istiyorsak, bunu hücre yaratılırken (ya da initialize edilirken) değil, hücre ekranda gösterilecekken söylemeliyiz. Bahsettiğimiz UITableView’in delege metodu ‘tableView:willDisplayCell:forRowAtIndexPath:’dir. Bu metod hücre gösterilmeden hemen önce çağırıldığı için textLabel üzerinde istediğimiz değişiklikleri artık yapabiliriz.
Örnek kod olarak yukarıda yazdığımız satırı bahsedilen delege metodu içerisine yazarsak:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.textLabel.backgroundColor = [UIColor redColor];
}
Şu şekilde (ve istediğimiz gibi) bir görüntü elde ederiz:

Son olarak belirtmek istediğim nokta; bu bahsettiğim işlemler detailLabel için de aynen kullanılabilir.
2010 Android’in yılı olacak (mı?)
Posted by Serkan Doğantekin in Android, Genel on December 15th, 2009
Google’ın mobil platformlar için Android isimli bir platform geliştirdiği açıklaması ile başlayan süreç hem Apple tarafından ekarte edilmiş operatörler/cihaz üreticileri hem de mobil uygulama geliştiriciler için oldukça heyecan verici bir şekilde başlamıştı. Geçen süre zarfındaki gelişime baktığımızda Android platformunun başarılı olduğunu rahatlıkla söyleyebiliyoruz (AdMob verilerine göre dünya akıllı telefon pazarındaki payı %11 olarak görünse de gerçek değer %4, 2009 büyüme tahmini ise %900 civarındadır) ancak ilk baştaki o büyük beklentilerin karşılanması konusunda bazı sıkıntıların olduğunu da göz ardı edemeyiz.
Android platformu konusundaki en temel sıkıntı cihazlar konusunda oldu. Şu ana kadar yaklaşık 20 tane Android tabanlı telefon piyasada yer bulmuş olsa da, bu cihazların çok büyük bir çoğunluğu ana rakip olarak görülen iPhone ile yapılan kullanıcı memnuniyet karşılaştırmalarda geride kaldılar. Ayrıca çeşitli firmalar (Motorola gibi) tarafından 2009 içerisinde çıkartılacağı belirtilen cihazların büyük bir çoğunluğu piyasaya sürülemediler. Bu konuda Android platformu için umut vaat eden nokta ise şimdiden 2010 için en az 30 adet yeni cihazın piyasaya çıkacağının kesinleşmiş olmasıdır. Ancak cihaz pazarındaki bu artış beraberinde getireceği değişik ekran büyüklük/çözünürlük değerleri ve donanım parçalarının farklılığını uygulama geliştiriciler için zorluklar çıkartabileceği gözden kaçırılmaması gereken bir noktadır, ancak kişisel olarak bu konuda zaman geçtikçe bir denge kurulacağını düşünüyorum.
Android hakkındaki diğer başka büyük bir sıkıntı ise uygulama pazarı alanında olmuştur. Google’ın Apple App Store’na rakip olarak ortaya çıkardığı Android Market şu ana kadar beklenildiği kadar iyi bir alternatif olmayı başaramamıştır. Genel uygulama sayısı olarak bakıldığı zaman App Store’da 100.000 civarında olan uygulama sayısına karşılık Android Market’te yaklaşık 10.000 uygulamanın bulunması ve daha da önemlisi bu uygulamaların büyük bir çoğunluğunun kullanıcılar tarafından “v1.0” olarak nitelenen yeterli kalitede olmayan uygulamalar olması ortalama müşteriler için App Store’un daha çekici olması ile sonuçlanmaktadır. Ayrıca Android platformu için iTunes benzeri bir uygulamanın olmaması kullanıcı memnuniyetini düşüren bir etken olmaktadır. Android Market konusundaki başka bir önemli sıkıntı ise uygulama geliştiriciler için yeterli bir gelir kaynağı olarak görülmemesi oldu. Kasım ayı içerisinde dünyanın en büyük mobil oyun şirketlerinden Gameloft, Android platformu üzerinde kimsenin yeterli seviyede gelir kazanamadığını öne sürerek platform üzerindeki yatırımları önemli ölçüde azaltma kararı aldığını, sadece kendilerinin değil benzer şirketlerinde aynı fikirleri paylaştığını belirtmişti. Gerçi takip eden günlerde Motorola Droid’in satış başarısı ve gelişmiş yeni cihazların yakın zamanda ortaya çıkacağı beklentisi ile bu kararlarını geri alıp özellikle 2. nesil Android cihazlar üzerinde yatırımlarına devam edeceklerini açıklasalar da, firmaların iPhone OS üzerinde uygulamaya geliştirmeye daha fazla önem vermeye belli bir süre daha devam edeceklerini rahatlıkla söyleyebiliriz.
Kendi kişisel fikrim bu sene içerisinde yaşanan soru işaretlerine rağmen 2010 yılının Android platformunun gerçekten patlama yapacağı bir yıl olacağı yönünde. Özellikle Android 2.0 ile platformun belirli bir olgunluk derecesine ulaşması, her gün üreticiler tarafından duyurulan yeni nesil cihazlar ve Google’ın platforma kazandırdığı yeni yetenekler ve servislerle (Android 2.0 ile birlikte sunulmaya başlanan sesli navigasyon, yeni duyurulan Goggles servisleri gibi) birlikte firmalar çekinceleri bulunsa da bu pazardan uzak kalamayıp Android üzerinde çalışmaya daha da önem vererek devam edeceklerdir ki buda cihaz üreticilerini yeni modeller konusunda tetikleyici bir sonuca, kısacası bir döngüye yol açacaktır. Ayrıca Google başarılı ADC (Android Developer Challange) stratejisi ile firmalar dışında büyük bir geliştirici kitlesi oluşturmayı başarmış durumdadır. Bu durumda Gartner’ın Android platformu için belirlediği 2012 yılında %18lik akıllı telefon pazar payı tahmini gerçekleştirilebilecek bir hedef olarak görülmelidir. Aslında 2010 yılında Android’in cep telefonlarından çıkıp diğer cihazlar üzerinde de (özellikle netbooklarda) kendini göstermesi bekleniyordu ancak Chrome OS’un ortaya çıkması ile birlikte Android platformunun 2010 yılında cep telefonu merkezli kalacağını söyleyebiliriz.
Mobil operatörlerin bu durumda karşısındaki pozisyonlarını incelersek; bu gelişim potansiyeli karşısında mobil operatörler, iPhone üzerindeki servislerini hızlı bir şekilde Android platformuna da taşımalı, bundan sonra sunacağı servisler içinse iki ortamı da destekleyen bir yapı sergilemelidir. Ayrıca mobil dünya üzerindeki etki alanını giderek attırmakta olan Google’un sadece platform geliştiricisi olarak yetinmeyip servis sağlayıcı olarak etkinliğini arttırması beklenmektedir ki bu durumda operatörler tarafından sağlanan servisler için yeni ve güçlü rakiplerin ortaya çıkması demek olacaktır. Ama bence bunlardan çok daha önemlisi, uzun süredir Google tarafından kabul edilemeyen data/voip tabanlı bir cihaz geliştirdiği iddiasının -tam olarak iddialardaki gibi olmasada- geçen haftasonu Nexus One adı ile ortaya çıkması oldu. Şu anda cihaz hakkında çok fazla bilgi paylaşılmamış olsada bu tarz bir gelişmeyi Google’ın Amerika’daki 700 Mhz ihalesine eklenmesini sağladığı maddelerle birlikte düşünürsek (bu maddeleri kısaca “açık servisler, açık cihazlar” olarak özetleyebiliriz) bu mobil operatörleri sadece data hattı sağlama rolüne doğru itecek bir sürecin habercisi olabilir. Mobil operatörler tüm bu olası senaryolar karşısında etkin stratejiler oluşturmaya şimdiden başlamalıdır, yarın gerçekten çok geç olabilir.
![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=5227a526-6f90-4e2a-849b-4e8f54d28913)
Güncel Yorumlar