Windows Phone Dev Center nedir, nasıl kullanılır?

Windows Phone Dev Center, Microsoft’un Windows Phone geliştiricileri için sunduğu bir platformdur. Bu platformu kullanarak yazdığınız uygulamaları Windows Phone Store’a yükleyebilir, Store’da olan uygulamalarınızın analizini yapabilirsiniz. Yazımın sonunda Store’a nasıl uygulama yüklenir ve nasıl analiz yapılır sorularının cevaplarını bulmuş olacaksınız.

Adım adım, bir uygulama Store’a nasıl yüklenir görelim;

1. Dev Center’da giriş yapıp Dashboard’a girince aşağıdaki ekranla karşılaşıyoruz. Burada işlemde olan uygulamalarımızı ve hemen altında uygulamalarımızın ne kadar indirildiğini kolayca görebiliriz. Sol üstte bulunan Submit App‘e tıklayarak yeni bir uygulama yüklemeye başlayabiliriz.

1

2. Bu kısımda bizden uygulamamızın bilgilerini doldurmamız ve package( package nedir diyorsanız daha önceki yazımı okuyabilirsiniz: https://tanerutku.wordpress.com/2014/01/31/xap-file-nedir/ )’ı yüklememiz gerekiyor.

2

3. App info’yu düzenleyip kaydettikten sonra .xap dosyamızı yükleyebiliriz. Add new linkine tıkladıktan sonra yüklememiz gereken dosyamız, uygulamanın bulunduğu dizin/Assets/Bin/Release/ klasöründe bulunan .xap uzantılı dosyamızdır. Release klasörü boşsa uygulamayı release modda çalıştırmanız gerekmektedir.

3

.xap dosyası yüklendikten sonra store’da gözükecek olan açıklamayı, keywordslerinizi, uygulama iconunuzu ve uygulamanızın ekran görüntülerini yüklememiz gerekli.

4. Uygulamanızda herhangi bir reklam veya harita servisi kullanmayacaksanız yapmanız gerekenler bu kadar.

4

Uygulamanızda konum bilgisi kullanıyorsanız Map services kısmından id ve token almanız gerekli.

11

Kullanımı ise şu şekilde;

12

Review and Submit diyerek uygulama yükleme işlemimizi bitiriyoruz. 🙂

Windows Phone Dev Center hakkında değinmek istediğim bir diğer konu raporlar. Dev Center bizlere bazı raporlar sunmakta. Bu raporları inceleyerek uygulamanızı hangi ülkeden, hangi yaş aralığından, hangi cinsiyetten kullanıcılar indirmiş rahatlıkla bakıp analiz edebilirsiniz.Rapor dosyasında ulaşabileceğiniz bilgiler;

  • Satın alma tipi
  • Ülke
  • Dil
  • Yaş aralığı
  • Cinsiyet
  • Telefonun işletim sistemi
  • Telefonun üreticisi
  • Operator
  • İndirilme

5

Sağ alt köşedeki Export linkine tıkladığınız zaman detaylı şekilde hazırlanmış raporun exelde hazırlanmış halini indirmiş olacaksınız.

2

App downloads report

Crash count report

Crash count report

iOS ve Android’e gerçek bir rakip: Windows Phone 8.1


Windows Phone 8.1 ile birlikte Windows Phone, ben de buradayım dedi adeta! Windows Phone ‘nun en büyük eksikliklerinden biri arka plan resmi seçeneğinin olmamasıydı. Bu da telefonun görünümünün sıradanlaşmasına sebep oluyordu. 8.1 ile Microsoft, tasarıma daha çok önem vermiş gibi gözüküyor. Öyle de olması lazımdı, çünkü günümüzde görsellik birçok şeyden önce gelmekte. 8.1 ile gelen harika birçok özellik var fakat ben bu yazımda görsellik üzerinde durmak istiyorum.

Arka plan resmini değiştirebildiğimiz gibi daha fazla kutucukta gösterebiliyoruz yeni Windows Phone 8.1 ile birlikte. Transparency Tiles ile uygulamaların kutucuklarını transparan yapıp istediğimiz şekilde arka planımızı şekillendirebiliyoruz.

Transparency Tiles indirmek için;

http://www.windowsphone.com/en-us/store/app/transparency-tiles/f4125e62-a88b-4f7d-b8f6-3cd60069f105

Untitled-1

Telefon değil siz kendinize göre görünümü ayarlıyorsunuz, diğer işletim sistemlerinden farkı da burda göze çarpıyor Windows Phone 8.1’in.

Birkaç örnek vermek gerekirse;

TileArtTips

TileArtGuyTips8

 

Bunların yanında geçen haftalarda Live Lock Screen uygulamasının betası çıktı, bu uygulama ile dinamik ekran kilidi oluşturabiliyoruz. Henüz beta olsa bile bence çok başarılı. Gerçekten hoş bir görünüm kazandırıyor telefona.

Live Lock Screen BETA indirmek için;

http://www.windowsphone.com/en-us/store/app/live-lock-screen-beta/f5685f66-5e43-46f9-b95e-bfc2a4a15de3

12

Ve benim telefonumdan bir görüntü;

Untitled-2

MVVM nedir?

Merhabalar, bu yazımda MVVM design pattern’i açık bir şekilde anlatmaya çalışacağım. Genelde bir uygulamayı yazarken geleceğini düşünmeden yazarız, buna bir çeşit alışkanlık diyebiliriz. Eğer ilk kez bir design pattern ile uğraşacaksanız ilk tepkiniz: “ne gerek var buna ya ben zaten aynısını daha kısa sürede bildiğim yöntemle yapıyorum” olacak, benim de olmuştu 🙂 Ama yazacağınız uygulama büyük ve geliştirilebilir bir uygulama olacaksa bu klasik yöntemden vazgeçmeniz gerekecek. Neden mi?

Çünkü;

  • Tüm uygulama mantıklarını sayfanın .cs uzantılı dosyasına yazacağınız için ileride geliştirme aşamasında kodlar içinde kaybolacaksınız.
  • XAML’i modifiye etmek veya değiştirmek için ekstra çaba sarfedeceksiniz.
  • Arkada çok fazla kod olacağı için , en ufak bir arayüz değişikliğinde gereksiz zaman kaybeceksiniz.
  • Sayfada gösterilecek bilgiler bir data servisten geliyorsa, bunun tasarım sırasında görünümünü göremeyeceksiniz, doğal olarak tasarımınızı çok fazla geliştiremeyeceksiniz.

 Peki nedir bu MVVM?

MVVM,  MVC’nin bir çeşit XAML’a uyarlanmış hali diyebiliriz. Bu yüzden MVC ile benzer yanları çoktur, eğer MVC ile uğraşanlarınız varsa MVVM’e adapte olmak o kadar da zor olmayacak. MVVM ‘i farklı kılan nokta ise, data binding, ViewModel ve View ile arasında olan çift taraflı iletişim. MVVM’i XAML ve .NET kullanılan her uygulamada kullanmak mümkün.( Windows Phone, Windows Store)

MVVM 3 yapıdan oluşmakta;

Model, business logic dediğimiz uygulamanın mantığını ve gerekli tüm servisleri kapsar.

View, arayüzdür, yani son kullanıcının gördüğü kısımdır.

ViewModel, bu iki yapı arasındaki iletişimi sağlar, ViewModel için en güzel yakıştırma orkestra şefi olabilir, uygulamayı koordine eden en önemli yapı dersek yanlış olmaz sanırım.

viewmodel

Genelde her bir View, bir ViewModel’a sahiptir. Böylece bağımlılık minimuma yaklaşmış olur. View-ViewModel arasında çift yönlü iletişim: Data Binding vardır, ViewModel-Model arasında ise klasik metot çağırmalar mevcuttur.

Bu 3 yapı sayesinde MVVM, business logic ile arayüzü birbirinden ayırır, bu sayede tasarımcı bir yandan tasarımını yaparken, developerda arkadaki işlemleri yapar. Bu aynı zamanda MVVM’in kullanım amacıdır. Böylece uygulamanın geliştirilmesi ve  test edilmesi kolaylaşır.

Bir sonraki yazımda, Windows Phone 8’de MVVM design pattern’in kullanılırlığını gösteren örnek bir uygulama üzerinden anlatıma devam edeceğim.

 

Windows Phone Haritada Konum Gösterme

Konum tabanlı uygulamalar çok yaygın olarak kullanılıyor ve çok yaratıcı fikirler çıkabiliyor. Bu yüzden bu yazımda Windows Phone Map kontolünü kullanarak, konumumuzu harita üzerinde gösteren basit bir uygulamayı adım adım nasıl yaparız anlatmaya çalışacağım. Bu yazımın sonunda Map kontrolü ve Windows Phone API içinde bulunan Geolocator sınıfı hakkında bilgiler edineceksiniz.

Yeni bir Windows Phone projesi açarak başlayalım, açtığımız projeye bir adet map kontrolü ekleyip tüm ekrana yayılacak şekilde Design kısmından ayarlayalım.

1

C# kodumuzda kullanacağımız için, XAML kısmında eklediğimiz map kontrolünün Name attribute’ne  isim vermeliyiz.

2MainPage’in Loaded event’ı ile ilgileneceğiz. InitializeComponent(); altına Loaded += yazdıktan sonra bir kere TAB’a bastığınızda MainPage_Loaded eklenecek, bir kere daha TAB’a bastığınızda handler otomatik olarak oluşacak ve kodlarımızı yazmaya başlayacağız.

3

4

Haritayı güncellemeyi ayrı bir metot  üzerinden yapacağım için bir metot oluşturdum, Haritada konum göstereceğimiz için cihazın GPS sistemini kullanan Geolocator sınıfına ihtiyacımız var. Geolocator sınıfını kullanmamız için Windows.Devices.Geolocation namespace’ini eklememiz gerekiyor. Üstüne geldiğinizde tek tıklamayla namespace’i ekleyebilirsiniz.

5

Geoposition sınıfını kullanarakta, geolocator’dan gelecek koordinatları alacağız. En sonunda Map’imizin SetView’ini de latitute, longtitude ve yakınlaştırma derecesini vererek konumumuzu haritada göstermeye hazır hale getireceğiz. Unutmamız gereken şey, konumu alırken await kullandığımız için metotu async yapmalıyız.

6

Ve MainPage_Loaded handler’ın içinde yazdığımız  HaritayiGuncelle(); metotunu çağırmalıyız.

7

Başka bir değişiklik yapmadan projeyi çalıştırdığımızda hata verecek çünkü Map kontrolü Mapping ve Location Capability’lere gereksinim duyar. Bunları açmak için;

Prefences – WMAppManifest.xml – Capabilities konumunu izleyip ID_CAP_LOCATION ve ID_CAP_MAP seçili hale geldiğinden emin olun.

8

Emülatorde çalıştırdığınızda sürekli aynı yer gelecek karşınıza, endişelenmeyin kodunuz sorunsuz çalışıyor demektir eğer Redmond ise emülatorde gözüken konum. Emülator bir sanal makina olduğu için konum servisini kullandığımızda Windows Phone emülator bize Microsoft HQ konumunu gösteriyor. Eğer fiziksel bir cihazda uygulamayı çalıştırırsanız sorunsuz çalıştığını göreceksiniz.

9

Herşey güzel fakat herhangi bir yer gösterici yok. Bunun için birkaç satır kod yazmamız gerekiyor.

 


            var overlay = new MapOverlay { GeoCoordinate = new GeoCoordinate(position.Coordinate.Latitude, 
                          position.Coordinate.Longitude)  };

            var img = new Image { Width = 56, Height = 56 };
            img.Source = new BitmapImage { UriSource = new Uri("/Assets/mapmarker.png", UriKind.Relative) };

            overlay.Content = img;

            var mapLayer = new MapLayer { overlay };
            MapKontrol.Layers.Add(mapLayer);

10

Şimdi daha güzel oldu fakat alttaki warning’ten kurtulmamız gerek. Bunun için devcenter’dan uygulamanız için authentication ID ve token almanız gerekiyor. Submit App’e girdiğinizde Map services kısmından gerekli id ve token’ı alabilirsiniz.

11

Kullanımı ise şu şekilde;

12Şimdi uygulamamı çalıştırdığımda herşey sorunsuz gözüküyor:

13

How To Use Microsoft Remote Desktop App on Windows Phone 8.1

Last week, Microsoft announced the preview of the Remote Desktop app for Windows Phone 8.1. But there are some questions; How to add and access a new desktop? If you wonder it, keep going to read !

1-) Download the app from the Windows Phone Store.

