Makale Özeti

Bir uygulama geliştirirken, en çok dikkat etmemiz gereken konu uygulamanin kullanımının kolay olmasıdır. Ama burdaki soru kime göre kolay olmalıdır? Biz geliştiricilerin en çok yaşadıgı sorunlardan bir tanesidir, yaptıgımız uygulamaların iş-akışına göre pratik, ama kullancinin kullanılabilirligi açısından sıkıntılı olması. İşte bu makalede bir kaç basit teknik ile nasil kullanici dostu programlar yapabiliriz, inceleyelim.

Makale

Merhabalar, bu yazımızda mobil uygulamalar geliştirirken dikkat etmemiz gereken bir kaç püf noktadan bahsetmek istiyorum. Mobil uygulamalar geliştirmek kadar onu kullanacak kişilerin profilide çok iyi bilmekte fayda var. Çünkü firmalar bu tür mobil çözümler isterken onu kullanacak personelininde, ekstra bir egitim maliyeti getirmeden ve saha da sorun yaşamadan uygulamayi tam verimle kullanmasini isterler. İşte biz geliştiriceler bu konulari göz önünde bulundurarak uygulamalarimiza kullanim kolayliklari eklersek, bu bizim ve projenin sahibi firmanin menfaatine olacaktir.

Bu makalede esas alacagim PocketPC platformudur.

1- Tam Ekran Formlar

    İlk konumuz, programı kullanicak personelin tamamiyle işine konsantire olabilmesi için programımızı tam ekranda çalıştırmak olacaktir. Hem bu bizim için küçük olan form sahasının genişlemesini saglayacak hemde personelin yanlışlıkla veya bilerek kullancagi uygulamadan dikkatinin başka programlara kaçmasını engelleyecektir.

    Bunun için, ilk olarak formu maximize ediyoruz ve BorderStyle i iptal ederek yalın ve düz bir form elde ediyoruz:

  this.WindowState = FormWindowState.Maximized;
  this.FormBorderStyle = FormBorderStyle.None;

    Daha sonrada yukardaki controlleri ve boş formdaki standart menuyu iptal ediyoruz:

  this.ControlBox = false;
  this.Menu = null;

2- TextBox üzerine Focus olunca sanal klavyenin aktif olmasi

    Programimizin kullanılabilirligini arttırmak için ve sahada programımızı kullanan kişinin bir veri girmek üzere bir TextBox'a stylus ile focus landiginda tekrar aşagıdan sanal klavyeyi açmak için ugraşmasın, ve tabii ki sanal klavyemiz otomatik aktif olsun ve ordaki focus kalktıgında sanal klavyemiz otomatik gizlensin. Bunun için ilk olarak formun üstüne ToolBoxdan bir InputPanel ekliyoruz.

Ekledikten sonrada bu InputPanelin enable özelligini False yapiyoruz. Daha sonrada bu input paneli aktif etmek icin, o TextBoxun GotFocus özelligini kullanicaz. Ben bütün TextBoxlarin aynı özellige sahip olmasini istiyorum, o yüzden hepsinin ortak kullanacagi bir event yazıyorum.


private void txt_GotFocus(object sender, System.EventArgs e)
{
inputPanel1.Enabled = true;
}


Eventin adi txt_GotFocus ya bunu Visual Studiodan eklemek istedigmiz TextBoxun GotFocus eventine göstermeliyiz yada bu kodu namespacemizin içine yazmaliyiz

txt_adi.GotFocus += new System.EventHandler(this.txt_GotFocus);
txt_adi.LostFocus += new System.EventHandler(this.txt_LostFocus);

Bir diger istedigimiz şey ise focus kayboldugunda inputpanelin kendiliginden kaybolmasi, onun içinde textboxun LostFocus eventini kullanicaz.

private void txt_LostFocus(object sender, System.EventArgs e)
{
inputPanel1.Enabled = false;
}

3- Numeric KeyPad

    Belki de PocketPC nin en önemli handikapı saha da iken sanal klavyenin kullanılmasinin biraz zor olmasi. Veya kullanicak kişilerin bu konuda pek yeteneklerinin olmamasindan (tabii bazen çalışma şartlarıda bunu gerektiriyor olabilir) dolayi bazı aksaklıklar da yaşanmaktadır. Bu yüzden yanlızca nümerik degerlerin girildigi bir sanal klavye bu işi görmekedir ve avantajıda parmakla kullanilabilmesi. Ben formu şöyle tasarladim, parmak ucu ile rahat calışması için butonları büyük tuttum.


private void btn_1_Click(object sender, System.EventArgs e)
{
txt_son.Text+="1";
}
private void btn_2_Click(object sender, System.EventArgs e)
{
txt_son.Text+="2";
}

// diger numerik buton kodları da benzer şekilde devam ediyor.

private void btn_0_Click(object sender, System.EventArgs e)
{
if(txt_son.Text.Length!=0)
txt_son.Text+="0";
}
private void btn_sil_Click(object sender, System.EventArgs e)
{
if(txt_son.Text.Length!=0)
txt_son.Text=txt_son.Text.Remove(txt_son.Text.Length-1,1).ToString();
}
 

Herkese iyi calişmalar, kolay gelsin...