programcılık etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
programcılık etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

24 Ağustos 2013 Cumartesi

Android Oyun Programlama Dersleri - Gün 1 - Kurulum










Android oyun programlama derslerine hoşgeldiniz ! Bu dersleri takip etmeyi istediğiniz için çok memnun oldum. Oyun progralama/geliştirme konusu gerçekten zor ama bir o kadar da eğlenceli ve geliştirici bir konudur. Bu yüzden size tavsiyem asla kendinizi tıkanmış veya yalnız hissetmeyin. Ben her zaman buradan sizlere yardımcı olmaya çalışacağım. Yorum yazarak veya e-posta ile sorularınızı sormaktan çekinmeyin. Elimden geldiğince sizlere cevap vermeye çalışacağım. 

Okuduğunuz için teşekkür ederim, umarım bu çalışmalar sizin içinde faydalı olacak...

GÜN 1, DERS 1-0 : Java nedir ?

Java : Sürekli duyduğumuz bir isim fakat gerçekten nedir bu java ?
Sizi java konusunda derin anlatımlara girerek sıkmayacağım. Bu konuda zaten binlerce sayfa yazıya online olarak ulaşabilirsiniz. Nede olsa siz buraya oyun geliştirmek için geldiniz.

Bu konumda bilmeniz gereken kısım şu ; Java bir programlama dilidir. (Sizin bilgisayar ile konuşmanızı sağlar) Böylece bilgisayara ne yapması gerektiğini anlatabilirsiniz. Ayrıca java bir platformdur. (Bilgisayarın sizin verdiğiniz komutları işlemesini sağlar) Böylece bilgisayar söylediklerinizi anlayabilir.

Java, her ortamda çalışabilmesi için tasarlanmıştır. Telefonlar, otomobiller, bilgisayarlar ve bilgisayarlaştırılmış olan binlerce farklı nesne üzerinde çalışabilir. Geliştiriciler "Bir kere yaz, her yerde çalıştır !" mantığını kullanabilmek için java platformunu aşırı derecede esnek tasarlamıştır. Keza, çok yakın geçmişe kadar mobil cihazlar dahil olmak üzere bir çok cihazın işletim sistemi platformu java tabanlı veya java destekli olmuştur.

Son birkaç yıl içinde ise yeni bir oyuncu sahneye çıktı : ANDROID. Google tarafından geliştirilen ve desteklenen ücretsiz işletim sistemi ANDROID şu anda otomobiller, masa üstü - diz üstü bilgisayarlar, tabletler, telefonlar, buz dolapları, otobüs eğlence sistemleri ve hatta fotokopi makineleri üzerinde işletim sistemi olarak kullanılmaktadır. Gelecekte daha başka hangi aygıtlarda olacağını kim bilir ?

Sonuç olarak ANDROID java mimarisini tam olarak desteklediği için ve java cihazları gibi yaygın bir kullanım alanı olduğu için Android Uygulama/Oyun geliştirme konusuna başlamadan önce java ile tanışmamız gerekiyor.

Eğer zaten java biliyorsanız bu bölümü atlamayı tercih edebilirsiniz. Ben dersleri olabildiğince anlaşılır tutmaya çalışacağım. İleri seviye programcılar ve Android Geliştiricileri bu bölümlerde sıkılabilir. 

Şimdi geliştirme ortamımızın kurulumuna geçeceğiz. Bu uygulama/oyun geliştirme konusunda en sıkıcı bölüm ancak bir şekilde yapılması gerekiyor...

Son Not : Aşağıdaki anlatım Mac ve Windows kullanıcıları için ortaktır.

GÜN 1, DERS 1-1 : Java ve Eclipse İndirme

Java programlamaya başlamadan önce bir geliştirme ortamına ihtiyacımız var. Bunun için bilgisayarımızı geliştirici bilgisayarı olarak belirleyeceğiz ve bazı yazılımları kuracağız.

Java Geliştirme Kiti (JDK - Java programları yazmanızı sağlayan geliştirme ortamı) kurabilmek için aşağıdaki adımları izleyin.


Mac Kullanıcıları : Genellikle bilgisayarınızda jdk zaten kuruludur. Bu adımı atlayabilirsiniz.

1. Aşağıdaki JDK indirme linkini tıklayarak jdk indirme sayfasına bağlanın. (Bu yazıyı gelecekte okuyanlar, jdk linkleri değişmiş olabilir. Güncel jdk linklerini arama motoru üzerinde "JDK DOWNLOAD" şeklinde arayarak bulabilirsiniz.)

http://www.oracle.com/technetwork/java/javase/downloads/index.html

2. Açılacak olan sayfada "Java SE 7u25 (veya üst sürüm)" başlığını bularak "JDK DOWNLOAD" indirme linkine tıklayın.


