garen.yöndem launching ...3 ...2 ...1

Windows Phone Simulation Dashboard

25. Temmuz 2013 10:00by Garen Yöndem

Simulation Dashboard’dan bahsetmeye başlamadan önce simülatör ve emülatör arasındaki farka kısaca göz atalım. Gerçek hayat koşullarını sanal ortamda canlandıran araçlara simülatör deniyor. Emülatörler ise kendi kaynaklarını kullanarak farklı sistemleri taklit eden araçlardır. Örnek olarak Windows Phone Emulator’ın çalışma şeklini ele alalım. Visual Studio’da uygulamanızı debug ettiğinizde Hyper-V ile bilgisayarınızın donanımını yansıtarak sanal bir makine oluşturur ve Windows Phone arayüzünü taklit eder. Sonuç olarak emülatör arka planda bilgisayarınızla aynı işlem gücüne sahip olmuş olur. (Simülatörler hiçbir zaman yalancılık yapmaz :) )


Windows Phone Emulator arayüzünden ulaşılamadığı için pek çok Windows Phone developer’ın Simulation Dashboard’dan ne yazık ki haberi yok. Simulation Dashboard’a Tools sekmesinden veya Quick Launch bar’dan ulaşabilirsiniz.


Windows Phone Simulation Dashboard Context Menu - garen.yondem.com

Windows Phone 8 SDK’in parçası olarak kurulan bu yeni araç şimdilik sadece üç özellik sunuyor. Ağ bağlantısı simülasyonu (Network Simulation), cihazın ekranını kilitleme (Lock Screen) ve takvim anımsatıcısı tetikleme (Reminders). Umarım gelecek SDK güncellemelerinde donanımsal simülasyonlar da eklenir.


Windows Phone Simulation Dashboard - garen.yondem.com

Network Simulation

Network Simulation özelliği ile emülatörün bağlantı hızı ve kalitesini simüle edebilir, uygulamanızın düşük bağlantı veya sinyal koşullarındaki performansını gözlemleyebilirsiniz. Özellikle uygulamanızın interneti kullandığı anlarda yaşanan bağlantı kopukluklarını simüle etmek ve sonuçlarını görme için faydalı olacaktır.


Lock Screen

Windows Phone cihazlarda ekran kilitlendiğinde işletim sistemi uyku moduna geçiyor. Eğer siz uygulamanızın arka planda çalışır halde kalması için kod kısmında gereken ayarları yapmadıysanız ekran kilidi tekrar açılana kadar uygulamanız deaktif durumda bekleyecektir. Bu ani deaktivasyon ve aktivasyon durumuna uygulamanızın nasıl tepki vereceğini görmek için Lock Screen simülasyonunu kullanabilirisiniz.


Windows Phone Simulation Dashboard Simulated Reminder - garen.yondem.com

Reminders

Simulation Dashboard’un sunduğu diğer önemli özellik ise anımsatıcı (Reminder) tetikleyebiliyor olmanız. Uygulamanızın deaktive olmasına yol açan tek sebep cihazın ekranın kilitlenmesi değil. Alarm, Reminder ve gelen telefon araması gibi durumlarda da uygulamanız kısmen deaktive oluyor. Bu tip senaryoları da emülatörünüzde test edebilmeniz için Reminder tetikleme özelliği faydalı olacaktır.


Görüşmek üzere, takipte kalın!

"Akıllı" Saatler

16. Temmuz 2013 21:30by Garen Yöndem

Konu akıllı saatler olduğunda makaleler genellikle “son zamanlarda” diye başlıyor. Bu klişe kelimeler akıllı saatlerin üzerine yapıştı adeta. Akıllı saatlerin şimdiye kadar günlük hayatımızda köklü bir yer edinememiş olmalarının da bu durumun gerçekleşmesinde payı var. Akıllı telefonlar her tarafımızı sarmışken, akıllı saatler cephesinde işler aynı hızda ilerlemedi ve çok dar kullanıcı tabanı edinebildiler. Oysaki akıllı telefon piyasasında çok büyük başarılar elde etmiş, Sony, Samsung, LG gibi firmalar da akıllı saat piyasasında sık sık bulundular.

 

Bugüne kadar

Akıllı saatlerden bahsederken Casio’yla başlamak lazım. Genelde dağ yürüyüşü (trekking) konseptinde yoğunlaşan firma, 1999 yılında Dünya’nın ilk GPS’li saati olan PRT-1GPS modelini, 2000 yılında da Dünya’nın ilk kameralı saati WQV2’yi piyasa sürdü. Satışlar hakkında net bilgi olmasa da Casio’nun akıllı saat piyasasının öncülerinden olduğu aşikar.

 

