Caner Tosuner

Leave your code better than you found it

MSP ler kitap yazdı !

Windows Phone 8 İçin Uygulama Geliştirme Rehberi

 

Microsoft Student Partners Türkiye ekibinin yaklaşık 1 yıldır üzerinde çalıştığı Windows Phone 8 kitabı Ocak 2014′de yayınlandı. Hızlı değişim ve gelişim gösteren teknoloji ile aynı anda öğrenmenin çok zor olduğu bu dönemde MSP Türkiye ekibi ülkemizde Windows Phone programlama öğrenme hızını biraz daha arttırabilmek amacıyla kolları sıvadı.

 

Windows Phone 8 için Uygulama Geliştirme Rehberi, MSP liderleri ve MSP’ler tarafından planlandı ve yürütüldü. Liderler bu projede yer almak isteyen MSP’leri belirledi. Gönüllü olan öğrenciler ile kitapta yer alacak üniteleri belirledikten sonra konular kişilere dağıtıldı ve bireysel çalışma aşamasına geçildi. Microsoft Virtual Academy, Channel9 gibi online eğitim sitelerinden kendi konuları ile ilgili teknik bilgiler toplayan MSP’ler bu bilgileri kendi tecrübeleri ile birleştirerek yazıya döktüler. Bu projeyi bir an önce sonuçlandırabilmek için düzenli aralıklarla toplanıp projenin durumu gözden geçirildi. Disiplini elden bırakmayan MSP Türkiye ekibi bu verimli çalışmasının meyvesini bu ay aldı ve rehber D&R ve İdefix gibi marketlerde yerini aldı.

Windows Phone 8 Uygulama Geliştirme Rehberi, Windows Phone 8 uygulaması geliştirmek isteyen birinin başka bir şeye ihtiyacı olmadan bu kitabı takip ederek kısa sürede Windows Phone 8 programlamayı öğrenmesini mümkün kılıyor. Tamamen Türkçe içeriğe sahip bu kitap, Windows Phone sayfa tasarımı, harita kullanımı, uygulamanızın Windows Azure ile entegrasyonu gibi konularda bilgiler içeren 23 bölümden oluşuyor. Windows Phone 8 Uygulama Geliştirme Rehberi’ne ulaşmak isterseniz PusulaD&R ve Idefix linklerine tıklamanız yeterli! 

 

Google AdMob, Windows Phone 8’e geldi !!

Google bir duyuru ile AdMob’u Windows Phone 8’e de taşıdığını açıkladı.

            Windows Phone'un çıkışından buyana Google'ın WP ekosistemine ne derece uzak ve isteksiz baktığı bilinen bir şeydi. Öyle ki neredeyse hiçbir servisi için Windows Phone uygulaması geliştirmeyeceğini açıklasada sonrasında başta Youtube olmak üzre bazı ürünleri hakkında geliştirmelerde bulunmuştu. Son günlerde yayınladığı bir haberle nerdeyse bütün platformlarda bulunan Google'ın reklam servisi Admob'un WinPhone ekosistemine de resmi olarak geldiğini duyurdu. Böylelikle WinPhone geliştiriciler için reklamlardan para kazanma şansı gelmiş oldu.

AdMob’un Windows sürümünün henüz beta aşamasında olduğu için Android ile iOS sürümlerindeki özelliklerin tamamını içermediğinin de altını çizmekte fayda var.

Windows Phone 8 için AdMob SDK’sını buradan bilgisayarınıza indirebilirsiniz.

 

Windows Phone Splash Screen Ekleme

Windows Phone projelerinde uygulama açılırken SplashScreen dediğimiz açılış sayfalarını thread kullanarak ekleyebiliyoruz. Bunun için bir adet WindowsPhone projesi oluşturuyoruz ve içerisine MainPage.xaml sayfasından başka 1 adet adı SplashScreen olan portrait page ekliyoruz ve sonrasında aşağıdaki kodları sayfalarımıza ekliyoruz.

SplashScreen.xaml Design Sayfası

<Grid x:Name="LayoutRoot" Background="White" Width="480" Height="900">

<ProgressBar HorizontalAlignment="Left" Margin="49,712,0,149" Name="progressBar1" Width="383" />

<Image Height="666" HorizontalAlignment="Left" Margin="0,0,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="480" Source="SplashScreenImage.png" />

<TextBlock HorizontalAlignment="Left" Margin="151,671,0,193" Name="textBlock1" Text="Lütfen Bekleyiniz..." Width="173" Foreground="Black" FontSize="22" />

</Grid>

SplashScreen.xaml Code Behind

publicpartialclassSplashScreen : PhoneApplicationPage

{

public SplashScreen()

{

InitializeComponent();

this.progressBar1.IsIndeterminate = true//Progressbar’ın çalışmasını söyledik

}

}

 

MainPage.xaml Code Behind

//Metod içerisinde kullanmak için Global değişkenleri tanımlıyoruz

