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

Visual Studio Task List (Görev Listesi)

31. Ekim 2014 12:00by Garen Yöndem

Geliştirdiğimiz bireysel projelerde veya yıllarca geliştirilmesine devam edilen kurumsal uygulamalarda sık sık kodların arasında comment’ler görmeye veya görmeyi ummaya :) alışığız. Commentler çoğu zaman algoritmaların veya kodun akışının anlaşılabilmesi için kritik önem taşımaktadır. Her ne kadar mantıklı ve tutarlı isimlendirmelerle okunabilir ve kolay anlaşılabilir kod yazmak mümkün olsa da felaket senaryolarında comment yazmak can simidi görevi üstlenebiliyor.


Peki, yapılan eylemi anlatmanın dışında, yapılacak eylemi anlatmak için ne kullanmalı? Bu durumda işin rengi biraz değişiyor ve farklı ihtiyaçlar beliriyor. Bu ihtiyaçlardan bazıları; yapılacak iş projenin neresinde?, yapılacakların listesi nerede?, işlerin öncelik sırası nasıl?.


Visual Studio Task List (Görev Listesi) - garen.yondem.com


Visual Studio’da tam da bu tip ihtiyaçların giderilmesini hedefleyen ancak pek az developerın kullandığı Task List (Görev Listesi) penceresi mevcut. Task List penceresine Visual Studio menüsünden “View > Task List” yolunu takip ederken ulaşabilirsiniz.


Visual Studio Task List (Görev Listesi) - garen.yondem.com


Açılacak pencere ana hatlarıyla dropdown menüden ulaşabileceğiniz User Tasks ve Comments kısımlarından oluşuyor. User Tasks kısmında projenizle ilgili görevlerin listesine ulaşabilirsiniz. Yeni görev oluşturmak için sağ üstteki butonu kullanmalısınız. Görevi tanımladıktan/yazdıktan sonra üzerine sağ tıklayarak öncelik sırasını da belirleyebilirsiniz. Görevi tamamladıktan sonra ise yapmanız gerekeni yukarıdaki ekran görüntüsünden anlamışsınızdır. :)


Visual Studio Task List (Görev Listesi) - garen.yondem.com


Comments kısmı ise bende olduğu gibi size de User Taks kısmından daha kullanışlı gelebilir. Çünkü size kodun herhangi bir yerine bıraktığınız not’la ilgili, bulunduğu sayfa ve satır gibi daha detaylı veriler sunuyor. Ayrıca comment’in üzerine çift tıklayarak doğrudan commentin bulunduğu yere ulaşmanız mümkün.


Visual Studio’da önceden tanımlanmış ve Task List’in indeksleyebildiği üç adet comment keyword'ü mevcut. Bunlar; TODO:, HACK: ve UNDONE:. Ancak bu üç keyword’ün yanı sıra kendi custom keyword’lerinizi de tanımlayabilirsiniz


Visual Studio Task List (Görev Listesi) - garen.yondem.com


Task List için tanımlanmış keyword’lere Visual Studio menüsünden "Tools > Options > Environment > Task List" yolunu takip ederek ulaşabilirsiniz. Yeni bir keyword oluşturmak için öncelikle ismini belirlemeniz gerekiyor, ardından “Add” butonu aktif hale gelerek yeni keyword’ünüzü listeye eklemenize imkan sağlıyor.


Visual Studio Task List (Görev Listesi) - garen.yondem.com


Yeni keyword’ü ekledikten sonra onu da diğer keywordler gibi kullanmaya başlayabilirsiniz. Ancak bu aşamada özellikle şirket içi keyword oluşturmak isteyenlerin dikkat etmesi gerek bir konu var. Tanımlanan keyword’ler sadece local Visual Studio’da geçerli olacak. Dolayısıyla projeyi takım arkadaşınız kendi bilgisayarında açtığı zaman veya farklı senaryolarda proje farklı bir Visual Studio ortamında açıldığı zaman, Task List sizin oluşturduğunuz keyword ile yazdığınız commentlere ulaşamayacak. Ne yazık ki bu problemi aşmanın en sistematik yolu da Visual Studio ayarlarını export ederek diğer Visual Studio’ya taşımak.


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

Top Task List Uygulaması Artık Türkçe

28. Ekim 2013 09:00by Garen Yöndem