Casio GPS PRT-1GPS Casio WQV2 - garen.yondem.com

 

Fakat bugünlerde akıllı olarak nitelendirebileceğimiz saatlerin özelliklerini değerlendirmek lazım. Yoksa kronometresi veya takvimi olan elektronik saatlere de akıllı saat diyerek hata yapmış oluruz. Akıllı saatlerin özellikle çevremizdeki en az bir cihazla konuşabilmesi gerekiyor. Vücudumuzun çeşitli yerlerine yerleştirdiğimiz sensörlerden gelen verileri değerlendirebilmeli, çalışma masamızdaki bluetooth hoparlörümüze play/pause gibi komutları gönderebilmeli veya telefonunuzu bardaki masada unuttuğunuzda sizi uyarabilmeli. Son iki yılda başarı yakalaşım akıllı saat projelerinde bu özelliklerin hepsi veya bazıları mevcut. Bu noktada asıl problem, üreticilerin şimdiye kadar en son kullanıcıyı hedeflememiş olmaları.

 

Yıllarca Casio gibi diğer firmaların da hedefinde sporcular veya çok dar kullanıcı kitlelerine sahip alanlar oldu. Bazı telefon üreticileri ise cep telefonunu kol saati yapmak istediler. Kol saatinden telefon görüşmesi yapma fikri ilk bakışta inovatif bir fikir gibi görünse de pazarda talep görmedi. Çin’li dostlarımızın ürettiklerini bir kenara koyarsak, en güzel örneklerden biri LG’nin Google’la işbirliği yaparak 2009 yılında piyasaya sürdüğü GD910 modeli. Gorilla Glass capacitive ekranı ve video görüşme için ön kamerası var. Ancak ne yazık ki cep telefonunun kol saatine evrimi gerçekleşmedi ve bu konsept sessizce piyasadan yok oldu.

 

LG GD910 - garen.yondem.com

 

Bence

Bireysel tecrübemden bahsedecek olursam, ilk akıllı saatimi 2003 yılında dealextreme’den satın aldım. Saatin 2”ekran, 2Gb hafıza, mp3/mp4 oynatma, ses kayıt gibi sıradan mp3 çalar özellikleri vardı. Bu özellikler günümüzün akıllı saat niteliklerinin yanından bile geçmiyor ama on yıl önce bu tip saatlere akıllı saat deniliyordu. O zamanlar Türkiye’de kolunuzdaki saatten kulaklıkla müzik dinleyerek sokaklarda gezdiğinizde, çevrenizdekilerin bakışlardan dolayı kendinizi uzaylı gibi hissedebilirdiniz. Neyse ki o yıllar geride kaldı. Geride kalmasındaki en büyük aktör ise Apple oldu.

 

Pebble Agent - garen.yondem.com

 

Son yorum

Apple iPod Nano 6th gen.’le geniş kitleleri akıllı saatle tanıştırdı. Fakat akıllı saat pazarını erken terk eden Apple’ın hareketlendirdiği piyasa küçük girişimlere ilham kaynağı oldu. Sonuç olarak yazının başında bahsettiğim büyük firmaların tutunmakta zorlandıkları akıllı saat pazarında, kitle fonlama yöntemiyle rekor düzeylerde fonlanan girişimler yer almaya başladılar. Bu girişimlerden ilki 2012 yılında Pebble ve onu takip eden 2013 yılında Agent oldu. Pebble hedefinin yüz katı olan yaklaşık 10.000.000$’lık fonu toplamışken, Agent hedefinin on katına ulaşıp 1.000.000$ toplayarak kitle fonlama dünyasına damga vurdular. Bu da büyük firmaların çoğunun, tüketicilerin talep ettikleri türde akıllı saatler piyasaya süremediklerini gösteriyor. Apple’ın yokluğundaki iki yıllık süreçte akıllı saat piyasasındaki hareketlilik göz ardı edilemez. Apple’ın bir yıldır devam eden iWatch dedikoduları bir yana, Microsoft’un da Surface Watch adıyla akıllı saat kervanına katılacağı yönündeki söylentiler, akıllı saat pazarının önümüzdeki yıllarda da hareketli olacağını gösteriyor.

 

Yine de gönlümün bir numarasını önümüzdeki birkaç sene hiç bir akıllı saatin yerinden edebileceğini düşünmüyorum. Eurotech Zypad WL1500;

 

Eurotech Zydpad WL1500 - garen.yondem.com

 