privatePopup popup;

privateBackgroundWorker backroungWorker;

public PrayerTime()

{

InitializeComponent();

ShowSplash(); //SplashScreen metodunu çağırıyoruz

}

privatevoid ShowSplash()

{

this.popup = newPopup();

this.popup.Child = newSplashScreen();

this.popup.IsOpen = true;

StartLoadingData();

}

 

privatevoid StartLoadingData()

{

backroungWorker = newBackgroundWorker();

backroungWorker.DoWork += newDoWorkEventHandler(backroungWorker_DoWork);

backroungWorker.RunWorkerCompleted += newRunWorkerCompletedEventHandler(backroungWorker_RunWorkerCompleted);

backroungWorker.RunWorkerAsync();

}

 

 

void backroungWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)

{

this.Dispatcher.BeginInvoke(() =>

{

this.popup.IsOpen = false;

 

}

);

 

}

 

void backroungWorker_DoWork(object sender, DoWorkEventArgs e)

{

Thread.Sleep(1000); //Splash screen sayfasının ne kadar süre ile ekranda kalacağını belirtiyoruz

}

 

Kodları hatasız yazdıktan sonra uygulamamızı çalıştırdığımızda ekran çıktısı aşağıdaki gibi olacaktır.

 

Windows Phone LightBox(Canvas) Kullanımı

 

Web’de alışık olduğumuz Lightbox’ları Windows Phone’da da bi nevi yapmak mümkün. Nasıl mı ? Canvas kontrolünü kullanarak.

İlk olarka yeni bir WP projesi açalım ve MainPage.xaml design sayfası içerisindeki Grid’in içine 1 adet Canvas kontrolü atalım Canvas tagleri içine StackPanel ve StackPanel’inde içine istediğimiz kontrolleri atalım  TextBox,TextBlock, Buton etc. Canvas’ın Visibility=" "  özelliğini kullanarak tıpkı bir Lightbox gibi çalışmasını sağlayabilriz. Ekranda görünsün istediğimizde Visibility="Visible"diyebilir, görünmesin istediğimizde Visibility=" Collapsed"yaparak ekrandan kaybolmasını sağlayabiliriz.

Yaklaşık 3 ay önce geliştirdiğim ve şuan markette bulunan SonDepremler uygulaması için kullandığım Canvas kontrolünün kodları aşağıda olduğu gibidir.

LightBox’ın ekranda görünmesi için ekranda bulunana herhangi bir kontrol’ün event’i tetiklendiğinde tek yapmanız gereken metod içerisine canvasfiltre.Vi ibility=Visible; demek

Ekrandan kaybolması için ise Canvas içerisinde bulunan canvasclose butonunun Click eventinin metoduna canvasfiltre.Visibility=Visibility.Collapsed; demek yeterli olacaktır.

Mainpage.xaml Design Sayfası

 

<Canvas Canvas.ZIndex="1" Visibility="Visible" x:Name="canvasfiltre" Width="400" Background="White" Height="480">
 
                <StackPanel Width="400">
                    <HyperlinkButton x:Name="canvasclose" Foreground="#d64300" HorizontalAlignment="Right" Content="X" FontWeight="Bold" Canvas.Left="400" Canvas.Top="10" Click="canvasclose_Click" />
                    <StackPanel Orientation="Vertical">
                        <TextBlock TextWrapping="Wrap" FontSize="45" FontWeight="Bold" Foreground="#d64300" VerticalAlignment="Top" Text="Sırala" HorizontalAlignment="Center" TextDecorations="Underline"/>
                        <CheckBox IsChecked="true" Name="chctumdepremler" FontWeight="Bold" FontSize="26" Foreground="#d64300" Background="Red" Content="Tüm Depremler" Click="chctumdepremler_Click"/>
                        <CheckBox Name="chc_3alti" HorizontalAlignment="Left" Content="Şiddeti 3'ten az olanlar" FontSize="26" Background="Red" Foreground="#d64300" FontWeight="Bold" Click="chc_3alti_Click"/>
                        <CheckBox Name="chc_3ustu" HorizontalAlignment="Left" Content="Şiddeti 3'ten fazla olanlar" Background="Red" FontSize="26" Foreground="#d64300" FontWeight="Bold" Click="chc_3ustu_Click"/>
                        <CheckBox Name="chc_5alti" HorizontalAlignment="Left" Content="Şiddeti 5'ten az olanlar" FontSize="26" Background="Red" Foreground="#d64300" FontWeight="Bold" Click="chc_5alti_Click"/>
                        <CheckBox Name="chc_5ustu" HorizontalAlignment="Left" Content="Şiddeti 5'ten fazla olanlar" Background="Red" FontSize="26" Foreground="#d64300" FontWeight="Bold" Click="chc_5ustu_Click"/>
                    </StackPanel>
                </StackPanel>
            </Canvas>