Batu Incecay Rotating Header Image

Mart, 2012:

İki Uygulama Bir Arada

Önceki yazılarımda verdiğim bilgileri bu sefer yalancı çıkarmayacağım =) Vakti gelmişti. Eğitim ile ilgili tüm uygulamalarım bundan sonra MiBaLearning adıyla yayımlanacak. Yeni bir şirketin temelleri mi kim bilir? Uygulamam her zamanki gibi basit.

Bilirsiniz basitlikte ferahlık vardır. Bundan sonraki tüm MiBaLearning uygulamalarımda göreceğiniz karakteri fotoğrafta görebilirsiniz. O karakterin adı MiBa. Tüm telif hakları bana aittir; hiçbir yerden alınma veya çalınma değildir. Birebir pelüş hali bu yazıyı yazarken yanımda durmaktadır =) Fotoğraf ve üzerindeki tüm oynamalar bana aittir. Onun dışında göreceğiniz çiçeklerin hepiciğini de bizzat ben çizdim (kötü olmasından belli dediğinizi duyar gibiyim; ne yapalım yetenek bu kadar, umarım zamanla gelişir).

Gelelim ilk uygulamamın içeriğine. Uygulamanın temel amacı 1’den 20’ye kadar olan sayıların yazılışlarını öğretmen. İki ayrı dizide yazılış ve rakamlardan oluşan hallerini sakladığım sayılardan random fonksiyonu yardımı ile bir tane seçip ekranda gösteriyorum. Kullanıcının her sayı için üç deneme hakkı var. Uygulama büyük veya küçük harfe duyarlı değil. Kullanıcı metni girdikten sonra yeşil tamam tuşuna basarak girdiği metnin doğruluğunu kontrol eder. Üç deneme sonunda doğru cevap bulunmazsa ekranda doğru cevap gösterilir ve bir sonraki sayıya geçilir. Bu işlem sekiz defa devam eder. Sekiz sayı da bittikten sonra kullanıcının toplam vermiş olduğu doğru cevap sayısı ekranda yazıldıktan sonra açılış sayfasına dönülür. Uygulamanın oldukça basit olduğunu söylemiştim. Temel olarak kullanıcıya yani hedef kitlesi olan okul öncesi ve ilköğretimin ilk sınıfındaki öğrencilere sayıların yazılışını öğretmeyi amaçlıyor.

Başlıkta dedim ya iki uygulama birden =) Hızımı almışken ikincisini de yazayım dedim; malum vizeler yaklaşıyor bir süre uygulama yazmaktan uzak kalabilirim. Bu uygulamamda ise aynı MiBa karakteri ile renkleri öğreniyoruz. Diğer uygulamamda olduğu gibi her renk için kullanıcının üç tahmin hakkı var; fakat bu sefer sekiz değil bir oyunda sadece beş renk soruluyor. Bunun en temel nedeni renk sayısının az olması. Toplamda on bir rengimiz var. Diyeceksiniz ki neden bu kadar az? Temel amaç renkleri öğretmek olduğu için, öyle açık-koyu gibi sıfat içeren renklere hiç yer vermeden en temel renkleri kullanmaya çalıştım. Burada da çocukların biraz daha ilgisini çekebilmek için balon kullandım. Bu balonun rengi ne diye sorarak çocukların eğlenerek renkleri öğrenmesini amaçladım.

Uygulamalarımı 28 Mart 2012 tarihinde göndermiş bulunmaktayım. Umarım kısa süre içerisinde testlerden geçip yayınlanırlar.

Gençsen Geleceksin 5.0 Ege Üniversitesi

Gençsen Geleceksin 5.0 etkinliğinin Ege Üniversitesi ayağı, Bilgisayar Mühendisliği Bölümü B4 Amfisinde 16 Mart 2012 günü gerçekleşti. Etkinliğe büyük çoğunluğu bilgisayar mühendisliği bölümünden olmak üzere birçok bölümden öğrenciler ile piyasadan insanlar katıldı. Etkinliğe ilgi oldukça fazlaydı; toplamda katılımcı sayısı 150’yi buldu.