Windows CE işletim sistemi, Wi-Fi, GPS, ful usb port, Micro SD kart ve 3.5”lik dokunmatik ekrana sahip. Listenin devamına buradan ulaşabilirsiniz. Ancak cihaz 2011 yılında duyurulmasına rağmen ne yazık ki henüz piyasaya çıkmadı. (üzgün yüz)

 

Umarım akıllı saatler, telefonumuza gelen Twit'leri okuyabileceğimiz bluetooth aksesuarlar olmaktan kurtulurlar ve gerçek anlamıyla son kullanıcıya yardımcı olacak işlevler kazandırılarak piyasada hak ettikleri yeri bulurlar.

 

Tekrar görüşmek üzere!

Windows Phone 8 SDK'deki Yeni Launcher ve Chooser'lara Detaylı Bakış

9. Temmuz 2013 10:00by Garen Yöndem

Launcher ve chooser yapıları Microsoft’un da kullanılmasını sık sık tavsiye ettiği, son kullanıcının işletim sisteminde alışık olduğu davranışları uygulamanıza taşıyabilmenizi sağlayan yapılardır. Dolayısıyla, uygulamanızın işletim sistemi içinde doğal gözükmesini sağlamakla kalmayıp, yazmanız gereken kod miktarını azaltmanız da mümkün. Şimdi Windows Phone 8 SDK’deki yeni launcher ve chooser’ların bir kısmını nasıl kullanabileceğimize göz atalım.

 

Save Appointment Task

Bu task’i kullanarak uygulamanızdan Windows Phone’un native takviminde buluşma kaydetme ekranına yönlendirme yapabilirsiniz. Kaydedilecek buluşmanın başlık, konum, tarihi gibi detaylarını da önceden belirleme imkanınız var. Bunu SaveAppointentTask classı’nın StartTime, Reminder gibi metodlarına değer atayarak yapabilirsiniz.

 

windows phone 8 sdk save appointment task

 

using Microsoft.Phone.Tasks;
private void save_appointment_task(object sender, RoutedEventArgs e)
{
SaveAppointmentTask save = new SaveAppointmentTask();
save.Subject = "Akşam yemeği";
save.Location = "Yan yol";
save.Details = "cüzdanını almayı unutma";
save.StartTime = new DateTime(2013, 6, 24);
save.IsAllDayEvent = true;
save.Reminder = Reminder.FifteenMinutes;
save.AppointmentStatus = Microsoft.Phone.UserData.AppointmentStatus.Busy;
save.Show();
}

 

Maps Task

Windows Phone’daki native harita uygulamasına yönlendirme yapabilir, mekana ait isim (ip ucu kelimeler, string bir değer) veya geo-coordinate değerlerini sunup haritada dilediğiniz bir noktayı kullanıcıya gösterebilirsiniz. ZoomLevel methoduyla ise haritaya olan yakınlık mesafesini ayarlayabilirsiniz.

 

using Microsoft.Phone.Tasks;
using System.Device.Location;
private void maps_task(object sender, RoutedEventArgs e)
{
MapsTask map = new MapsTask();
map.SearchTerm = "istanbul taksim";
map.ZoomLevel = 3;
map.Show();
}

 

Maps Direction Task

Native harita uygulamasıyla, belirlediğiniz A ve B noktaları arasındaki yolu gösterebilirsiniz. Bu işlem için LabeledMapLocation class’ının Label ve Location parametrelerini kullanabilirsiniz.

 

windows phone 8 sdk maps direction task

 

using Microsoft.Phone.Tasks;
private void map_direction_task(object sender, RoutedEventArgs e)
{
MapsDirectionsTask MapsDirectionsTask = new MapsDirectionsTask();
MapsDirectionsTask.Start = new LabeledMapLocation("Istanbul Mecidiyeköy", null);
MapsDirectionsTask.End = new LabeledMapLocation("Istanbul Taksim", null);
MapsDirectionsTask.Show();
} 

 

LabeledMapLocation class’ının Location parametresini null belirlediğinizde, ilk parametredeki string değer harita üzerinde konum araması yapmak için kullanılır. Birden fazla konum bulunduğunda ise kullanıcı bulunan konumların listelendiği ekrana yönlendirilir.

 

Farklı bir senaryoda A noktası telefonun mevcut konumu da olabilir. MapsDirectionTask’in Start metoduna değer vermeyerek başlangıç noktası olarak telefonun mevcut konumunu kullanabilirsiniz.

 

