W ślady za Apple poszedł Google, który zbudował Android Market - podobną platformę, która miała nawiązać rywalizację z AppStore. Na koniec do rywalizacji dołączył Microsoft, który 16 lutego 2009 roku podczas Mobile World Congress ogłosił powstanie Windows Marketplace for Mobile. W rzeczywistości nowy sklep zaczął działać wraz z pojawieniem się Windows Phone 7. Serwis ten, pomimo niedługiego wieku platformy systemowej Windows Phone 7 rozwija się szybko. Ostatnie statystyki podają, że szybciej niż miało to miejsce w przypadku Android Market. Głównym czynnikiem, który może przyspieszyć rozwój tego typu serwisu jest wiedza deweloperów. Wiedza jak zacząć publikować swoją pracę w sklepie i na tejże pracy zarabiać pieniądze. Wśród firm korzystających z dobrodziejstw okienkowego serwisu z programami znaleźli się Polacy, o czym pisałem w niedawnym artykule "Polacy w Marketplace". Tym razem chciałbym się skupić na sposobie publikacji swoich prac w serwisie, ale również na etapie wcześniejszym, czyli jak rozpocząć programowanie dla tej platformy systemowej. Kompletną ścieżkę od pomysłu poprzez zaprogramowanie aż do publikacji programu pomógł nam przejść Bartłomiej Zass z polskiego oddziału Microsoft, który również zajmuje się tworzeniem oprogramowania dla platformy Windows Phone 7.
Rozpoczynając swoją przygodę z programowaniem na Windows Phone 7 należy zapoznać się z formalnymi wymogami, jakie są na nas nałożone – języki programowania, narzędzia, system operacyjny, platforma sprzętowa. Tak więc zaczynamy.
Marcin Kowalski: Co jest potrzebne, aby zacząć programować pod platformę Windows Phone 7 – jakie narzędzia i skąd je pobrać, z jakich języków programowania musimy korzystać, jakie technologie są wykorzystywane i co dzięki nim można uzyskać?
Bartłomiej Zass: Wszystkie narzędzia są całkowicie bezpłatne. Podstawowym narzędziem jest środowisko Visual Studio 2010 Express for Windows Phone, które można pobrać ze stron Microsoft. Wraz ze środowiskiem instalowany jest emulator, na którym możemy przetestować aplikację nawet nie posiadając telefonu.
Poza Visual Studio, dla twórców gier instaluje się także XNA Game Studio (pobierane w tej samej paczce co Visual Studio).
Językami programowania są: C# oraz Visual Basic (do wyboru). Język C# jest niezwykle prosty do nauki i bardzo wygodny dla twórców, co jest zdecydowaną przewagą w porównaniu do konkurencyjnych platform.
Aplikacje użytkowe i proste gry programuje się w technologii Silverlight dla Windows Phone (jest to ten sam Silverlight, który działa m.in. w przeglądarkach), natomiast gry – w XNA (na podstawie tego samego API można tworzyć gry na konsolę XBOX). Dlatego też główną stroną dla programistów zarówno XBOXowych jak i Phonowych jest: http://create.msdn.com (App Hub). Jest to ich wspólna główna strona startowa, która zawiera linki do narzędzi ale i link do forum (w prawym górnym rogu), na którym można znaleźć odpowiedzi na wszelkie pytania odnośnie programowania Windows Phone 7.
MK: Tak więc kwestię narzędzi oraz języków programowania mamy za sobą. To jednak nie wszystko, bo oczywiście oprócz znajomości danego języka konieczna jest znajomość API. Skąd zatem zebrać potrzebne informacje – tutoriale, dokumentację?
BZ: Na stronach App Hub oraz MSDN.pl (w sekcji Windows Phone) można znaleźć linki zarówno do narzędzi, jak i różnego typu tutoriali. Warto przejrzeć zestaw szkoleniowy (tzw. Windows Phone 7 Training Kit), który w formie dobrze dobranych przykładów i artykułów dostarcza solidnej wiedzy z zakresu podstaw. Dodatkowo polecam w szczególności darmową książkę (ebook – ponad 1000 stron) znanego autora Charlesa Petzolda opisującą od A do Z WP7 pod kątem platformy dla programistów.
Oprócz tego skarbnicą wiedzy jest sam portal MSDN i Channel9. Przykładowo, osoby bardzo początkujące może zainteresować opublikowana tam seria webcastów.
Co ważne, niekoniecznie trzeba znać język angielski. W sekcji Windows Phone portalu MSDN.pl są publikowane najważniejsze newsy i artykuły dotyczące programowania WP7 w języku polskim. Planujemy systematycznie uzupełniać tę sekcję o nowe treści. Pojawi się również cykl polskich webcastów – już niektóre są opublikowane na polskim channel 9 (dla początkujących).
MK: A jakie są wytyczne w kwestii platformy, na której programujemy? Czy programiści mogą tworzyć tylko i wyłącznie korzystając z desktopowego Windowsa, czy również innych platform, np MacOS czy Linux?
BZ: Niestety narzędzia dostępne są tylko dla użytkowników systemu Windows.
MK: OK, droga programistyczna za nami. Chcemy teraz pokazać nasz twór szerszemu światu, czyli mówiąc wprost umieścić nasz program w Marketplace. Jak założyć konto do publikacji oprogramowania w Marketplace?
BZ: Na stronie głównej App Hub znajduje się link „Join Marketplace”. Podczas rejestracji wybieramy typ użytkownika:
1. Student – studenci mają rejestrację całkowicie bezpłatną, mogą legalnie zarabiać na tworzeniu aplikacji bez ponoszenia ze swojej strony jakichkolwiek kosztów
2. Osoba fizyczna – nawet jeśli nie mamy działalności gospodarczej możemy spróbować swoich sił na Marketplace
3. Firma – tu konieczne będzie posiadanie zarejestrowanej działalności
Opcja 2 i 3 wymaga uiszczenia opłaty 99 USD na rok za możliwość publikowania aplikacji, ale dla pierwszych firm z gotowymi aplikacjami mamy lokalne programy całkowicie lub częściowo zwalniające z opłaty (więcej informacji: Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.). Opcja 1 wymaga wykorzystania Live ID zarejestrowanego w tzw. usłudze DreamSpark.
Ważne jest to, że zarejestrowanie się w Marketplace pozwala również wgrywać i testować aplikacje na telefonie. Bez konta w Marketplace oficjalnie nie ma możliwości wgrania aplikacji przez kabelek – wyłącznie poprzez Marketplace. Każdy zarejestrowany deweloper może odblokować 3 urządzenia (w uzasadnionych przypadkach jest możliwość powiększenia tej liczby).
Zarejestrowanie konta na Marketplace pozwala zgłosić bezpłatnie dowolną ilość płatnych aplikacji oraz do 5 sztuk aplikacji bezpłatnych. Za każdą dodatkową aplikację bezpłatną (po przekroczeniu liczby pięciu aplikacji) płacimy ok. 19 USD. Czyli jeśli zgłaszamy aplikacje komercyjne i max. 5 aplikacji darmowych, jedyny koszt jaki musimy ponieść to 99 USD rocznie (lub całkowicie bezkosztowo – dla studentów). Nie ma dodatkowych opłat związanych z zakupem jakichkolwiek certyfikatów, itp. Wszystko jest w ramach tej jednej opłaty subskrypcyjnej.
MK: Czyli załóżmy, że jestem studentem. W jaki sposób mogę potwierdzić swój status?
BZ: Odnośnie potwierdzania statusu studenta – trzeba podczas rejestracji podać swoje Live ID zarejestrowane w tzw. usłudze DreamSpark. DreamSpark jest programem, w ramach którego studenci uzyskują bezpłatny dostęp do wielu narzędzi Microsoft (np. system Windows) – a przy okazji również są zwolnieni z opłat w Marketplace. Żeby zarejestrować swoje konto Live ID w DreamSpark należy wejść na stronę: https://www.dreamspark.com/default.aspx
Z lewej strony jest kilka opcji:
Pierwsza – logujemy się podając interesujące nas Live ID. Następnie musimy podać jak chcemy zostać zweryfikowani. Jest kilka opcji, ale w Polsce obowiązuje podanie specjalnego kodu DreamSparkowego (informacje jak go otrzymać uzyskamy pisząc na adres Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript., informując z jakiej jesteśmy uczelni). Kiedy już podamy kod, możemy wrócić do strony create.msdn.com, która pozwoli ukończyć proces rejestracji bez ponoszenia kosztów.
MK: Tak więc dobrze wiedzieć w jakiej kolejności dokonać rejestracji. Jeśli mamy już za sobą rejestrację konta, zostaliśmy „pozytywnie zweryfikowani” chcemy umieścić swój pierwszy program w serwisie. Jak wygląda proces publikacji oprogramowania - jakie warunki formalne musi spełnić oprogramowanie, aby zostało dopuszczone do obrotu w Marketplace?
BZ: Proces weryfikacji trwa do 5 dni. Po tym czasie uzyskujemy informację o akceptacji lub dokładne informacje o koniecznych do wprowadzenia poprawkach. Uwagi mogą dotyczyć technologii (najczęściej są to praktyczne rzeczy przekładające się na wygodę użytkowania, np.: brak dodanych ikonek do aplikacji czy nie informowanie użytkownika o tym, że nasza aplikacja wyłączy mu muzykę czy skorzysta z usług GPS). Mogą również dotyczyć charakteru „typu” aplikacji (contentu) – np. nie są dozwolone aplikacje pornograficzne. Jeśli mamy wątpliwości związane z typem naszej aplikacji – jest dokument, który dokładnie opisuje co jest dozwolone a czego nie można publikować.
Proces jest przejrzysty i zarzuty mogą mieć charakter wyłącznie obiektywny. Nawet proste aplikacje mogą być dodane do sklepu.
Ważne jest to, że teraz w Marketplace jest ok. 4000 aplikacji. Jest to znacznie mniejsza liczba, niż w konkurencyjnych sklepach, przez co dużo łatwiej przebić się ze swoją aplikacją do użytkownika końcowego.
Przykładem świetnie radzącej sobie firmy może być wspomniana w Pańskim artykule firma Clever-Software i jej bezpłatna aplikacja, która w ciągu ok. 3 tygodni odnotowała około 2000, a płatna aplikacja w ciągu 4 dni – 100 pobrań.
MK: Z tego co powiedział Pan chwilę temu wynika, że po 5 dniach możemy teoretycznie zacząć zarabiać?
BZ: Precyzując - zatwierdzanie aplikacji trwa do 5 dni. Aktywacja konta (po rejestracji) – do 10 dni. Wystarczy zgłosić przez create.msdn.com przy pomocy specjalnego formularza „Publish to marketplace” plik XAP (skompilowana aplikacja), uzupełnić opis, dodać screenshoty, nazwę aplikacji, słowa kluczowe i tyle.
MK: Nasz program został zatwierdzony, możemy go opublikować. Nie chcemy jednak korzystać z prawa do pięciu darmowych aplikacji. Jak wygląda sposób rozliczania zysków - czy całość otrzymuje producent oprogramowania i czy są minimalne/maksymalne ceny za oprogramowanie?
BZ: Podobnie jak u konkurencji producent otrzymuje 70% zysku. 30% to cały ekosystem związany z obsługą: w tym operatorzy, firma certyfikacyjna i Microsoft. Istnieją trzy zasadnicze grupy programów. Aplikacje mogą być bezpłatne, płatne ale z wersją bezpłatną trial (można to potraktować albo jako czasowy okres próbny albo możliwość odblokowania pełnej funkcjonalności) oraz po prostu płatne. Płatne aplikacje zaczynają się od 1 USD za aplikację nawet do droższych – np. 10 USD. Górna granica określona została na 500USD. Możemy określić, na których rynkach nasza aplikacja ma być dostępna. Środki można wypłacać, kiedy uzyskamy 200 USD na naszym koncie.
MK: Teraz czas rozliczyć naszą pracę. Opublikowaliśmy program, który okazał się strzałem w dziesiątkę i sprzedaje się jak świeże bułeczki. Czy zyski w Marketplace są opodatkowane i jak je zrealizować?
BZ: Niestety z uwagi na regulacje podatkowe USA jest to na tą chwilę dość skomplikowane. Wygląda to mniej więcej tak:
Żeby wypłacać pieniądze, trzeba wypełnić dokument W8B i wysłać go do Redmond (jest to warunek konieczny). Wtedy potrącone nam zostanie 30% kwoty podatku dochodowego w USA. Jeśli chcemy, żeby podatek nie był nam potrącany w USA ale płacony w Polsce, musimy mieć tzw. numer ITIN (Individual Taxpayer Identification Number). Można go uzyskać na kilka sposobów. Jednym z nich jest udanie się do ambasady. Niestety, polskie ambasady nie umożliwiają wydawania ITINów. Dlatego – trzeba wysłać paszport (lub jego poświadczoną kopię) wraz ze stosownym formularzem do jednej z zagranicznych placówek obsługujących ITIN.
MK: Jakie konto należy posiadać, aby móc wypłacać pieniądze - czy wystarczy polskie, czy konieczne jest posiadanie konta za granicą?
BZ: Jeśli chodzi o kwestię wypłat możemy oczywiście skorzystać ze standardowego polskigoe konta w banku. Potrzebne są w tym celu numery SWIFT i IBAN. Tak więc nie trzeba mieć konta w USA. Wypłaty można realizować po uzbieraniu 200 USD na swoim koncie.
MK: Tak więc wiemy chyba wszystko co jest konieczne, aby rozpocząć działanie w sklepie Marketplace. Dziękuję za poświęcony czas i za cenne wskazówki.
BZ: Dziękuję.