Etkinlikte Microsoft’u temsilen Akademik Programlar Yöneticisi Dr. Mustafa Kasap ve Nokia adına Uygulama Geliştirme Platformları Yöneticisi Görkem Ercan yer aldı. Etkinliğin ilk bölümünde öncelikle Dr. Mustafa Kasap söz aldı. Dr. Mustafa Kasap konuşmasında öncelikle Microsoft’un öğrencilere sağladığı olanakları anlattı. Bu olanaklar içinde; benim de içinde bulunduğum Microsoft Student Partners programı, Microsoft’un kısa ve uzun dönemli stajları, yaz okulu, Student2Business programı gibi iş ve staj olanakları ile Dreamspark gibi öğrencilere ücretsiz yazılım sağlayan programlar yer aldı. Bu olanakların detaylı anlatımından sonra Microsoft teknolojileri hakkında Dr. Mustafa Kasap tarafından bilgiler verildi. Bunlar teknolojiler Microsoft’un bulut bilişimi Azure,  insan hareketlerini algılayan Kinect, yeni nesil dokunmatik ekran Surface ve yeni nesil ofis çözümleridir. Bu bilgilendirme ile birlikte bu gelecek teknolojilerle ilgili ihtiyaç duyulacak elemanlar hakkında bilgi verildi. Microsoft’tan Dr. Mustafa Kasap’ın sunumunun ardından Nokia’dan Görkem Ercan Nokia’nın teknolojileri hakkında bilgi verdi. Ayrıca Nokia’nın telefon segmentleri ve bu segmentlerde kullanılan teknolojiler anlattı. Sadece Microsoft Teknolojileri değil diğer segmentlerde başka teknolojilerle uygulama geliştirme olanağı olduğunu öğrenciler ile paylaştı. En üst segmentte ise Windows Phone kullanıldığını anlatıp bu teknoloji hakkında bilgi verdi. Son olarak da Windows Phone uygulamaların yer aldığı Marketplace hakkında da bilgi verildi.

Etkinliğin ilk kısmı tamamlandığında sıra yarışmaya gelmişti. Yarışmaya katılmak isteyenler fikirlerini bir kağıda yazıp herkesin önünde sundular. Daha sonra yapılan oylama ile be proje finale kaldı. Finale kalan bu beş projeden uygulamasını ilk geliştirip Marketplace’de yayınlayanı bir Nokia Lumia 800 telefon bekliyor.

Yarışmanın ardından ikinci bölüm olan Windows Phone 7 uygulaması geliştirme bölümüne geçildi. Bu bölüme sadece uygulama geliştirmeyi öğrenmek isteyen 30 kadar öğrenci katıldı. Bu bölümde öncelikle Windows Phone’un sahip olması gereken minimum sistem gereksinimleri anlatıldı. Bu sistem gereksinimleri ile birlikte uygulama geliştiricilerin kullanabileceği GPS, ivme ölçer gibi özellikler hakkında bilgi verildi. Nokia’dan Görkem Ercan’ın verdiği teknik bilginin ardından Microsoft’tan Dr. Mustafa Kasap en baştan nasıl bir uygulama geliştirileceğini gösterdi. Uygulama geliştirilecek ortam hakkında bilgi verip, uygulamada kullanılabilecek temel bileşenleri örnekler ile gösterdi. Temel bileşenlerin ardından; internete bağlanarak XML olarak bir kişiye ait twitlerin bilgilerinin nasıl çekileceğini, işleneceğini ve ekranda gösterileceğini anlatan bir uygulama geliştirdi. Bu uygulamayı adım adım göstererek kodladı. Dr. Mustafa Kasap’ın geliştirdiği uygulamaya benzer ve biraz daha kapsamlı bir uygulama hakkında detaylı bilgiye buradan ulaşabilirsiniz.

