20
Eyl

Bir süredir hem bulut bilişim hem de mobil sistemler üstünde ilgimi çeken makaleleri takip etmeye çalışıyorum. Son bir kaç senenin havalı sözcüğü bulut – cloud özellikle akıllı cep telefonlarının ve tabletlerin verdiği rüzgarla birlikte bir süre daha bizi oyalamaya devam edecek gibi gözüküyor.

Geçtiğimiz hafta geliştirici sürümü yayınlanan Windows 8 ve ondan önce yayınlanan OsX Lion bildiğimiz anlamda olan masaüstü kavramını değiştirecek gibi gözüküyor. Özellikle Windows 8 arayüzü bugüne kadar Ms’den görmeye alışık olmadığımız kadar radikal bir değişiklik getirirken benim aklıma şu soruyu getirdi:

“Bildiğimiz anlamda olan masaüstü ölüyor mu?

Masaüstü kavramı aslında kişisel bilgisayarın algısını ve kullanımını değiştiren ve şu an için kullanıcıya istediğini yapma özgürlüğünü veren bir kavram. Bilgisayarınızın sadece üreticisi tarafından belirlenen şekilde değil sizin istediğiniz şekilde kullanılmasını sağlamak için vazgeçilmez bir kavram bütünü sunuyor masaüstü.

Son zamanlarda ise insanlar hem tabletlerde hem akıllı telefonlarda masaüstü kavramı yerine uygulama kavramını benimseyerek ve onlara üretici  / geliştirici tarafından sunulan yeteneklerle yetinmeye başladılar gibi gözüküyor. Biraz ayrıntıya indiğiniz zaman durumu daha farklı okumak da mümkün. Ben uygulamaların temeli olan mobil işletim sistemlerinin -Android ve ios vd.- birer masaüstü görevi görmeye başladığını düşünüyorum. Ergonomi ve görünüm farklı olsa bile -özellikle ios için- bu platformlar işlevsel anlamda birer masaüstü ortamı sunacak kadar esnek olmaya başladılar. Bir kaç yıl önce smartphone olarak adlandırığımız cihazlar bu gün yukarıda adı geçen mobil işletim sistemleri sayesinde hızla feature phone olarak adlandırılmaya başladılar. Hatta belki nokia’nın oyunu kaybetmesinin temel nedenlerinden biri de bu esnekliğe zamanında adapte olamaması oldu.

Tabi bu işletim sistemlerinin birer masaüstü haline gelecek kadar esnek olmasının nedeni üreticilerin çok yetenekli ve evladiyelik telefon yapma isteğinden çok internet’in hayatamızda yerinin artması oldu. Bir araştırma bulamadım ama benim gözlem ve öngörüm masaüstünde artık en çok kullandığımız şeyin tarayıcı olduğu yönünde. Yani işlerimizi bilgisayarımızın kendisinde değil ama bir masaüstü uygulaması olan tarayıcı üstünde yapıyoruz. Bu yüzden ben tarayıcıyı tek bir uygulama değil ama sunulan / alınan her bir hizmet için farklı bir masaüstü uygulaması olarak görüyorum.

İşte tam bu noktada aslında bilgisayarınızda yer alan masaüstü ile telefon ve tabletlerinizde yer alan masaüstü birden örtüşüyorlar. Çünkü iki masaüstünde de uygulamalarınızın tek amacı sizi internet üstünden aldığınız hizmete ulaştırmak. Nielsen’in 2011 2. çeyrek uygulama indirme sayılarına bakacak olursanız insanlar cep telefonlarına oyunlardan sonra -ki bunların pek çoğu da aslında sizi online oyun sunucusuna bağlamak istiyor – en çok internet hizmetlerine ulaşım sağlayan uygulamaları yüklüyorlar.

Bu yazı kapsamında ben bu uygulamaları sadece çok iyi özelleştirilmiş birer tarayıcı olarak yorumluyorum ve bu sebeple post-pc cihazlarla pc üstünde yer alan masaüstü kavrmaının birbirinden çok farklı olmadığını düşünüyorum.

