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

Windows Phone Email Compose Task Kullanımı ve Uygulama Versiyon Bilgisini Alma Yöntemi

4. Temmuz 2012 13:50by Garen Yöndem

Uzun zamandır blogu ihmal ettiğimi fark ettim. Hem bu durumu telafi etmek hem de bir önceki blog postumda daha sonra bahsetme sözü verdiğim bir diğer kullanıcı yorumları alabilme yöntemi olan EmailComposeTask’a da değinmek istiyorum. Bu taski kullanıcı yorumlarını almak ve uygulamanız içersinde dilediğiniz bir bilgiyi kullanıcının paylaşabilmesine izin vermek için kullanabilirsiniz. Her ne kadar konu paylaşmak olunca artık e-mail göndermek; Facebook ve Twitterın yanında zayıf bir eleman olarak kalsa da pek çok yönden e-maillerin daha kalıcı olduğu aşikar.

Daha önceki yazımda MarketplacReviewTaski kullanırken projemize eklediğimiz  Microsoft.Phone.Tasks namespaceini tekrar kullanacağız. EmailComposeTask sayesinde gönderilecek e-mail’in to, subject, body gibi propetylerine rahatlıkla ulaşabilirsiniz.

using Microsoft.Phone.Tasks;
EmailComposeTask email = new EmailComposeTask();
email.To = "mailto:[email protected]";
email.Cc = "[email protected]";
email.Bcc = "[email protected]";
email.Subject = "Konu";
email.Body = "Metin";
email.Show();

Şayet e-mail taskini kullanıcı yorumları almak için kullanıyorsanız olası şikayet maillerinde kullanıcı’nın cihazındaki uygulamanızın sürümünden de haberdar olmak isteyebilirsiniz. Uygulamanızın versiyon bilgisine ulaşabilmek için ufak bir reflection hareketi yapabiliriz.

using System.Reflection;
var bilgi = new AssemblyName(Assembly.GetExecutingAssembly().FullName);
var versiyon = bilgi.Version;

Böylece uygulamanızın AssemblyInfo.cs dosyasında bulunan AssemblyVersion bilgisine ulaşabilirsiniz.

Tekrar görüşmek üzere, kendinize iyi bakın.

Windows Phone Marketplace Review Task ve 805a0194 Hatası

4. Haziran 2012 11:00by Garen Yöndem

Windows Phone uygulamalarınızı geliştirip Marketplace'de publish ettikten sonra isteyebileceğiniz en güzel şey kullanıcıların geribildirimleri olacak. Kullanıcıların yorumlarını alabilmelisiniz ki talepler doğrultusunda uygulamanızı bir sonraki sürümünde daha stabil ve zengin hale getirebilin. Bu işlem için gelecek blog postlarımda bahsedeceğim farklı yöntemler de mevcut. Ancak bugün çok daha önemli olan Marketplace Review Taskından bahsedeceğim. Marketplace Reviewları sizin için çok önemli olacak çünkü orası sadece kullanıcıların yorumlarına ulaşabileceğiniz bir yer değil aynı zamanda sizin ugulamanızın da bir nevi sabıka kaydı. Bir başka deyişle, bölgesel olarak tüm kullanıcıların sizin uygulamanıza dair daha önce uygulamanızı kullanmış olanların yorumlarını görebilecekleri bir sayfa. Sizin bu sayfaya hiçbir şekilde müdahale hakkınız da yok.

 

Marketplace Review Task'ı uygulamalarınıza ekleyebilmek için ilk olarak Microsoft.Phone.Tasks namespaceini uygulamanızın en başına yerleştirmiş olmanız gerekiyor.

 

using Microsoft.Phone.Tasks;
MarketplaceReviewTask marketplaceReviewTask = new MarketplaceReviewTask();
marketplaceReviewTask.Show();

 

Yukarıdaki kod parçası ile kullanıcıyı uygulamanız içerisinden direk olarak Marketplace içindeki, sadece sizin uygulamanızla ilgili yorum yapılabilecek sayfaya ulaştırabilirsiniz. Marketplace Review Task'ı uygulamanızda kullanırken dikkat etmeniz gereken nokta ise bilgisayarınızda debug ederken bu taskı çalıştıramayacak olmanız ve karşınıza Error code: 805a0194 adında bir hatanın çıkacak olması.

 

Garen Yöndem Marketplace Review Task ve 805a0194 Hatası

 