3. Java SE Development Kit 7u25 (veya üst sürüm) listesinde şartları kabul ettiğinize dair "Accept License Agreement" işaret kutusunu işaretleyerek listeden işletim sisteminize uygun olan JDK sürümünü indirin. (Burada windows kullanıcıları x86 ve x64 ayrımına dikkat etmelisiniz. Eğer x86 veya x64 size birşey ifade etmiyorsa yanlış dersi okuyorsunuz demektir. Öncelikle Temel Windows Kullanımı derslerini okuyup tekrar gelmelisiniz...)


4. Jdk indirmesi tamamlandığında kurulumu başlatarak ekranda çıkacak olan talimatları izleyerek JDK  kurulumunu yapınız. JDK yı kurduğunuz dizin daha sonra lazım olacak, bunu hatırlamanız faydalı olacaktır. (Ben C:\Program Files\Java\jre7\ dizinine kurulum yaptım.)

Şimdi Eclipse Kurmamız gerekiyor. İnternette Eclipse hakkında araştırma yapmanız faydanıza olacaktır. Eclipse bir kez kullanmaya başladığınızda vazgeçemeyeceğiniz üstün geliştirici araçları ile birlikte gelen bir IDE(Integrated Development Environment) dir.

Eclipse Kurulumu için aşağıdaki adımları izleyin : 


Eclipse kodlarınızı derleyen, yazılımı paketlemenizi sağlayan, kod ve projelerinizi organize eden bir programcı aracıdır. Oldukça kullanışlı ve güçlü bir IDE olarak bahsedebiliriz. Üstelik ücretsiz !!!

1. Aşağıdaki bağlantıyı kullanarak eclipse indirme sayfasını açın.

http://www.eclipse.org/downloads/

2. Açılan indirme sayfasında işletim sisteminize uygun olan "Eclipse Standart 4.3 (veya üst sürüm)" linkine tıklayarak kurulum dosyasını indirin.






3. Eclipse bir .zip dosyası şeklinde gelecektir ve kurulum istemez. Sadece çalışmasını istediğiniz yere çıkartın ve eclipse.exe yi çalıştırın. (Size eclipse.exe ye masa üstünde bir kısayol oluşturmanızı veya programı başlat çubuğuna sabitlemenizi tavsiye ederim.)

Böylece geliştirme ortamımız kurulmuş oldu. Artık java yazmaya hazır sayılırız. Şimdi eclipse için biraz ayar yapmamız gerekecek.

GÜN 1, DERS 1-2 : Eclipse Ayarlarının Yapılması

1. Eclipse ilk defa çalıştırıldığında size "workspace" ayarını yapmanızı söyleyecektir. Workspace (Çalışma Alanı) Eclipse tarafından projelerinizin, dosyalarınızın ve kaynakların kayıt altına alınacağı bir dizindir. (Ben E:\eclipse-workspace\ klasörünü çalışma alanım olarak belirledim.)



2. Eğer tüm kurulumu başarılı şekilde yaptıysanız aşağıdaki gibi bir ekran görüntüsü ile eclipse çalışmaya hazır hale gelecektir.



Bir sonraki derse buradan devam edeceğim. Okuduğunuz için teşekkürler.

1. Gün Değerlendirmesi :


Bu gün java, android ve program geliştirme hakkında basit bir giriş yaptık. Android geliştirmenin en önemli tabanı olan JDK ve Eclipse programlarını indirerek kurulumlarını gerçekleştirdik.

Yarın ilk Java programımızı yazmaya başlayacağız ve Java Jargonu hakkında konuşacağız.



Dip Not : Sizinde fark ettiğiniz gibi bir ders hazırlamak gerçekten zor. Bu yüzden internette Türkçe kaynak bulmak gerçekten zor hale geliyor. Bir dersin hazırlanma süresi sizin onu okuma sürenizden defalarca kez fazla. Derslerin devamı ve ücretsiz kalması için desteğinizi lütfen esirgemeyin.

Destek olmak için :

1. Bağışta bulunabilirsiniz. Sağ taraftaki "PAYPAL DONATE" butonunu kullanarak bağış yapabilirsiniz.
2. Derslere yorum yazabilirsiniz. Farkettiğiniz hataları, Eleştirilerinizi veya takdirinizi belirtmekten çekinmeyin.
3. Dersleri facebook, twitter gibi sosyal medya ortamlarında ilgisini çekeceğini düşündüğünüz arkadaşlarınız ile paylaşın.
4. Emeğime saygı gösterin ve metni kopyalayıp forumlara yapıştırmayın. Bunun yerine dersin linkini yayınlayın. Merak etmeyin o forumu okuyabilen insanlar bu sayfayı da okuyabilirler...

Teşekkürler.


25 Ocak 2013 Cuma

C# ile masa üstü programınıza otomatik güncelleme özelliği eklemek