using Microsoft.Phone.Tasks;
using System.Device.Location;
private void map_direction_task(object sender, RoutedEventArgs e)
{
MapsDirectionsTask MapsDirectionsTask = new MapsDirectionsTask();
GeoCoordinate besiktas_koordinat = new GeoCoordinate(41.042646, 29.007299);
MapsDirectionsTask.End = new LabeledMapLocation("Istanbul Beşiktaş", besiktas_koordinat);
MapsDirectionsTask.Show();
} 

 

Map Updater ve Map Downloader Task

Şimdiye kadar göz attığımız task’leri önem sırasına koyacak olsaydım, muhtemelen listenin en alt sırasında bu iki task’e yer verirdim. Yine de kısaca bahsedecek olursak MapDownloaderTask ile telefona indirilmiş çevrimdışı haritaların görülebileceği sayfaya uygulamanızdan yönlendirme yapabilirsiniz.

 

windows phone 8 sdk maps downloader task

 

using Microsoft.Phone.Tasks;
private void map_downloader_task(object sender, RoutedEventArgs e)
{
MapDownloaderTask mapdownloader = new MapDownloaderTask();
mapdownloader.Show();
}

 

MapsUpdaterTask’le ise, çevrimdışı haritaların güncelleme kontrolünün yapıldığı sayfaya yönlendirme yapabilirsiniz.

 

windows phone 8 sdk maps updater task

 

using Microsoft.Phone.Tasks;
private void map_updater_task(object sender, RoutedEventArgs e)
{
MapUpdaterTask mapupdater = new MapUpdaterTask();
mapupdater.Show();
}

 

Kurumsal, harita uygulamaları geliştiren ekiplerin işine yarayabilir belki. Kim bilir? :)

 

Share Media Task

İlk bakışta kelime anlamıyla heyecanlandıran bu task şimdilik sadece fotoğraf paylaşımına izin veriyor. Yani kod tarafından uygulamanızdaki bir fotoğraf dosyasının veya kamerayla çekilen bir fotoğrafın, NFC, E-mail veya desteklenen diğer sosyal platformlarda (OneNote, Twitter, Whatsapp vb.) paylaşılabilmesini sağlayabilirsiniz.

 

Dolayısıyla öncelikle bir fotoğraf dosyasına ihtiyacımız var. Bunun için PhotoChooserTask’i kullanmalısınız. PhotoChooserTask’le uygulamanızdan telefondaki fotoğraf galerisine ve kameraya ulaşım sağlayabilirsiniz.

 

windows phone 8 sdk photo chooser task

using Microsoft.Phone.Tasks;
private void share_media_task(object sender, RoutedEventArgs e)
{
PhotoChooserTask choosen_photo = new PhotoChooserTask();
choosen_photo.ShowCamera = true;
var take_choosen = choosen_photo;
take_choosen.Completed += PhotoChooserTaskCompleted;
take_choosen.Show();
}

 

Fotoğraf seçildikten sonra kod tarafında ShareMediaTask’in FilePath methoduna fotoğrafın dosya adını tanımlanarak paylaşım ekranına yönlendirebilirsiniz.

 

windows phone 8 sdk share media task

 

void PhotoChooserTaskCompleted(object sender, PhotoResult e)
{
var share_media = new ShareMediaTask { FilePath = e.OriginalFileName };
share_media.Show();
}

 

Save Ringtone Task

Uzun zamandır Windows Phone’da olması istenilen zil sesi kaydetme özelliği için nihayet Windows Phone 8 SDK ile destek geldi. Ancak çok heyecanlanmayın :) henüz işletim sistemindeki fonksiyonlara farklı zil sesleri atayabilmenin imkanı yok. Yine de gelişmeler sevindirici.

 

SaveRingtoneTask’ın Source metodunu kullanarak M4R, MP3 ve WMA formatındaki 30Mb’dan küçük ses dosyalarını zil sesi olarak kaydedebilirsiniz.

 

windows phone 8 sdk save ringtone task

 

using Microsoft.Phone.Tasks;
private void save_ringtone(object sender, RoutedEventArgs e)
{
SaveRingtoneTask saveringtone = new SaveRingtoneTask();
saveringtone.Source = new Uri("appdata:/ringtone/Super_Mario_Ringtone.mp3");
saveringtone.DisplayName = "Super Mario Ringtone";
saveringtone.Show();
}

 

Örneklerin bulunduğu uygulamayı aşağıdaki linkte bulabilirsiniz. Kendinize iyi bakın, görüşmek üzere.

 

Wp8_yeni_launcher_ve_chooserlar.rar (896,53 kb)