Bu kodunuzun hatalı olduğu anlamına gelmiyor. Marketplace Review Task sadece uygulama Marketplace'e publish olduktan sonra çalışır duruma geliyor.

Windows Phone'da Frame Rate Sayaclarını Kaldırmak

31. Mayıs 2012 10:00by Garen Yöndem

Frame rate sayaçları Windows Phone uygulamalarınızda otomatik olarak açık gelir. Bu sayaçları uygulamanızı emülatörünüzde debug ettiğinizde görebilirsiniz. Dikkat etmeniz gerek nokta ise, uygulamalarınızı marketplace'e submit ederken frame rate sayaçlarını uygulamanın ekran görüntülerinde açık bırakmamak. Çünkü böyle bir durumda Microsoft uygulamaları approve etmiyor. Marketplacede approve olabilmek için ekran görüntülerinden bu sayacı yok etmeniz gerekiyor.

 

Çözümü oldukça kolay, uygulamanızı Ctrl + F5 yöntemiyle emülatörünüzde çalıştırıp ekran görüntülerinizi alabilirsiniz. Diğer yöntem ise uzun yoldan solutionunuzda App.xml'ın altında bulunan App.xml.cs sayfasını açıp

 

Application.Current.Host.Settings.EnableFrameRateCounter = true;

 

propertysini false'a çevirmek. Ancak, frame rateler büyük ölçekli projelerde çalışırken developerlar için oldukca önemli veriler sunuyor. Dolayısıyla sürekli uygulamanın koduna girip frame rate propertysini true/false yapmaktansa bahsettiğim ilk yöntemi kullanmanız oldukça vakit kazandıracaktır :) .

 

Frame Rateler ile ilgili daha detaylı bilgi için ağabeyimin blogundaki şu makalesine göz atabilirsiniz.

 

Görüşmek üzere, takipte kalin.

Windows Phone SDK 7.1.1'in Getirileri ve 256-Mb Ram Taşıyan Cihazlar için Uygulama Geliştirmek

26. Mayıs 2012 11:00by Garen Yöndem

Windows phone SDK 7.1.1 güncellemesi bildiğiniz üzere bir buçuk ay önce yayınlandı. Fakat yeni SDK'in getirdiklerinden oldukça az kişi haberdar durumda. Microsoftun gelecek planları arasında şüphesiz Windows Phone işletim sistemini olabildiğince düşük konfigürasyonlar altında en yüksek verimlilik ile çalıştirabilmek de yer alıyor. Üreticiler için bu yıl başında revize edilen minimum Windows Phone cihaz özellikleri listesi de bunun en önemli kanıtı. Artık 256Mb RAMli ve 1GHz den düşük işlemcilere sahip Windows Phone cihazlarını görmeye hem tüketici olarak hem de developer olarak hazır olmamız şart. Lakin uygulamalarımız yeni cihazlarda düşük konfigürasyonlar sebebiyle çatlayabilir, patlayabilir.

 

Windows Phone SDK 7.1.1 download (SDK'i buradan indirebilirsiniz)

 

Kısaca yeniliklerin üzerinden geçecek olursak, yeni bir propertymiz, emulatörümüz ve bir de kötü haber var.

 

Artık uygulamamızda yeni bir property olan ApplicationWorkingSetLimit propertysini kullanarak 256Mb ramli cihazları tanıyıp onalara göre uygulamalarımıza şekil aldırabiliriz. Bir başka deyişle Ramimize göre ayağımızı uzatabiliriz :).

 

using Microsoft.Phone.Info;
long miktar = (long)DeviceExtendedProperties.GetValue("ApplicationWorkingSetLimit");
if (miktar < 268435456L)    //268435456 byte = 256 Mb
{
ramkac.Text = ("This device has 256-Mb ram");
}
else if (miktar > 268435456L)
{
ramkac.Text = ("This device has 512-Mb ram"); 
}

 

Bir diğer yenilik ise Emulatörümüzle ilgili. Artık 512Mb'ın yanında bir de 256Mb sanal Ram'e sahip emulatörümüz var. Uygulamarımızın 256Mb cihazlarda nasıl performans göstereceğini bu emülatör ile test edebiliriz. Son olarak, mevcut Windows Phone uygulamarımızda Generic Background Agent kullanıyorsak 256Mb Ramli cihazlar bu agentları ne yazık ki desteklemiyor. Onları da duruma göre kaldırmak gerekecek.

 

