Windows Mobile’da Widget’in Anatomisi

http://www.pocketpc.gen.tr/wp-content/yuklemeler/2009/06/windows-mobile-65-widget.jpg

Geçtiğimiz aylarda Windows Mobile 6.5 için basit bir widget oluşturma rehberi yayınlamıştık. Basit olduğu için ayrıntılara pek giremedim. Ancak geçtiğimiz günlerde Windows Mobile takım blognda güzel bir yazı dizisi başladı. İlk adımda değinilen konu da kusursuz bir görüntüleme için uygulanacak işlemler. Kısaca değinelim;

Nasıl?

Windows Mobile için yazılan her uygulama farklı ekran tiplerine uyum sağlamak adına içinde bazı kodlar taşır. Bu kodlar ekran çözünürlüğü ve DPI değerleri ile belirlenir ve otomatik olarak algılanarak ekrana yansıtılır. Bu standart bir 240×320 piksellik bir ekrana oturan ve sorunsuz görüntülenen bir uygulamanın aynı şekilde 480×640 yada daha farklı ekran çözünürlüklerinde ve farklı DPI değerlerine sahip ekranlarda aynı uyumu sağlaması içindir. Bu söylediklerimiz Windows Mobile 6.5 widgetleri için de geçerli. İçeriği ekrana tam oturmamış bir widgeti kontrol etmek için büyük çabalar sarfetmek yerine gelişim süresinde widget içine eklenecek bir kaç basit kod ile hazırlanan içeriğin tüm ekran çözünürlüklerinde kusursuzca görüntülenmesi sağlanır.

http://windowsteamblog.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsphone/bb264320.wm6_5F00_2enusMSDN.101_5F00_58DA8761.png

Windows Mobile 6 Ekran Çözünürlükleri Tablosu

HiDPI ve LoDPI

En basit mantıkla; tabloda da yer alan LoDPI ya da HiDPI değerlerine bakalım. Standart 96DPI’lık bir ekranda (240×240, 240×320, 240×400 piksel) sorunsuzca görüntülenen bir widget 96DPI’dan yüksek bir DPI değerine sahip bir ekranda daha küçük görünür. Bunu düzenlemek için 2 CSS dosyası (HiDPI.css ve LoDPI.css) oluşturulur. Bu dosyalar widgetin çalışma sürecinde ekran tipinizi belirleyerek kusursuz görüntüleme sunar. Algılama işlemini bir örnekle gösterelim;

   1: function applyCSSStyle() {

   2:     var width = document.documentElement.clientWidth;

   3:     var cssFile = "css/LoDPI.css";

   4:     if (width >= 480) {

   5:         // The document is wider than 480 pixels

   6:         // it must be a High DPI device

   7:         cssFile = "css/HiDPI.css";

   8:     }

   9:

  10:     // Add the correct CSS style sheet to the document

  11:     var headID = document.getElementsByTagName("head")[0];

  12:     var cssNode = document.createElement('link');

  13:     cssNode.type = 'text/css';

  14:     cssNode.rel = 'stylesheet';

  15:     cssNode.href = cssFile;

  16:     cssNode.media = 'screen';

  17:     headID.appendChild(cssNode);

  18: }

  19:

  20: function onLoad() {

  21:     applyCSSStyle();

  22: }

Donanımın Kullanılması

Widget API’sinde Widgeti sadece dokunmatik ekrandaki softkey’ler ile kontrol etmenin yanısıra donanımsal tuşlar ile de kontrol etmek için widget.menu.append (menuItem) değerine right SoftKey değeri eklenerek sağlanır. Sol tş değeri daima sabit eylemleri gerçekleştirir, değeri değiştirilemez ya da kaldırılamaz. Bu tuş genelde widget’ten çıkış işlemini veya geri işlemini gerçekleştirir.

  • RSS
  • Print
  • FriendFeed
  • Twitter
  • Technorati
  • Digg
  • del.icio.us
  • Facebook
  • Mixx
  • StumbleUpon
  • Netvibes
  • LinkedIn
  • Google Bookmarks
  • Tumblr
  • Yahoo! Buzz
  • Live


Windows Mobile 6.5 Widget Oluşturma

Windows Mobile 6.5 Widget

Bu yazı Windows Mobile 6.5 ile sisteme entegre edilen widgetlerin temel anlamda nasıl çalıştığını ve hazırlandığı anlatır.

Gerekli araçlar;

İlk Adım

Öncelikle hazırlayacağımız widgeti test etmek için Windows Mobile 6.5 emulatörünü indirip bilgisayarımıza kuruyoruz. Emulator ile senkronizayonu sağlamak için Mobil Aygıt Merkezi yada ActiveSync’de gerekli ayarlamayı (DMA bağlantıya izin vererek) aşağıdaki şekilde yapıyoruz.

http://pgtwnw.bay.livefilestore.com/y1ps0q7VW13cB77lTBLVF4XkgJVOV6jBdjUDxxxP2h34IADOqn4XMOHkzqQ8h1oc5gbLFMwT4vye3uMLK0ISgHGLfUQt7F_69BD/WMDC_Config.png