Gençsen Geleceksin 5.0 Ege Üniversitesi etkinliği gerçekleştirilen uygulamanın ardından sona erdi. Üniversitemize kadar gelen, bizlere emek ve nefes harcayan Dr. Mustafa Kasap ve Görkem Ercan’a çok teşekkür ederim. Umarım önümüzdeki yıllarda nice Gençsen Geleceksin etkinlikleri gerçekleştiririz.

Bir Kişiye Ait Twitleri Listelemek

Bu uygulama üzerinde istediğimiz Twitter ID’sine sahip kişinin bugüne kadar yaptığı twitleri uygulamamız ile listeleyeceğiz. Uygulama sizlere sakın karmaşık gelsin. Kodları yazımın sonunda sizlerle paylaşıyor olacağım şimdi ise uygulamanın nasıl çalıştığına ve dikkat etmemiz gereken püf noktalarına bir bakalım.

Öncelikle bize twit bilgileri gerekiyor. Peki bu bilgileri nasıl alacağız. Twitter bizlere bu konuda oldukça yardımcı oluyor. Adresi link olarak koymadığım bu adresten https://api.twitter.com/statuses/user_timeline.xml?screen_name=xxx istediğiniz Twitter kullanıcısının xml formatında twit bilgilerini çekebilirsiniz. Unutmayın xxx yerine Twitter ID’sini yazacaksınız =)  XML verisini çekip incelediğinizde birçok tag ile karşılaşacaksınız. Bu uygulamada sadece text, gönderen ve gönderenin fotoğrafının URL bilgilerini kullanacağız. İsteyenler tarihten tutun da status id’ye bir çok başka bilgiyi de kullanabilir. Peki o zaman şimdi bu XML dokümanını uygulamamızın içinden indirelim. Bunun için bir WebClient’a ihtiyacımız var. Aşağıda gördüğünüz kod parçası ile bu dokümanı indirip IcerikAyikla fonksiyonuna gönderdik.