2-)  You have to allow remote connections on your computer. To allow; search “remote” and then select “Allow remote access to your computer”

1

2

3-) Now, open your app, click add bar, then there is a textbox for your PC’s IP address.

3

4

4-) Use Command Prompt(CMD) to learn your IP address. (ipconfig)

5

6

5-) Enter your ip address to textbox and save it.

7

6-) Tap image and enter your credential which is your mail address and password to login your PC.

8

9

7-) That’s it ! Now, you can connect your PC from your Windows Phone device.

Here are my screenshots from my phone:

 

10

11

Windows Phone 2. Sayfaya Parametre Geçirme

Merhabalar, bu yazımda key-value kullanarak 2. sayfaya parametre geçirmeyi anlatacağım. Parametrelerin geçtiğini görmek için boş bir Windows Phone 8 projesinin içine 3 adet textblock, 3 adet textbox ve 1 adet buton ekleyim. Butona tıklayınca 2. sayfaya ad-soyad, mail ve doğum tarihi değişkenlerini göndermek istiyorum. MainPage’im bu senaryoda aşağıdaki gibi;

1

2

Şimdi de 2. sayfamızı ekleyelim;

3

4

2. sayfada bir textblockta değişkenlerimi yazdıracağım, parametrelerin geçip geçmediğini böylece gözle görebiliriz. Debugging yaparakta değerlerin geçip geçmediğini görebilirsiniz fakat ben textblock kullandım. 2. safyamın xaml ‘i aşağıdaki gibi;

