SlideShare une entreprise Scribd logo
1  sur  2
meslek sırrı MOBİL PROGRAMLAMA
PCWORLD.COM.TR MART ’10110
Volkan Atasever
volkan@volkanatasever.com
Bu ay bir iki önemli olaya dikka-
tinizi çekmek istiyorum. Mobil ci-
hazların dünyasında geçtiğimiz ay ol-
dukça ilginç gelişmeler yaşandı Steve
Jobs iPad’i tanıttı. Bunun yankılarını her
yerde duydunuz. Asıl benim de daha
sonra öğrendiğim gibi Steve Ballmer’ın
21 Ocak’ta HP Slate’i tanıtmış olduğuy-
du. Aslına bakarsanız konsept iPad ile
aynı. iPad’de multitasking olmadığı gibi
sayılan diğer eksiklikler de mevcut. Buna
rağmen Steve Jobs’un Apple’ı kurarken
Steve Wozniak’ın çocuğu olan Apple
II’yi sahiplenerek ticari başarıya ulaştığı-
nıda hatırladığımda diğer ürünü olan ilk
McIntosh (orijinalı bu olup bir bir elma
türüdür, harf hatası ile Macintosh ismi-
ni almıştır) ve Lisa projelerinde başarı-
sızlığıda mevcuttur. Steve Jobs’un yıllar
önce kendi kurduğu şirketten uzaklaştı-
rılmasını bunlara bağlayabiliriz. Tarih te-
kerrürden mi ibaret yoksa teknoloji ola-
rak daha gelişkin HP Slate veya piyasa-
ya çıkacak Microsoft temelli işletim siste-
mi kullanan muadilleri mi başarı sağlaya-
cak bunu zaman gösterecek. Bu başarı
ise satış oranlarına göre belirlenecektir.
Gördüğünüz gibi her ne olursa olsun
mobil cihazların trendi şekil veya ya-
zılım değişimleri ile birlikte sürmekte.
Yazıma bu gelişmeler ışığında başlar-
ken siz bu yazıyı okuduğunuz zaman-
larda Windows Mobile 7 tanıtılmış ola-
cak. Barcelano’da gerçekleşen Mobi-
le World Congress’te Microsoft tarafın-
dan duyuruldu. Bunlardan birisi zorun-
lu kalemlerin kalkacağı olacaktır. Diğeri
ise iPhone’da olan Multitouch yani çok
dokunuşlu ekranların yeni işletim sistemi
ve cihazla birlikte geleceğidir. Xbox Live
desteği ise şu sıralar konuşuluyor. Me-
rak etmeyin bugüne kadar öğrendiğiniz
bilgiler işinize yaramaya devam edecek.
Yeni özelliklerin ise oldukça heyecan ve-
rici olacağını tahmin ediyorum.
Sayısal loto uygulaması
Bu ayki uygulamamızı gerçek yaşam-
dan alarak kodlamak için şöyle bir se-
naryo kuralım. Sayısal loto oynamak is-
tiyorsunuz ve bir bayiye gittiniz fakat
bayideki makinanın numaraları kendi
seçtiğinde şans getirmediğini düşünü-
yorsunuz. Hatta kendi rakamlarınızda
1
2
Şansınızı başkalarına bırakmayın. Sayısal loto numaralarını cep telefonunuz üretsin.
Sayısal Loto
mobil programlama_mart.indd 110mobil programlama_mart.indd 110 23.02.2010 22:0423.02.2010 22:04
meslek sırrı MOBİL PROGRAMLAMA
111PCWORLD.COM.TRMART ’10
fazla uğurlu gelmiyor. Bir garanti vere-
mesemde her an cebinizde taşıdığınız
alete güvenmek daha akıllıca olmaz
mı? Tahmin ettiğiniz gibi bu ay mo-
bil cihaz üzerinde bir sayısal loto tah-
min uygulaması yaparak mobil bir tah-
min aracınız olmasını sağlamayı hedef-
liyorum.
Öncelikle her uygulamanın başlangıcı
olan kullanıcı arayüzü tasarımımızı ya-
palım. Geçen ay incelediğimiz kontrol-
lerden bazılarını pratikte de kullanma
şansı bulacağız. (Resim 1)
Yukarıda gördüğünüz gibi bir listbox,
textbox, label ve picturebox ile arayüzü-
mü tamamlarken alttaki menuitem’lara
da isim verdik. Arkaplan renklerini ras-
gele bir şekilde değiştirdim. Her kont-
rolün backcolor renk özelliğini siz iste-
diğiniz renge çevirebilirsiniz. Kontrolle-
rin dışında form’unda arkaplan rengini
aynı yöntemle properties kısmından de-
ğişik bir renge çevirdik. (Resim 2)
Kullanıcı arayüzüne baktığınızda uygu-
lamanın ne yapmaya çalıştığını anlaya-
bilirsiniz. Kaç kolon oynayacağınızı so-
ruyor, tahmin et butonuna bastığınızda
ise istediğiniz kolon sayısı kadar şans-
lı 6 numarayı listbox kontrolüne koy-
mayı amaçlıyoruz. Çıkış butonuna ba-
sılınca ise uygulamadan çıkıyor. Bunun
için basit ve anlaşılabilir bir kod yazma-
ya çalıştım.
Kodumuz aşağıdaki gibidir;
using System;
using System.Windows.Forms;
namespace Sayısal_Loto
{
public partial class Form1
: Form
{
public Form1()
{
InitializeCompo
nent();
}
private void menuItem1_
Click(object sender, EventArgs e)
{
listBox1.Items.
Clear();
Random rnd = new
Random();
int[] sayilar=new
int[6];
string kazanaca
gim=””;
for (int i = 1; i <=
Convert.ToInt32(textBox1.Text);
++i)
{
for (int j = 0; j
< 6; ++j)
{
int sec=rnd.
Next(1, 50);
if (Array.
IndexOf(sayilar, sec) == -1)
sayilar[j] = sec;
}
for (int sanssay
= 0; sanssay < 6; ++sanssay)
kazanacagim
+= sayilar[sanssay] + “-”;
listBox1.Items.
Add(kazanacagim);
kazanacagim = “”;
}
}
private void menuItem2_
Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
Kod hakkında kısa bilgi
For anahtar kelimesi: bir döngü çeşitidir.
Her programlama dilinde rastlamanız
mümkündür. İlk verilen değerle koşulda
belirlediğiniz değere kadar son verdiği-
niz artım miktarı kadar ilerleme yapar.
İnt: integer değerdir ve tam sayı değer-
lerini içerir.
String: birden fazla karakter tipi değer
içerir. Karakter katarları olarakda adlan-
dırılır.
Random: Randomize yani rasgele sayı
belirlemeniz için bir tohum nesne oluş-
turmanıza yarar.
int[]: integer türünden istediğiniz sayı-
da dizi tanımlamanızı sağlar.
listbox.Items.Clear(): Tüm listbox
kontrolündeki değerleri siler.
listbox.Items.Add(): Listbox’a değer
ekleminizi sağlar.
Bu kodu formun kod kısmına yazdığı-
nızda uygulama çalışacaktır. Bir yazım-
da temel olarak C# bilmeniz gerektiğin-
den bahsetmiştim. Gördüğünüz gibi te-
mel bir bilgi ile gayet anlaşılabilecek bir
kod yazdık. Kısaca değinmek gerekirse
ilk for döngümüz kaç adet kolon oyna-
yacağımızı içindeki ilk for şanslı numa-
ramızı belirtmektedir. Son for döngüsü
ise bu rakamları list box’a ekleme için sa-
yıları hazırlar. listbox1.Items.Add (string
tipi bir değişken) şeklinde kontrolümü-
ze değer ekliyebiliyoruz. Random sını-
fı ise random sayılar üretmemiz için rnd
sınıfından bir nesne yaratmamızı sağlı-
yor. Bu bir tohum nesnesi oluyor. Nes-
ne üstünden çağırdığımız Next metodu
ise randomize sayıları belirlemimizi sağ-
lamakta. Önemli gördüğüm programa-
tik bilgiler bunlar.
Uygulamamızın çalıştırıldığında gözüken
ekran çıktısına göz atalım; (Resim 3)
Artık elinizde mobil bir tahmin aracı ta-
şıyorsunuz. Uygulamanın diğer bir öne-
mi ise bazı kontrolleri nasıl kullanaca-
ğımızı gördük. Bu kontrolleri kullanır-
kende gerçek iş yapan bir programı ta-
sarladık. Açıkcası renk uyumunun hiç
olmadığının bende farkındayım. Renk
uyumundan daha çok farklı renkleri
formunuza veya kontrollerinize nasıl
yansıtıcağınızı amaç edindim. Diğer bir
önemli konu ise yaptığınız bu muhte-
şem uygulamaları nasıl cihazına aktara-
cağınız ve nasıl bir set up dosyası oluş-
turacağınızdır. Bunun için gelecek ay
set up dosyası nasıl yapılır ve bilgisaya-
ra nasıl aktarılır bunu anlatmayı plan-
lamaktayım. Set up dosyasını hazırlar-
ken kullanacağım uygulama ise bu ay
anlatıp kodladığım sayısal loto progra-
mı olacak. 
3
mobil programlama_mart.indd 111mobil programlama_mart.indd 111 23.02.2010 22:0423.02.2010 22:04

Contenu connexe

Plus de Volkan Atasever

Plus de Volkan Atasever (10)

Bitsector 3
Bitsector 3Bitsector 3
Bitsector 3
 
Bitsector 2
Bitsector 2Bitsector 2
Bitsector 2
 
Bitsector Sayı 01
Bitsector Sayı 01Bitsector Sayı 01
Bitsector Sayı 01
 
Semih Arslan'ın Volkan Atasever ile Röportajı
Semih Arslan'ın Volkan Atasever ile RöportajıSemih Arslan'ın Volkan Atasever ile Röportajı
Semih Arslan'ın Volkan Atasever ile Röportajı
 
T3 Dergisi Haziran 2013 yazım
T3 Dergisi Haziran 2013 yazımT3 Dergisi Haziran 2013 yazım
T3 Dergisi Haziran 2013 yazım
 
Ti ks vb v1.0
Ti ks vb v1.0Ti ks vb v1.0
Ti ks vb v1.0
 
Tiks cs v1.0
Tiks cs v1.0Tiks cs v1.0
Tiks cs v1.0
 
Teknolojinin Geleceği
Teknolojinin GeleceğiTeknolojinin Geleceği
Teknolojinin Geleceği
 
Csharp 3.0
Csharp 3.0Csharp 3.0
Csharp 3.0
 
Kariyer Günleri
Kariyer GünleriKariyer Günleri
Kariyer Günleri
 

2010 03

  • 1. meslek sırrı MOBİL PROGRAMLAMA PCWORLD.COM.TR MART ’10110 Volkan Atasever volkan@volkanatasever.com Bu ay bir iki önemli olaya dikka- tinizi çekmek istiyorum. Mobil ci- hazların dünyasında geçtiğimiz ay ol- dukça ilginç gelişmeler yaşandı Steve Jobs iPad’i tanıttı. Bunun yankılarını her yerde duydunuz. Asıl benim de daha sonra öğrendiğim gibi Steve Ballmer’ın 21 Ocak’ta HP Slate’i tanıtmış olduğuy- du. Aslına bakarsanız konsept iPad ile aynı. iPad’de multitasking olmadığı gibi sayılan diğer eksiklikler de mevcut. Buna rağmen Steve Jobs’un Apple’ı kurarken Steve Wozniak’ın çocuğu olan Apple II’yi sahiplenerek ticari başarıya ulaştığı- nıda hatırladığımda diğer ürünü olan ilk McIntosh (orijinalı bu olup bir bir elma türüdür, harf hatası ile Macintosh ismi- ni almıştır) ve Lisa projelerinde başarı- sızlığıda mevcuttur. Steve Jobs’un yıllar önce kendi kurduğu şirketten uzaklaştı- rılmasını bunlara bağlayabiliriz. Tarih te- kerrürden mi ibaret yoksa teknoloji ola- rak daha gelişkin HP Slate veya piyasa- ya çıkacak Microsoft temelli işletim siste- mi kullanan muadilleri mi başarı sağlaya- cak bunu zaman gösterecek. Bu başarı ise satış oranlarına göre belirlenecektir. Gördüğünüz gibi her ne olursa olsun mobil cihazların trendi şekil veya ya- zılım değişimleri ile birlikte sürmekte. Yazıma bu gelişmeler ışığında başlar- ken siz bu yazıyı okuduğunuz zaman- larda Windows Mobile 7 tanıtılmış ola- cak. Barcelano’da gerçekleşen Mobi- le World Congress’te Microsoft tarafın- dan duyuruldu. Bunlardan birisi zorun- lu kalemlerin kalkacağı olacaktır. Diğeri ise iPhone’da olan Multitouch yani çok dokunuşlu ekranların yeni işletim sistemi ve cihazla birlikte geleceğidir. Xbox Live desteği ise şu sıralar konuşuluyor. Me- rak etmeyin bugüne kadar öğrendiğiniz bilgiler işinize yaramaya devam edecek. Yeni özelliklerin ise oldukça heyecan ve- rici olacağını tahmin ediyorum. Sayısal loto uygulaması Bu ayki uygulamamızı gerçek yaşam- dan alarak kodlamak için şöyle bir se- naryo kuralım. Sayısal loto oynamak is- tiyorsunuz ve bir bayiye gittiniz fakat bayideki makinanın numaraları kendi seçtiğinde şans getirmediğini düşünü- yorsunuz. Hatta kendi rakamlarınızda 1 2 Şansınızı başkalarına bırakmayın. Sayısal loto numaralarını cep telefonunuz üretsin. Sayısal Loto mobil programlama_mart.indd 110mobil programlama_mart.indd 110 23.02.2010 22:0423.02.2010 22:04
  • 2. meslek sırrı MOBİL PROGRAMLAMA 111PCWORLD.COM.TRMART ’10 fazla uğurlu gelmiyor. Bir garanti vere- mesemde her an cebinizde taşıdığınız alete güvenmek daha akıllıca olmaz mı? Tahmin ettiğiniz gibi bu ay mo- bil cihaz üzerinde bir sayısal loto tah- min uygulaması yaparak mobil bir tah- min aracınız olmasını sağlamayı hedef- liyorum. Öncelikle her uygulamanın başlangıcı olan kullanıcı arayüzü tasarımımızı ya- palım. Geçen ay incelediğimiz kontrol- lerden bazılarını pratikte de kullanma şansı bulacağız. (Resim 1) Yukarıda gördüğünüz gibi bir listbox, textbox, label ve picturebox ile arayüzü- mü tamamlarken alttaki menuitem’lara da isim verdik. Arkaplan renklerini ras- gele bir şekilde değiştirdim. Her kont- rolün backcolor renk özelliğini siz iste- diğiniz renge çevirebilirsiniz. Kontrolle- rin dışında form’unda arkaplan rengini aynı yöntemle properties kısmından de- ğişik bir renge çevirdik. (Resim 2) Kullanıcı arayüzüne baktığınızda uygu- lamanın ne yapmaya çalıştığını anlaya- bilirsiniz. Kaç kolon oynayacağınızı so- ruyor, tahmin et butonuna bastığınızda ise istediğiniz kolon sayısı kadar şans- lı 6 numarayı listbox kontrolüne koy- mayı amaçlıyoruz. Çıkış butonuna ba- sılınca ise uygulamadan çıkıyor. Bunun için basit ve anlaşılabilir bir kod yazma- ya çalıştım. Kodumuz aşağıdaki gibidir; using System; using System.Windows.Forms; namespace Sayısal_Loto { public partial class Form1 : Form { public Form1() { InitializeCompo nent(); } private void menuItem1_ Click(object sender, EventArgs e) { listBox1.Items. Clear(); Random rnd = new Random(); int[] sayilar=new int[6]; string kazanaca gim=””; for (int i = 1; i <= Convert.ToInt32(textBox1.Text); ++i) { for (int j = 0; j < 6; ++j) { int sec=rnd. Next(1, 50); if (Array. IndexOf(sayilar, sec) == -1) sayilar[j] = sec; } for (int sanssay = 0; sanssay < 6; ++sanssay) kazanacagim += sayilar[sanssay] + “-”; listBox1.Items. Add(kazanacagim); kazanacagim = “”; } } private void menuItem2_ Click(object sender, EventArgs e) { Application.Exit(); } } } Kod hakkında kısa bilgi For anahtar kelimesi: bir döngü çeşitidir. Her programlama dilinde rastlamanız mümkündür. İlk verilen değerle koşulda belirlediğiniz değere kadar son verdiği- niz artım miktarı kadar ilerleme yapar. İnt: integer değerdir ve tam sayı değer- lerini içerir. String: birden fazla karakter tipi değer içerir. Karakter katarları olarakda adlan- dırılır. Random: Randomize yani rasgele sayı belirlemeniz için bir tohum nesne oluş- turmanıza yarar. int[]: integer türünden istediğiniz sayı- da dizi tanımlamanızı sağlar. listbox.Items.Clear(): Tüm listbox kontrolündeki değerleri siler. listbox.Items.Add(): Listbox’a değer ekleminizi sağlar. Bu kodu formun kod kısmına yazdığı- nızda uygulama çalışacaktır. Bir yazım- da temel olarak C# bilmeniz gerektiğin- den bahsetmiştim. Gördüğünüz gibi te- mel bir bilgi ile gayet anlaşılabilecek bir kod yazdık. Kısaca değinmek gerekirse ilk for döngümüz kaç adet kolon oyna- yacağımızı içindeki ilk for şanslı numa- ramızı belirtmektedir. Son for döngüsü ise bu rakamları list box’a ekleme için sa- yıları hazırlar. listbox1.Items.Add (string tipi bir değişken) şeklinde kontrolümü- ze değer ekliyebiliyoruz. Random sını- fı ise random sayılar üretmemiz için rnd sınıfından bir nesne yaratmamızı sağlı- yor. Bu bir tohum nesnesi oluyor. Nes- ne üstünden çağırdığımız Next metodu ise randomize sayıları belirlemimizi sağ- lamakta. Önemli gördüğüm programa- tik bilgiler bunlar. Uygulamamızın çalıştırıldığında gözüken ekran çıktısına göz atalım; (Resim 3) Artık elinizde mobil bir tahmin aracı ta- şıyorsunuz. Uygulamanın diğer bir öne- mi ise bazı kontrolleri nasıl kullanaca- ğımızı gördük. Bu kontrolleri kullanır- kende gerçek iş yapan bir programı ta- sarladık. Açıkcası renk uyumunun hiç olmadığının bende farkındayım. Renk uyumundan daha çok farklı renkleri formunuza veya kontrollerinize nasıl yansıtıcağınızı amaç edindim. Diğer bir önemli konu ise yaptığınız bu muhte- şem uygulamaları nasıl cihazına aktara- cağınız ve nasıl bir set up dosyası oluş- turacağınızdır. Bunun için gelecek ay set up dosyası nasıl yapılır ve bilgisaya- ra nasıl aktarılır bunu anlatmayı plan- lamaktayım. Set up dosyasını hazırlar- ken kullanacağım uygulama ise bu ay anlatıp kodladığım sayısal loto progra- mı olacak.  3 mobil programlama_mart.indd 111mobil programlama_mart.indd 111 23.02.2010 22:0423.02.2010 22:04