.net framework kullanarak (C#) yazdığım masa üstü yazılımlardan birine otomatik güncelleme özelliği eklemek istiyordum. Bu sebeple yaptığım çalışma gayet verimli oldu. Bende bu çalışmanın aşamalarını paylaşarak masa üstü program geliştiricilerin işine yarayacağını düşündüm. Bu bir ders veya konu anlatımı değil, sadece izlemeniz gereken yolu tarif edeceğim o kadar. Hazırsanız başlayalım ;

Problemimiz masa üstü programımızın kendi kendini update edebilme özelliği. Bunun birden fazla yolu olsa bile ben kendime göre en kolay olduğunu düşündüğüm versiyonu sizinle paylaşacağım.

Diagram şu şekilde olacak ;

1. Program çalıştırıldığında kendi sürümünü internet üzerinde bir sunucuda bulunan son sürüm ile karşılaştıracak.
2. Eğer yeni sürüm var ise yeni sürük kurulum programını download edecek.
3. Download tamamlanmış ise yeni sürümü yükleme yazılımını çalıştırarak kendisini update edecek.

Standart bir winform uygulaması oluşturarak işe başladığınızı farzediyorum. İlk yapmamız gereken şey programımızın kendi sürümünü bilmesini sağlamak. Bunun için ben "program.cs" içerisine aşağıdaki kodu ekledim.


buradaki "public static string versioncode" değişkeni ile programın versiyonunu tutuyorum. Daha sonra ana formun on load olayına update kontrolünü yapacak bir bölüm ekledim. Ayrıca hemen altında bulunan "updateme" prosedürü ile update işlemini yapacak olan formu çağırdığımı fark edeceksiniz. Burada thread kullanmaktaki amaç asıl formu kapatırken programın kapanmasını engellemek.


Uygulama ana formu yüklediğinde "checkupdate" fonksiyonunu çağırıyor. Basitçe fonksiyonun yaptığı şey web sunucumda bulunan bir php dosyasına kendi sürüm numarasını "v" değişkeni ile yollamak. Php dosyası eğer sürüm aynı ise "OK" eğer programın sürümü eski ise "UPDATE" değerini döndürüyor. CheckUpdate fonksiyonunun kodları şu şekilde;


Şimdi siz "Asıl iş PHP dosyasında. Tüm işi o yapıyor!" şeklinde düşüneceksiniz ama öyle değil. Php dosyası çok çok basit bir şekilde yayında olan versiyon ile programın yolladığı versiyonu kontrol ediyor o kadar. Aşağıda php dosyasının kodunu veriyorum. (Dilerseniz aynı şeyi .asp, .aspx, .asmx, .txt gibi dosyalar ile de yapabilirsiniz. kontrol işlemini masa üstü yazılımınıza yaptırabilirsiniz. Ben bu yolu seçtim)


Gördüğünüz gibi gayet basit bir kontrol. Buradan sonra program thread açarak güncelleme formunu yüklüyor ki asıl güncelleme işini yapan bu program. Güncelleme formunda basitce yerleştirilmiş iki label ve bir progressbar var. Bu sayede kullanıcıya güncelleme işlemi ile ilgili bilgi verebiliyor, işlemin ilerlemesini gösterebiliyoruz. Ayrıca ben sırf geyik olsun diye iki adet timer ekleyerek güncelleme işlemini toplamda 10 saniye kadar da yavaşlattım.

Formun tasarımı şu şekilde :


Güncelleme prosedürü ise şu şekilde :


Hızlıca özet geçmek gerekir ise ;

destPath değişkeni indirilecek olan dosyanın yolunu tutuyor. 1.timer ticklediğinde (aktif olup çalıştıktan sonra verdiğiniz süre kadar geçince timer nesnesinin tick olayı tetiklenir) ;
timer kendini kapatıyor
webclient nesnesi oluşturularak bu nesnenin downloadfilecomplete ve downloadprogresschange olayları yeniden yazılıyor. böylece indirmenin ilerlemesini ve bitip bitmediğini takip edebiliriz.
webclient downloadfileasync fonksiyonu ile uzak sunucudaki setup.exe yerel adrese indiriliyor.

bu esnada progresschange olayı ile progressbar update ediliyor.
indirme işlemi bittiğinde tetiklenen downloadfilecomplete olayı ile de program indirilen setup.exe yazılımını çalıştırarak kendisini kapatıyor. Buradan sonra kullanıcı normal bir kurulum yapar gibi güncellemeyi kuruyor.

Sorularınız için yorum atabilir, dilerseniz bana www.mesutaslan.com.tr adresindeki resmi sitemden ulaşabilirsiniz.

Umarım faydası olur....



Not  : Bu arada şunu söylediğinizi hissediyorum "Lan bu örnek kodları niye kopyalanır şekilde vermedin de resim şeklinde verdin dingil !", asıl dingil sizsiniz, eğer programcı olmak istiyorsanız önce yazmaya alışmanız gerekiyor, kopyalayıp yapıştırmaya değil !