Kendime uygun uygulamayı ararken en çok istediğim özellik, gün içinde yapmam gereken görevleri olabilecek en basit ve anlaşılır şekilde geniş tile’da görebiliyor olmaktı. Kısa zaman önce keşfettiğim bu uygulamaya ile aradığım bütün özelliklere sahip oldum. Üstelik daha önce denediğim neredeyse bir düzine ‘görev listeleme’ ve ‘organize etme’ uygulamasında bulamadığım performansı Top Task List uygulamasında buldum. Tabi bu kadar beğenmiş olmamda uygulamanın live tile tasarımının ve hemen hemen istediğiniz her şeyi ana ekrana pinleyebiliyor olmanın payı büyük.


Uygulamayı çok beğendiğim için geliştiricisiyle (Vladimir Pogrebinsky) tanışmak ve bir şekilde katkıda bulunmak istedim. Bu arada uygulamanın yaklaşık 12 dile tercüme edilmiş olduğunu da hatırlatmak istiyorum. Ancak ne yazık ki Türkçe dil desteği yoktu ve Türkiye Store’da kullanıcılardan çok sayıda talep vardı. Dolayısıyla sizin de tahmin edebileceğiniz gibi, kolları sıvayıp bu yönde bir öneride bulundum ve olumlu cevap aldım.


Yaklaşık bir buçuk aydır devam eden seri mailleşme ve string transferi sürecinin sonunda nihayet bugün uygulama yeni özellikleri ve Türkçe dil desteği ile yayına alındı.



Uygulamanın ismi farklı bölgelerde tutarlı olması adına tercüme edilmedi. Ancak bu uygulama şu anda Windows Phone Türkiye Store’da Türkçe arayüze sahip indirebileceğiniz en iyi görev yöneticisi uygulaması. Dolayısıyla denemenizi tavsiye ederim. Gözden kaçırdığım rekabetçi, güzel bir uygulama varsa yorumlarda yazın lütfen.

top task list windows phone tag- garen.yondem.com

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)

Windows Phone 8 SDK'deki Yeni Kontroller ve Launcher, Chooser Task'leri

24. Mart 2013 19:50by Garen Yöndem

Daha önce Windows Phone 7.x SDK’deki Task’lerin bir kısmından bahsetmiştik. Bu yazıda ise Windows Phone 8 SDK ile yeni gelen / güncellenen, kontroller, chooser’lar ve launcher’lara giriş yapacağız.

 

Yeni Launcher ve Chooser Taskleri ;

SaveAppointmentTask: Takvimde yeni buluşma yaratma sayfasına yönlendirir.

MapsTask: İşletim sistemi içerisinde bulunan native harita uygulamasına yönlendirir.

MapsDirectionsTask: Native harita uygulamasını yol tarifiyle açar.

MapDownloaderTask: Native harita uygulamasında harita indirme sayfasını açar.

MapUpdaterTask: Native harita uygulamasını açar ve otomatik olarak çevrimdışı haritaların güncellemelerini kontrol eder.

ShareMediaTask: Medya dosyası paylaşma sayfasına yönlendirir.

SaveRingtoneTask: Telefona zil sesi kaydetme sayfasına yönlendirir.

 

Yeni Kontroller ;

MapsControl: Eskiden kullandığımız Bing Maps’in aksine vektör tabanlı bir harita sunuyor, dolayısıyla daha hızlı render ediliyor. Aynı zamanda aydınlık ve karanlık tema seçenekleri de mevcut.

 

Xaml dosyanızda kullanmak isterseniz ;

 

xmlns:maps="clr-namespace:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps"

 

şeklinde dosyanıza eklemeniz gerekiyor.

 

LongListSelectorControl: Windows Phone 7.x SDK’ini kullandığımız zaman uygulamalarımıza jump-list ekleyebilmek için Windows Phone Toolkit library’sine ihtiyacımız vardı. Artık bu kontrol bize Windows Phone 8 SDK ile sunuluyor.

Bunlara ek olarak Pivot ve Panorama kontrollerinde uygulama içerisindeki performans arttırmak ve bellek kullanımını düşürmek için detaylı optimizasyon çalışmaları yapıldığı da söylentiler arasında.

 

Sıradaki yazımda burada bahsettiğimiz bazı task’lere daha detaylıca bakacağız.

Görüşmek üzere. Takipte kalın!