Masaüstü ölmüyorsa kim ölüyor?

Peki eğer klasik anlamda PC üstünde yer alan masaüstü ile post-pc cihazların üstünde yer alan masaüstü fikir olarak aynıysa neden PC’nin klasikleşmiş hatta tabulaşmış kuralları ile oynamaya başladığımızı merak ediyor olabilirsiniz. Bence bunun cevabı son derece basit. İnsanlar artık her an yanlarında PC taşıyamayacak hale gelmeye başlamış durumdalar. Ofislerinde bir PC, evlerinde bir PC ve evleri ile ofisleri arasında post-pc cihazlar kullanırken her bir PC’nin kendi hafızasında kalan bilgilere ulaşamamak insanları her an yanlarında taşıyacakları post-pc cihazlara yöneltiyor.

Bana kalırsa insanların sorunu masaüstünden çok mobil olamamaktan kaynaklanıyor ve dikkat ederseniz hem Ms hem Apple son güncel sürümlerinde bilginin görünmeden göze batmadan PCler ile post-pcler arasında taşınması ve internet hizmetlerinden kopmamayı öne çıkarmış durumda. Apple bunu icloud ile çözerken Ms daha farklı bir çözümle benzer arayüzler ve aynı SDK’yı kullanan yazılımlarla çözmeye çalışıyor. Her iki firma da klasik anlamda masaüstü görünümünden ve işlevlerinden ne vazgeçmiş ne de vazgeçebilecek durumda.

Eh bu kadar özet bilgiden sonra o halde başlıkta sorduğumuz soruyu tekrar sormanın vakti geldi. Masaüstü nereye gidiyor?

PC için masaüstü kavramı bana kalırsa olduğu yerde sağlam bir şekilde durmaya devam ediyor ve yaşıyor. Bununla birlikte biraz kabuk değiştirerek artık çalışma ortamı olarak kendi üstünde çalıştığın bilgisayarın hafızası ve belleği yerine sizi mobil hizmetleri aldığınız dünyada çalışmaya devam ediyor. Bu arada post-pc olarak adlandırdığımız cihazlarda ise masaüstü, ergonomi nedeniyle farklı bir izdüşüm halinde olmaya devam ediyor.

Peki kim kaybediyor sorusunun yanıtı basit. Sadece olduğu bilgisayarda çalışmaya programlanmış masaüstü işletim sistemi kaybedecekler listesine giriyor ne yazık. İşletm sisteminin artık sadece üstünde çalıştığı bilgisayarda değil kullanıcısının olduğu her yerde olma zorunluluğu büyük bir hızla geliyor. Çalışılan belgelerin, dinlenen şarkıların, bakılan resimlerin sadece çalışan PC’nin hafızasından çok aynı anda başka bir PC’nin ya da hemen yanında duran tabletin de hafızasında olması gerekiyor.

Bu sebeple yapılması gereken artık işletim sistemini tek bir bilgisayarda çalışacak şekilde düşünmekten çok post-pc ve diğer PC’ler ile çalışmaya hazır bir şekilde uyarlamak özellikle mobil olan kullanıcıya her noktada hizmet vermeyi sağlayacak bir temel haline getirmek kalıyor. Bunu yapamayan işletim sistemlerinin bireysel pazarda yavaş yavaş pazar paylarını kaybedeceğine inanıyorum.

8
Eyl

Bugünkü eğlencemiz bir öncekine çok benziyor. Ancak bu sefer label ya da button gibi sık kullanılan öğelerle değil hep gözümüzün önünde olsa da pek dikkatimizi çekmeyen navigasyon çubuğuyla (UINavigationBar) oynayacağız.