6

Şimdi MainPage.xaml.cs içine gidip Buton Click eventimizi kodlamamız gerekiyor.

5key-value ilişkisini kullanarak parametre geçiriyorum. Gördüğünüz gibi IkinciSayfa.xaml ‘den sonra ? var ve  sonrasında aralarında & olmak şartıyla value ve keylerim bulunmakta. Bunları belirledikten sonra yapmanız gereken bu url’i Navigate’e vermek. Yapmamız gerekenler 1. sayfamızda bu kadar. 2. sayfada OnNavigatedTo ‘yu override etmemiz gerekiyor. Kodlamasına geçecek olursak, 3 tane parametre yolladığım için 3 değişken tanımladım. Daha sonra, gönderdiğim key’de value varsa o value ‘leri tek tek tanımladığım değişkenlere atadım. Yani örneğin “adsoyad” olarak ilk sayfadan gönderdiğim key’i görüyorsa, o key’de bulunan değeri _adSoyad değişkenime QueryString kullanarak atadım.

8

Projeyi çalıştırdığımızda aşağıda gördüğünüz gibi ilk sayfada verdiğim değerler ikinci sayfaya başarıyla geçiyor.

ss1

ss2

Windows Phone LongListSelector Kullanımı

LongListSelector kontrolü bize büyük verilerimizi ekranda göstermeyi sağlar. LongListSelector’e örnek olarak Twitter gösterilebilir. Bununla ilgili kod örneğini msdn’de görebilirsiniz: http://code.msdn.microsoft.com/wpapps/TwitterSearch-Windows-b7fc4e5e

