21 Mart 2013 Perşembe

LifeLoggingCCPhone - A Windows Phone 8 Based LifeLogging Application

LifeLoggingCCPhone - Windows 8 Tabanlı Bir Yaşamgünlüğü Uygulaması

"Yaşam Boyu Öğrenme Deneyimlerinin Yönetimi Amacıyla Bir Dijital Yaşam Günlüğü Sisteminin Geliştirilmesi ve Uygulanması" isimli projede Windows Phone 8 ortamında çalışan bir yaşamgünlüğü uygulaması tasarlamaya başlamıştım. Sözkonusu uygulama çalıştırıldığında telefonun arka kamerasından 30 saniyede bir görüntü almakta ve bu görüntüleri telefonun yerel Resim Rulosu klasörüne kaydetmekteydi. Elimde bir Windows Phone 8 telefon olmadığından dolayı uygulamayı sadece Emülatör üzerinde test edebiliyordum. 12 Mart 2013 tarihinde proje kapsamında istenen Nokia Lumia 920 cep bilgisayarları geldi. Böylece LifeLoggingCCPhone yazılımını gerçek telefon üzerinde deneyerek geliştirmeye başladım.


Uygulamayı gerçek telefon üzerinde çalıştırabilmem için önce kendime bir Windows Phone Developer Account oluşturdum. Bu amaçla Microsoft’a kredi kartı ile bir yıllık hesap ücreti olarak 180 TL ödeme yaptım. Windows Phone uygulamalarımı aynı anda 3 telefona yükleyebilirim. Kendi telefonumu “Mehmet Emin Mutlu Windows Phone” olarak tanımladım. Daha sonra kendi telefonumu "https://dev.windowsphone.com/en-us/dashboard" sitesinde "remove" yaparak projedeki uygulayıcılara ait olan "Ayşe Peri Mutlu Windows Phone", "Ilker Kayabas Windows Phone" ile "Buket Kip Kayabas Windows Phone" oluşturacağım. Bu amaçla Windows Phone SDK 8.0 altındaki Developer Phone Registration uygulaması kullanıldı.

LifeLoggingCCPhone uygulamasını “Mehmet Emin Mutlu Windows Phone”’a yüklemek için Windows Phone SDK 8.0 altındaki  Windows Phone Application Deployment uygulamasını kullandım. Bu amaçla önce uygulamayı Release klasörüne Build yaptım. Daha sonra Device seçeneği ile Release klasöründeki XAP dosyasını tanıtarak telefona deployment işlemini gerçekleştirdim.

Geliştirme ortamında esneklik sağlandığından dolayı uygulamayı daha fazla geliştirmeye karar verdim. Öncelikle sadece bir sayfadan oluşan uygulama yapısını terkederek Panorama yardımıyla üç sayfalık bir yapıya geçtim. Birinci sayfada resim kaydetme işlemi gerçekleştirilecek, ikinci sayfada kaydedilen görüntüler listelenebilecek, üçüncü sayfada ise kayıtlı resimler kullanıcının SkyDrive sitesine gönderilebilecek.

SkyDrive'a gönderme yapabilmek için Microsoft Live SDK 5.3'ü yükledim. Geliştirilen telefon uygulamalarının SkyDrive'a erişebilmesi için uygulamanın Live Connect Developer Center sitesinde Windows Live ile ilişkilendirilmesi gerekmekte. Windows Phone uygulamaları için http://manage.dev.live.com/ sitesinde bu işlem yapılabilmekte. Windows Store uygulamaları ise önce Windows Store Dev Center Dashboard (https://appdev.microsoft.com/StorePortals/en-us) sitesinde tanıtılmalı, sonra Windows Live ile ilişkilendirilmelidir.

Live SDK 5.3 Windows Phone 8'i desteklemesine rağmen Phone 7.1 için çalışan pek çok API Phone 8'de çalışmamakta. LiveConnectClient'a ait UploadCompleted, GetCompleted gibi "event"'lar kaldırılmış durumda. Bu durumdan dolayı dosyaların SkyDrive'a yükleme işleminin sona ermesini kontrol edemiyorum. Bu sorun gönderilen dosyaları gönderim tamamlandıktan sonra silmemi engelliyor. Gönderilen dosyaların silinmesi işlemi gönderme tamamlandıktan sonra uygulamadan çıkıp tekrar girerek gerçekleştirebiliyorum. Bu sorunu çözmek için uygun örneklerin yayınlanmasını bekleyeceğim.

Bir başka sorun ise SkyDrive'da klasör açabiliyor olmama rağmen, resimleri bu yeni klasör yüklemeyi sağlayamamış olmam. Örneklerin çoğu REST yapısındaki örnekler. "me/skydrive" üzerinde açılmış bir klasöre dosya yüklemeyle ilgili C# ya da VB.Net ile yazılmış bir örneğe rastlamadım. Bu nedenle şu aşamada görüntüleri SkyDrive klasörünün köküne yüklüyorum. İlgili örneklere rastladığımda alt klasöre yükleme özelliğini ekleyeceğim.





Windows Phone uygulamalarının ekran görüntüleri Visual Studio üzerinde Windows Phone Emulator ile alınabilmektedir. Emulatör Windows Phone işletim sistemini büyük ölçüde gerçeğe uygun olarak simule edebilmesine rağmen telefonun device'ları için zayıf destek sunmaktadır. Bu nedenle kamera uygulamalarında kameradan gelen görüntü için yapay bir görüntü oluşturmaktadır. 

LifeloggingCCPhone uygulamasının  Windows Phone üzerinde sürekli çalışması için kilit ekranının zaman aşımı değeri "Asla" yapılması gerekmektedir. Çekim esnasında gelen telefonlar ve diğer bildirimler çekimi engellemememektedir. Çekim esnasında kullanıcı telefon etmeye çalışırsa "Başlangıç" ekranına dönmesi gerektiğinden dolayı uygulama çalışmasını sona erdirecektir. Ayrıca çekim esnasında tuşları kullanarak fotoğraf çekilmek istendiğinde fotoğraf çekimi devreye girmeyecektir.

Hiç yorum yok:

Yorum Gönder