UINavigationItem’ın ayarları native uygulama görünümü istemediğimiz bir çok uygulama için yetersiz kalıyor. Bu noktada NavigationItem’ın title property’sini bir kenara bırakıp ilgimizi titleView property’si üzerine yoğunlaştırıyoruz. titleView property’sine değer olarak herhangi bir UIView nesnesi verebiliyorsunuz, bu örnekte UILabel kullanacağım ancak biraz egzersizle farklı fontlar kullanarak yazı yazabilirsiniz ;)

Değişik renkli başlıkları farklı view controller’larda kullanabileceğimizi düşünerek verdiğimiz metni bir label’ın içine yazıp bize o label’ı döndüren bir fonksiyon yazarak başlıyoruz.

+ (UILabel *) labelForNavigationItem:(NSString*) text
{
UILabel *titleView = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 120, 30)] autorelease];
[titleView setFont:[UIFont boldSystemFontOfSize:16.0]];
titleView.backgroundColor = [UIColor clearColor];
titleView.textAlignment = UITextAlignmentCenter;
titleView.textColor  = [UIColor colorWithRed:.80784314 green:.77647079 blue:.50980392 alpha:1.0];
titleView.textColor = [UIColor whiteColor];
titleView.text = text;

return titleView;
}

İlgili view controller’ın viewDidLoad methodu içinde navigationItem’ın titleView property’sine değer atayarak işimizi bitiriyoruz.

self.navigationItem.titleView = labelForNavigationItem:@"Menu";

labelForNavigationItem fonksiyonunu zenginleştirmek ve yazınıza görsellik katmak size kalmış.

UILabel kullandığım bir örnek:

Custom NavigationItem title

Başka bir uygulamada UILabel yerine UIImageView kullandım, demem o ki diğer UIView nesnelerine ihtiyacınız olduğunda hiç çekinmeyin bu kodlarda birkaç değişiklik yaparak sorunsuzca kullanılabiliyor.

Bu yazının puanları da Sergio Morales‘e gidiyor.

4
Eyl

iOS platformu için uygulama geliştiriyorsunuz diyelim, tasarımınız gereği sistemdeki fontlardan başka bir font kullanmanız gerekiyor ya da sadece değişiklik olsun diye bunu yapmak istiyorsunuz belki de. Benim gibi platformun teknik detaylarını bilmeyen bir tasarımcı başınıza iş açmış bile olabilir :)

Öncelikle bu çözümün sadece iOS SDK 4 ve üzeri sürümlerde çalışacağını belirtelim. Eğer bu bir sorun değilse aşağıdaki adımları takip ederek sonuca ulaşabilirsiniz.

  1. Kullanmak istediğiniz font dosyasını (TTF/OTF) XCode’da projenize ekleyin.
  2. Projenizin info.plist (projeadı-info.plist de olabilir) dosyasına ”Fonts provided by application” isimli bir anahtar ekleyin.
    • Eğer birden fazla font kullanacaksanız bu anahtarın tipini Array yapmayı unutmayın.
    • Anahtarın değeri olarak eklediğiniz font dosyasının adını (uzantısıyla birlikte) yazın ve dosyayı kaydedin.
  3. Kodun içinde [UIFont fontWithName:@"YeniFontunAdı" size:16] şeklinde kullanabilirsiniz.
  4. Buradaki “YeniFontunAdı” eklediğiniz dosyanın adı değil bilgisayarınızdaki görünen adıdır. Örnek vermek gerekirse ”bauhaus_med.ttf” dosyasını kullanmak istediğinizde ”YeniFontunAdı” yerine ”Bauhaus Medium” yazmalısınız. Dikkat edilecek bir husus da bazı fontların birden fazla ismi olmasıdır. Hata yapmamak için fontu bilgisayarınızda açıp kontrol edin.

UILabel, UITextView ve UIButton gibi setFont metodu olan her türden nesne için kullanabilirsiniz.
UIButton ile yapılmışı:

Custom Font in UIButton

İlk üç madde için puanlar BeefyApps‘e giderken son madde için birkaç puan da Shang Liang‘a gidiyor.