WebClient tw = new WebClient();            

            tw.DownloadStringCompleted += new DownloadStringCompletedEventHandler(IcerikAyikla);

            tw.DownloadStringAsync(new Uri(“https://api.twitter.com/statuses/user_timeline.xml?screen_name=” + twitID.Text));

İndirilen XML dokümanı IcerikAyikla fonksiyonu içerisinde pars edilerek, yukarıda sözüne ettiğim text, gönderen ve gönderenin fotoğraf URL bilgileri ayıklanıp listBox1 içerisine yeni bir item olarak ekleniyor. Bunu yapan koda da şöyle bir göz atalım:

private void IcerikAyikla(object sender, DownloadStringCompletedEventArgs e)

        {

            if (e.Error != null)

                return;

             XElement xTwit = XElement.Parse(e.Result);

            listBox1.ItemsSource = from tweet in xTwit.Descendants(“status”)

                                   select new TwitterBilgisi

                                   {

                                       URL = tweet.Element(“user”).Element(“profile_image_url”).Value,

                                       metin = tweet.Element(“text”).Value,

                                       gonderen = tweet.Element(“user”).Element(“screen_name”).Value

                                   };

        }

Bu kodda gördüğünüz TwitterBilgisi sınıfı hakkında hemen ufak bir bilgi vereyim. Malum nesneye yönelik programlama yapıyoruz bu nedenle okuduğumuz bilgileri tanımladığımız değişkenlerde tutmak yerine bir class’ın değişkenlerinde tutuyoruz. Class’ımızın kodu aşağıdaki gibi oldukça basit.

public class TwitterBilgisi

        {

            public string metin { get; set; }

            public string gonderen { get; set; }

            public string URL { get; set; }

        }

Aslında bu kadar basit; ancak görsel olarak bir kaç düzenleme yapmamız gerekiyor. Eğer siz kodları indirmek yerine uygulamayı kendiniz yapmak istiyorsanız lütfen bu işlemleri yaptıktan sonra programınızı çalıştırın ve görsel sorunlarla yüz yüze gelin. Bu arada görsel sorunları çözmeden şunu belirtmeliyim XML okumak için kullandığımız XElement değişkeni sizde default olarak çıkmayacaktır. Bunun için uygulamanıza System.Xml.Linq kütüphanesini eklemelisiniz. Bu kütüphaneyi eklediğinizde uygulamanız kütüphaneyi de bulamayacaktır. Bu noktada da referans eklememiz gerekecek. Referans eklemek için Solution Expres altında yer alan Referances bölümüne sağ tıklayarak Add Referance seçeneğini seçtikten sonra .NET menüsü altından System.Xml.Linq bileşenini seçip eklemeniz gerekiyor. Bu ekleme işlemini yaptıktan sonra gönül rahatlığı ile XML dokümanınızı okuyabileceksiniz.

Gelelim görsel düzenleme kısmına. Çalıştıranlar görmüştür twitler listeleniyor ancak mesajların yarısı yok, gönderen bilgisi yok. İşte bu noktada xaml dosyasının içine girmemiz gerekiyor. Xaml dosyasının içine girdiğimizde listBox’ımızı buluyoruz. ListBox’ımız tek satırda açılıp kapanmış; araya eklemeler yapacağımız için sondaki kapama işaretini (/) silip, alt satıra </ListBox> olarak ekliyoruz. Böylece artık araya eklemelerimizi rahatça yapacağız. Önce eklenecek kodu göstereyim; ardından kod üzerine konuşalım.

<ListBox.ItemTemplate>

                    <DataTemplate>

                        <StackPanel Orientation=”Horizontal” Height=”Auto”  HorizontalAlignment=”Stretch”>

                            <Image Source=”{Binding URL}” Height=”73″ Width=”73″ VerticalAlignment=”Top” Margin=”0,10,8,0″/>

                            <StackPanel Width=”370″>

                                <TextBlock Text=”{Binding metin}” Foreground=”#FFC8AB14″ FontSize=”28″ TextTrimming=”WordEllipsis” TextWrapping=”Wrap” />

                                <TextBlock Text=”{Binding gonderen}” TextWrapping=”Wrap” FontSize=”24″ />

                            </StackPanel>

                        </StackPanel>

                    </DataTemplate>

</ListBox.ItemTemplate>

Bilgilerimiz düzenli dursun diye listBox’ın her bir item’ında bir image source ve iki text box kullanacağız. Bunları kullanabilmemiz için öncelikle bir stack panel’a ihtiyacımız var. Panel’in Height’ını da otomatik yaptım ki böylece text’iniz 140 karakter de olsa 10 karakter de olsa tamamı görüntülenebilecek. Bunun dışında burada Binding  metin, Binding URL ve Binding gonderen’e özellikle dikkat ediniz. Bu değişkenler bizim yarattığımız TwitterBilgisi sınıfının değişkenleri. Eğer sizler farklı isimler kullandıysanız buradaki isimleri değiştirmeyi unutmayın.

Uygulamamız bu kadar. Sizler bu uygulamayı kendi ihtiyaç ve isteklerinize göre değiştirebilirsiniz. Umarım biraz olsun yararlı olabilmişimdir.

Uygulamanın Kodları =)

İkinci Windows Phone 7 Uygulamam

Bir önceki yazımda verdiğim bilgiyi yalancı çıkarmış gibi olmak istemem. İkinci uygulamamın okul öncesi eğitimi ile ilgili bir uygulama olacağını söylemiştim. O uygulamamın hatta uygulamalarımın çalışmaları devam ediyor.

O uygulamalar nispeten daha karmaşık olduğu için çıkması biraz daha süre alacak gibi; malum ben de Windows Phone uygulaması yazmaya yeni başladım. Her ne kadar C# biliyor olsam da Windows Phone uygulaması yazarken kullanımı farklı olan şeyler var. Aşağıda bunun bir örneğini vereceğim.

Gelelim bu uygulamama. Bazen sıkça aklımıza takılır ya şu ülkenin başkenti neydi ya da bu ülkenin nüfusu ne kadar; hiç olmadı ya o ülke küçük değil mi gibi sorular. Yeni uygulamam bu sorulara cevap verecek bir nitelikte. Dünya üzerinde yer alan 241 (ben bu kadar ülke olduğunu bilmiyordum) ülkenin tamamının nüfusu ve yüzölçümünü kilometre kare cinsinden içeriyor. 241 ülkenin yarısından biraz fazlasının da başkentlerini içeriyor. Umarım ki zamanla, daha sonraki versiyonlarında tüm ülkelerin başkentleri de olacak. Gönül isterdi ki ülkelerin bayrakları da olsun; maalesef o da yok. Neden diyeceksiniz çünkü o kadar bayrağı bulup tek tek indiremedim. Bir kısmının olsun bir kısmının olmasın da hoş olmadı. Buna bir süreç olarak bakıyorum. Zamanla bayrakları tamamlayabilirsem veya yarısından fazlasını indirebilirsem uygulamama bayraklar da eklenebilir. Kim bilir belki biraz daha iyi bir çocuk olursam tüm ülkeler ile ilgili bilgileri içeren bir uygulamam olabilir =)