Şu anda 256Mb ramli cihazların piyasadaki tek örneği Nokia Lumia 610. Ancak yakın gelecekte daha geniş yelpazede cihazlar göreceğiz. Ama bu durum sizin uygulamalarınızın 256Mb ramli cihazları desteklemek zorunda olduğu anlamına gelmiyor. Bu cihazları desteklemek her ne kadar uygulamalarınızın daha geniş kitlelere ulaşmasını sağlayacak olsa da dilerseniz WMAppManifest.xml dosyasını duzenleyerek uygulamanızın 256Mb ramli cihazlar tarafından Marketplacede görünmemesini de sağlayabilirsiniz.

 

Aşağıdaki kodu uygulamanızın WMAppManifest.xml dosyansına eklediğiniz takdirde uygulamanızın 90Mb rame ihtiyacı olduğunu kod tarafında belirtmiş olcaksınız. Bu sayede Marketplace, 256Mb rame sahip cihazlara sizin uygulamanızı gösteremeyecek.

 

<Requirements>
<Requirement Name="ID_REQ_MEMORY_90" />
</Requirements>

 

Uygulama solutionını indirebilirsiniz

 

ornek.rar (65,02 kb)

 

Takipte kalın, kendinize iyi bakın.

Windows Phone 32-Bit Renk Desteği

11. Mayıs 2012 20:40by Garen Yöndem

Windows Phone’un 7.0 sürümünde ne yazık ki işletim sistemi sadece 16-bit renk derinliğini destekliyordu, öyle ki uygulamanın arayüzünü 32-bit olarak hazırlamış olsanız dahi tüm cihazlar 16-bit gösteriyordu. Bu durum Mango Update’i ile değişiyor. Gelin şimdi 32-bit desteğini uygulamalarımıza nasıl ekleyebileceğimize göz atalım.

 

Her ne kadar metro design prensiplerine ters olsa da, örneğimizde gradientli resimleri Windows Phone üzerinde nasıl bilgisayarimizda gördüğümüz gibi gösterebileceğimizi inceleyeceğiz.

 

Ilk olarak Expression Blend'de boş bir Windows Phone uygulaması oluşturuyoruz.

 

Garen Yöndem Windows Phone 32-Bit Renk Desteği

 

Öncelikle Blend bir kenarda dursun. Uygulamaya bir arkaplan resmi lazım. Ben bu tür işler için Fireworks kullanıyorum ama siz hakim olduğunuz herhangi bir image editing toolu seçebilirsiniz.

 

Garen Yöndem Windows Phone 32-Bit Renk Desteği

 

Windows Phone’a tam oturacak boyutta boş resmi Fireworks ile oluşturduktan sonra ortaya bir rectangle atıp gradient özellikleri veriyoruz. Daha sonra resmi proje dosyamıza ekliyip Blende geri dönebiliriz. Blendde resmi uygulamanın arka planına atıp test için emulatorde calıştıralım.

 

Garen Yöndem Windows Phone 32-Bit Renk Desteği

 

Gördüğünüz gibi Blendde oluşan görüntü ile emulatorde gördüğümüz arasında dağlar kadar fark var. Işte Mango Updateden önce gradient kullanan uygulamalar bu şekilde gözüküyorlardı. Oysa bu problemin çüzümü artık çok basit. Solution Explorer’dan projenin Properties klasöründe bulunan WMAppManifest.xml dosyasını açıyoruz….

 

Garen Yöndem Windows Phone 32-Bit Renk Desteği

 

ve tagının içine BitsPerPixel="32" kodunu yerleştirip problemi çözüyoruz.

 

Garen Yöndem Windows Phone 32-Bit Renk Desteği

 

Uygulamamızı kaydedip tekrar emulatorde çalıştırdığımızda bizi öncekinden çok daha farklı bir manzara bekliyor.

 

Garen Yöndem Windows Phone 32-Bit Renk Desteği

 

Artık uygulamamızı Blendde nasil görüyorsak emulatorde de aynı şekilde görebiliriz.

 

Yine de aklınızda bulunsun, Microsoft’un uyarıları çerçevesinde 32-bit görseller içeren uygulamalar genel performans ve batarya verimliliği sorunları yaşayabiliyor. Dikkatli olmakta fayda var.

 

Takipte kalın, kendinize iyi bakın.