Bağlantı ayarımızı yaptıktan sonra önce C:\Program Files\Microsoft Device Emulator\1.0 dizini altında oluşan Device Emulator Manager’ı çalıştırıyoruz. Ardından Windows Mobile 6.5 emulatörünü çalıştırıp Device Emulator Manager penceresinde Refresh ile bağlanılmasını istediğimiz emulator üzerinde sağ tuşa basıp Cradle seçeneği ile bağlantıyı sağlıyoruz.

http://pgtwnw.bay.livefilestore.com/y1pVuOpoRNAlHZvW5qnsyJLmpBbSaMwxu8zKbKQtVEwqRynaHQFICdQ_94Rb4xk_Tm8bBxleVVvzgvbL--mZB03zWdnHsz9Se8N/devemmanager.png

Widget İçeriği

  • Oluşturulacak Dosya: widget.htm

Temel HTML bilgisine sahipseniz bu iş sizin için epey kolay olacaktır. Kod yazabileceğiniz ve dosyayı htm şeklinde saklayacak bir uygulamaya sahip değilseniz not defterini kullanarak  farklı kaydet seçeneği ile htm olarak dosyayı oluşturabilirsiniz. Ben en basit olanından anlatayım; Yeni bir metin belgesi oluşturup örnek olarak aşağıdaki kodları ekleyiniz;

<html>

<head>

<title>Cool Widget!</title>

</head>

<body>

I’m a cool windows mobile 6.5 widget

</body>

</html>


  • Oluşturulacak Dosya: config.xml

Metin belgesine kodları ekledikten sonra Dosya > Farklı Kaydet seçeneği ile dosya adını widget.htm olarak yazıp kayıt türünü tüm dosyalar olarak seçin. Kaydet dediğimizde dosya htm olarak kaydedilecektir. Oluşturduğumuz bu dosya widget içerisinde görünencek sayfadır. Tabi bu sayfayı widget haline getirmek yani paketlemek için kullanacağımız ayrı bir bilgilendirme dosyası daha kullanacağız. Bu kodlar widgetin adını, internet erişimine iznini, widget içinde görüntülenecek olan htm dosyasını, başlat menüsünde oluşturulacak kısayol için ikon ve açıklama içeriyor.;

<?xml version=1.0 encoding=utf-8 ?>

<widget version=1.0

xmlns=http://www.w3.org/ns/widgets

id=“”>

<name>My first widget</name>

<content src=widget.htm type=text/html />

<access network=true />

<icon src=icon.png/>

<description>This is my first widget,

it won’t make a lot of money on the

marketplace but at least is cute!</description>

</widget>


Kodları yeni bir metin belgesi oluşturup aynı şekilde kopyalayın. Dosya > Farklı Kaydet seçeneği ile dosya adını  config.xml olarak yazıp kayıt türünü tüm dosyalar olarak seçin. Kaydet deiğimizde XML dosyası olarak hazır bir ayar dosyasına sahip olacağız.

  • Oluşturulacak dosya: icon.png

Widgeti neredeyse bitti ancak erişimde başlat menüsüne konacak kısayol için bir simge dosyası hazırlamamız gerek. Oluşturacağımız ikon için boyut 57 x 57 piksel, dosya türü PNG olacak. Yarı saydam bir arkaplan için farklı uygulamalar kullanarak ikon dosyanızı hazırlayabilirisiniz.

Widgeti Paketleme

  • Oluşturulacak dosya: widget.wgt

Şu anda elimizde 3 adet dosya var. Bunlardan birincisi widget.htm ikincisi config.xml üçünüsü ise icon.png. Sıra geldi bu 3 dosyayı tek dosya haline getirmeye. Winrar yüklü bilgisayarınızda bu 3 dosyayı seçip Arşive Ekle.. seçeneği ile WinRar sıkıştırma penceresini açalım. Arşivlenecek  dosya adına Widget yazalım. Sıkıştırma türü olarak zip seçelim ancak burada dikkat etmemiz gereken nokta zip seçeneğini seçtikten  sonra dosya adının sonunda Widget.zip uzantısını Widget.WGT olarak değiştireceğiz. Arşivle dediğimiz zaman ise WGT uzantılı tek bir dosyay sahip olmuş olacağız.

http://pgtwnw.bay.livefilestore.com/y1pvAGRiDYWDvYhCwNhozWGypSn_NO5CK8u00PLD-nHrzeCOLjHvhV1IQGXMroLGN5j5KiPuOJ76OHeNrCITdXhzA/explorer_1.png

En başta ayarladığımız ve bağlandığımız emulatöre My Documents içine oluşturduğumuz widget.wgt dosyasını gönderelim. Emulator bağlı ve senkronizasyona hazır olduğu için bilgisayarınızdaki kısayoldan direk emulatöre dosyayı göndereceksiniz. Daha sonra emulatörde;

widget explorer Windows Mobile 6.5 Widget Oluşturma

gönderdiğimiz widget.wgt dosyamıza tıklayarak kurulumu gerçekleştirelim. Kurulumudan sonra Başlat menüsünden kısayolumuzu kullanarak widgetimizi açabiliriz. İşte bu kadar.

widget running Windows Mobile 6.5 Widget Oluşturma

  • RSS
  • Print
  • FriendFeed
  • Twitter
  • Technorati
  • Digg
  • del.icio.us
  • Facebook
  • Mixx
  • StumbleUpon
  • Netvibes
  • LinkedIn
  • Google Bookmarks
  • Tumblr
  • Yahoo! Buzz
  • Live