Uygulamanın geliştirilme kısmı hakkında biraz bilgi vereyim. Zor değil =) Başlangıç seviyesinde; ancak en azından benim için aklıma her takıldığında açıp bakabileceğim bir uygulama. Uygulamanın bilgileri XML’den okunuyor. Ah XML ah… Windows Phone uygulaması yazarken okuma işlemleri biraz farklı olduğundan beni biraz yordu; ama yorulmadan bir şey öğrenilmez. Öyle form uygulaması yazıyormuş gibi XMLElement, XMLAttribiute falan yok; ne var diye sormayın araştırın öğrenin efenim =)

Uygulamamı 05 Mart 2012 tarihinde göndermiş bulunmaktayım. Umarım kısa süre içerisinde testlerden geçip yayınlanır. Eğer araya yine bir reklam almazsam sıradaki uygulamam okul öncesi eğitim ile ilgili olacak; ama bakalım zaman ne gösterir bilinmez.

Ege Üniversitesi WCF Workshop

Windows Communication Foundation ve Data Access etiğimi 10-11 Mart 2012 tarihinde Ege Üniversitesi Bilgisayar Mühendisliği Bölümü Sinan Yılmaz Laboratuvarında gerçekleşti. Eğitimi Microsoft’un alanında uzman profesyonel yazılımcılara verdiği unvana sahip yani Most Valuable Professional’ı Ahmet Sertay HALKA verdi. Etkinlik iki gün boyunca 12.30’dan 18.00’a kadar sürdü. Eğitim baştan sona oldukça keyifliydi; aralarda beraber yenilen yemekler, içilen kahveler ile çok dostane bir ortam oluştu.

İçerik konusuna gelince WCF büyük ölçüde bitti dersek çok da abartmamış olurum. Yok yok abartmış olurum =) WCF oldukça geniş ve önemli bir konu; çünkü çoğu zaman bir web servisi ihtiyacımız olabiliyor ve bu ihtiyacı WCF ile gerçekleştirebiliriz. Detayları anlatmak bana düşmez sanırım bu konu ile ilgileniyorsanız Sertay Hoca’nın bloğuna göz atabilir ve sorularına kendisine sorabilirsiniz. Biz eğitimde öncelikle WCF nedir, nerelerde kullanılır gibi temel konuları öğrendik. Devamında toplama, çarpma gibi işlemler yapan basit bir servis yazdık. Bu servisleri Silverlight’ta Ajax kullanarak nasıl oluşturabileceğimizi gördük.  İkinci günde ise WCF üzerinde Data Servis kullanarak veri tabanı üzerinden insert, update, delete işlemlerinin nasıl kapılacağını gördük ve bununla ilgili uygulamalar geliştirdik.

İki günün sonunda WCF kullanımı ile ilgili bilgi sahibi olduk bu süre boyunca bizlere katlanan Sertay Hoca’ya teşekkürü bir borç bilirim.