Na co należy zwrócić uwagę publikując aplikację w Marketplace?

Wysyłam świeżo ukończoną aplikację do Marketplace. Niecierpliwie oczekuję na zakończenie procesu certyfikacji. Otrzymuję maila zatytułowanego „Windows Phone Marketplace submission notification”. Tak! To jest wiadomość od Mircosoftu! Otwieram wiadomość i pośpiesznie szukam napisu „Congratulations!”, ale… nie ma! Zamiast tego „We were unable to certify…”. Why?!

Czy podobna historia jest Ci znana? Jeżeli nie, to albo miałeś trochę szczęścia, albo wnikliwie przeanalizowałeś wymogi dotyczące certyfikacji aplikacji w sklepie. W tym artykule postanowiłem opisać kilka „przeoczeń” skutkujących złamanym sercem 😉 (odrzuceniem programu).

Przeklęty GPS

Geolokacja jest dosyć niewdzięcznym narzędziem jeżeli chodzi o proces certyfikacji. Oczywiście sprawdziłem, że należy użytkownika tuż przy uruchomieniu poprosić o zgodę na wykorzystanie GPSa. Wystarczy to zrobić przy pierwszym uruchomieniu. Szczęśliwy ze znalezienia i rozwiązania problemu wysłałem aplikację do Marketplace. Po kilku dniach otrzymałem wiadomość, że coś poszło nie tak. Cóż to mogło być? O geolokację zadbałem…

Nie zadbałem! Nawet najprostsza aplikacja, choćby tylko wypisywała długość i szerokość geograficzną, musi posiadać możliwość wyłączenia geolokacji w dowolnym momencie. Zazwyczaj skutkuje to utworzeniem specjalnie na tę potrzebę nowej strony – „Settings”.

Silverlight i odtwarzanie dźwięków

Pierwsza myśl jaka mi przychodzi do głowy na temat odtwarzania dźwięku w Silverlight to kontrolka MediaElement. Bardzo ładnie możemy ją wstawić w kodzie XAML. Niestety jej użycie pociąga za sobą pewne konsekwencje. Choćbyśmy mieli 10 takich kontrolek jednocześnie dźwięk może odtwarzać tylko jedna. I co z tego? Odtwarzacz muzyki w Windows Phone właśnie z niej korzysta. Co to oznacza? Użytkownik słucha swojej ulubionej piosenki. Włącza naszą aplikację, naciska przycisk i… koniec muzyki! Nasz przycisk „wydaje” dźwięk tym samym wyłącza aktualnie odtwarzaną muzykę.

Jak to ominąć? Są na to dwa rozwiązania. Albo sprawdzamy, czy aktualnie jakaś muzyka jest odtwarzana i jeśli tak to pytamy użytkownika o pozwolenie na jej wyłączenie. Albo kontrolce MediaElement mówimy papa i odtwarzamy dźwięki korzystając z biblioteki XNA.

Do naszego projektu dodajemy referencję do „Microsoft.Xna.Framework„. Następnie możemy posłużyć się bardzo prostą metodą:

void PlaySound(string soundFile)
{
	var stream = Application.GetResourceStream(new Uri(soundFile, UriKind.Relative)).Stream;
	if(stream != null)
	{
		var effect = SoundEffect.FromStream(stream);
		FramewordDispatcher.Update();
		effect.Play();
	}
}

Niestety odtworzyć w ten sposób możemy tylko pliki wav.

A mówili: „używaj styli!”

Czy poprzez wstawienie zwykłej kontrolki TextBlock można nie przejść certyfikacji? Można! Silverlight for Windows Phone wyróżnia się od swojego desktopowego odpowiednika między innymi tym, że posiada kilkanaście „wbudowanych” styli, dopasowujących nasze kontrolki do Metro UI.

Co się dzieje, jeżeli w pośpiechu wstawimy w XAMLu naszego TextBlocka bez odpowiedniego stylu? Wydaje się, że nic złego, dopóki nie ustawimy motywu dla telefonu na „light”. W ten oto magiczny sposób nasz biały tekst na niegdyś czarnym tle przestaje być widoczny. Używanie odpowiednich styli gwarantuje nam, że przy zmianie motywu na light nasz tekst zmieni kolor na taki, który będzie widoczny dla użytkownika.

Na zakończenie

Podobnych przeoczeń można by pewnie wymieniać bez końca. Aż strach pomyśleć o ilu człowiek jeszcze nie zdaje sobie sprawy. Pocieszające jest natomiast to, że z każdą kolejną wysłaną aplikacją jest coraz mniej niespodzianek. Cóż… Praktyka czyni mistrza. Jak wyglądały wasze przygody z procesem certyfikacji?

Share

3 myśli nt. „Na co należy zwrócić uwagę publikując aplikację w Marketplace?

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Spam protection by WP Captcha-Free