17 Sep

Menggunakan TombStone di Windows Phone

ketika status aplikasi kita sedang dalam status TombStone, maka kita dapat melakukan penyimpanan Application dan Page State. Fungsinya ketika halaman dilakukan reload maka kita dapat melakukan reload data (state) sebelumnya.

Untuk mempermudah proses management TombStone State maka kita dapat membuat class baru dengan nama StateManager. Kelas tersebut dapat membantu kita untuk melakukan serialisasi data, kemudian masuk ke TombStone State, dan melakukan deserialisasi data ketika sudah kembali seperti semua.

Sebagai contoh kita ingin menyimpan data-data berikut:
1. PostingTerbaru
2. Komentar
3. Galeri
4. Berita

maka kita akan dapat menyimpan data-data tersebut dalam TombStone state dan mereload kembali ketika dibutuhkan.

Cara menyimpan data, kita dapat melakukan pemanggilan perintah tersebut pada event: OnNavigatedFrom():

protected override void OnNavigatedFrom(NavigationEventArgs e)
{
    this.SaveState("PostingTerbaru", PostingTerbaru);
    this.SaveState("Komentar", Komentar);
    this.SaveState("Galeri", Galeri);
    this.SaveState("Berita", Berita);
}

Berikutnya jika kita akan memanggil kembali kita dapat menaruh kode berikut pada OnNavigatedTo():

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    PostingTerbaru = this.LoadState<ObservableCollection<RssItem>>("PostingTerbaru");
    Komentar = this.LoadState<ObservableCollection<RssItem>>("Komentar");
    Galeri = this.LoadState<ObservableCollection<RssItem>>("Galeri");
    Berita = this.LoadState<ObservableCollection<ImageItem>>("Berita");
}

Berikutnya adalah isi dari Class StateManager:

public static class StateManager
{
    public static void SaveState(this PhoneApplicationPage phoneApplicationPage, string key, object value)
    {
        if (phoneApplicationPage.State.ContainsKey(key))
        {
            phoneApplicationPage.State.Remove(key);
        }

        phoneApplicationPage.State.Add(key, value);
    }

    public static T LoadState<T>(this PhoneApplicationPage phoneApplicationPage, string key)
        where T : class
    {
        if (phoneApplicationPage.State.ContainsKey(key))
        {
            return (T)phoneApplicationPage.State[key];
        }

        return default(T);
    }
}

17 Sep

Testing on Windows Phone Device

Langkah-langkah untuk melakukan testing di WIndows Phone Device
1. Windows Phone sudah teregistrasi di dalam Panel AppHub Developer
2. Windows Phone sudah terkoneksi di dalam komputer developer
3. Jalankan Software Zune (sebelumnya sudah di install dan di sync ke Device tujuan)
4. Pilih Windows Phone Device pada Visual Studio
5. Tekan F5 atau pilih Icon Run.