İlkay İlknur

just a developer...

Windows 8 Application Manifest Kavramı ve Package.appxManifest Dosyası

Merhaba Arkadaşlar,

Bir Windows 8 uygulaması geliştirmesi sırasında adını sıklıkla duyacağımız kavramlardan biri de "Application Manifest" kavramı. Geçen yazımızda hatırlarsanız bir Windows 8 Solution'ı içerisindeki itemlardan bahsederken Package.appxManifest isimli bir dosyadan sözetmiştik ve kısaca "geliştirmiş olduğumuz uygulama ile ilgili metadatayı içerisinde barındıran dosyadır" demiştik. Bu yazımızda ise metadata kavramını biraz daha açarak bu dosya içerisindeki kavramları inceliyor olacağız. Çünkü ileriki yazılarımızda kullanacağımız yapılar manifest dosyasında bir takım tanımlamaları yapmamızı gerektiriyor olacak. ;)

Windows 8 Uygulama Metadatası Nedir ?

Öncelikle metadata kavramına yabancı olanlar için metadata ne demektir diye baktığımızda "data about data" tanımıyla karşılaşmaktayız. Biraz akıl karıştırıcı bir tanım olsa da aslında en doğru ve en güzel açıklayan tanımlardan biri olduğunu söyleyebiliriz, yani tuttuğumuz verinin sahip olduğu özellikler. Örneğin database tarafında tuttuğunuz verilerin tipleri(varchar vs..) aslında o verinin metadatasıdır.

Evet bu kadar metadata felsefesi yeterli. :) Windows 8 uygulamasının metadatası da aslında geliştirdiğimiz uygulamanın bir takım özellikleri, tanımlamalarıdır ve Package.appxmanifest isimli dosyada tutulmaktadır. Aslında Windows Phone 7 uygulaması geliştiriyorsanız WMAppManifest.xml dosyasının Windows 8 tarafındaki eşleniğidir Package.appxManifest dosyası.

Bir Windows 8 Application solutionı yarattığımızda Visual Studio'nun üretmiş olduğu Package.appxManifest dosyasına tıkladığımızda aslında bu dosyanın içeriği Xml olmasına rağmen Visual Studio bu dosyanın kolayca editlenebilmesi için bize özel bir arayüz sağlamakta ve tıklandığında bu arayüzü default olarak açmakta.

Manifest dosyasını hızlı bir şekilde editlememizi sağlayan bu ekrana baktığımızda 4 ana bölüme ayrılmış olduğunu görüyoruz. Bunlar,

  • ApplicationUI
  • Capabilities
  • Declerations
  • Packaging

ApplicationUI

ApplicationUI tarafına baktığımızda uygulamamızın daha çok UI taraflı settinglerini belirtmek için kullanabileceğimizi görmekteyiz.

ApplicationUI tabının ilk bölümünde uygulamamızın isimlendirmesi, açıklaması ve uygumanın ilk başlangıcının hangi tip üzerinden yapılacağı belirtilmekte. Yukarıda gördüğümüz gibi uygulama App tipi üzerinden ayağa kaldırılmakta.

Not: Entry Point olarak verilecek olan tiplerin Windows.UI.Xaml.Application tipinden türetilmesi gerekmekte.

ApplicationUI'ın ikinci bölümünde ise karşımıza ilk olarak uygulamamızın destekleyeceği rotationlar sorulmakta. Bu noktada eğer uygulamanızda sadece belirli rotationları destekleyecekseniz buradan ilgili seçimleri yapabilirsiniz. Aksi takdirde tüm rotationların desteklendiği kabul edilmekte.

Bir alt bölüme geçtiğimizde ise uygulamamızın temel olarak kullanılacak olan görsellerinin belirlenebildiği görmekteyiz. Bu görseller, uygulamamızın listelemelerde ve kullanıcının seçimine göre start menüsünde kullanılacak olan small logo, yine start menüsünde kullanılabilecek olan wide logo ve standart logo olmakta. Bunun yanında tilelar üzerinde isim gösterilip gösterilmeyeceği gibi gösterilecekse ne gösterilecek gibi settingler de bu bölümde bulunmakta. Son olarak ise uygulamanızda default olarak kullanılacak olan background ve foreground renkleri de buradan belirlenebilmekte.

ApplicationUI ekranındaki üçüncü ve son kısımda ise Notification ve Splash Screen ile ilgili ayarlar bulunmakta. Burada uygulamanızda Toast ve Lock Screen Notificationlarının desteklenip desteklenmediğini belirtebilir ve notificationlarda kullanılacak badge logoyu da buradan ekleyebilirsiniz.

En son kısımda ise uygulamanız ilk açıldığı sırada gösterilen Splash Screen görselini özelleştirebilirsiniz ve kendi görsellerinizi yerleştirebilirsiniz.

Capabilities

Capabilities tabına geçtiğimizde bu kısımda uygulamamızın içerisinde ihtiyaç duyacağı özellikleri-yetenekleri belirtebileceğimizi görüyoruz. Peki yetenekler derken neleri kastediyoruz ?  Örneğin diyelim ki uygulamanız içerisinde kullanıcı webcam'ini açmak istiyorsunuz. Bunu yapmak için öncelikle manifest dosyasında bu kaynağa ihtiyaç duyacağınızı belirtmeniz gerekiyor. Aksi takdirde istediğiniz kadar implementasyon yapın webcami açamıyorsunuz !  Bu bölüm aynı zamanda Store tarafında kullanıcıya uygulamayı yükletmeden önce "this application requiress webcam access..." şeklinde mesajların verilmesi sırasında da kullanılıyor olacaktır ve kullanıcıdan da bu kaynakları kullanmak üzere onayı alıyor olacaksınız.  Bu nedenle uygulamanız içerisinde implemente ettiğiniz özellikler buradan enable etmeyi unutmayın ;)

Declerations

Declaration tabı ise bizim uygulamamızın dışarıya açılan genişletme noktasıdır. Örneğin uygulamanızın search menüsünde görünüp kullanıcıların sizin uygulamanız içerisinde search yapmasını istiyorsanız buradan ilgili item'ı seçip manifest dosyasına eklemeniz gerekir. Ya da uygulamanızı bir share target olarak belirtip kullanıcıların bazı içerikleri sizin uygulamanızı kullanarak paylaşmasını sağlayabilirsiniz.

Packaging

Manifest dosyamızdaki son tab ise Packaging bölümü. Bu kısımda ise artık uygulamamızı bitirip deployment safhasına geldiğimizde kullanacağımız Package ile ilgili settingleri bu alandan belirleyebiliyoruz. Package'ın görünen isminin ne olacağı, store logosu ve developer sertifikası ile ilgili bilgileri buradan değiştirebilmekteyiz. Package Name ise paketin unique numarası olmakta ve Guid kullanılmakta.

Evet arkadaşlar gördüğünüz gibi bir Windows 8 uygulaması solution'ı içerisindeki en önemli kavramlardan birinin de Application Manifest kavramı olduğunu bu yazımızla beraber görmüş bulunmaktayız. Şimdi artık uygulama geliştirmeye hazırız ve bir sonraki yazımızda artık daha eğlenceli kısımlara geçiyor olacağız. ;)

Görüşmek Üzere,



Yorum Gönder