Ben bu yazımda basit bir şekilde verileri nasıl longlistselector ile kullanırız ondan bahsedeceğim. LongListSelector kullanarak bir takım kişilerin isim ve maillerini göstereceğim.  Öncelikle boş bir proje açalım ve içine LongListSelector kontrolünü ekleyelim.

1

Projeye sağ tıklayıp Add-Class yollarını izleyerek bir class oluşturalım.

2

3

Bu class’ımızda verimizin property’lerini belirteceğiz, daha sonra bunu MainPage’de kullanacağız. Bu yüzden class’ı oluşturduğumuzda ilk yapacağımız iş bunu public yapmak. Eğer siz hiçbirşey yapmazsanız compiler bunu otomatik olarak private algılar.

4

Benim senaryomda şuan sadece isim ve mail olduğu için bu property’leri ekledim. prop yazıp tab’a iki kere tıkladıktan sonra kolayca property oluşturabilirsiniz, bu da Visual Studio’nun sunmuş olduğu bir güzellik 🙂

5

Data classımızla işimiz bu kadar. Şimdi MainPage.xaml.cs ‘de verilerimizi ekleyeceğiz. Bunun için global bir List oluşturup ona Add metoduyla tek tek kullanıcıların isim ve maillerini gireceğiz.

6

Ekledikten sonra, son olarakta DataContext’imize verilerimizi eklediğimiz listeyi atamayı unutmuyoruz.

En başta eklemiş olduğumuz LongListSelector’un ItemSoruce’unu Binding yaptıktan sonra ItemTemplate oluşturmamız gerekiyor. StackPanel’i bir konteynır olarak düşünebilirsiniz. StackPanel’e eklenilen veriler alt alta veya yan yana sıralanır. Eğer hiçbir şey yapmazsanız StackPanel default olarak alt alta ekler. Yan yana eklemek için  aşağıdaki xaml kodunu kullanabilirsiniz.

<StackPanel Orientation="Horizontal" >

7İlk textblock ‘ a isim, hemen altına ikinci textblock’a da mail’i yazmasını istediğim için yukarıdaki gibi kullandım.Emülatorde çalıştırdığımda karşıma çıkan sonuç;sonuc