WP7 RAGE!


Zacząłem od tego humorytycznego obrazka ale mniej więcej tak wyglądają ostatnie dyskusje pod newsami.

Małe intro ode mnie:
- jestem programistą
- posiadam WP7 w postaci HTC Mozart 7
- mam dostęp do Marketplace oraz Xbox Live

Niestety w wiekszości przypadków ludzie wytykają błedy WP7 cytując wpisy z internetu lub zasłyszane opinie. Oczywiście innym przypadkiem są fanboye Apple oraz Google ale to już bardziej sprawa przekonań, wiary oraz religii :) (przyznam, że jestem fanboyem M$ ale ze sporą dozą zdrowego podejścia ;) )

Po artykułach zebrałem nastepujące bolączki dotyczące WP7:
1. Brak mozliwości instalacji aplikacji spoza sklepu
2. Spore opłaty licencyjne za możliwość publikowania aplikacji
3. Zablokowanie ChevronWP7
4. Ograniczenia dotyczące telefonów z systemem M$
5. Dziurawy i kiepski system operacyjny
6. Niemodyfikowalny i kiepski interfejs użytkownika

To były takie ogólne bolączki, znalazłem też o wiele bardziej precyzyjne:
7. Brak multitaskingu
8. Brak managera plików
9. Brak wsparcia starszych aplikacji
10. Brak wsparcia w VS2008
11. Brak wsparcia dla WM6 i starszych w VS2010
12. XNA
13. Brak wsparcia dla kodu natywnego

Zanim wypowiem się odnośnie tych punktów należałoby dodać, że pierwszym problemem z jakim ja się napotkałem z WP7 to brak dostępu do Marketplace oraz Xbox Live. Obdzwoniłem i HTC i M$ - wszyscy kazali czekać na aktualizację Mango, która odpali te usługi w Polsce. Były sposoby aby to zrobić niezbyt legalnie ale nie po to kupowałem ten telefon za spore pieniądze aby go hakować. Rozwiązanie było całkiem proste. Wystarczyło założyć nowy profil Windows Live i podać się w nim np. za obywatela Wielkiej Brytanii. Działa nawet kupowanie aplikacji. Przyznam, że zajęło mi to prawie tydzień i kilka resetów telefonu do domyślnych ustawień firmowych. Rzecz cudowna, która wprawila mnie w zachwyt to to, że kontakty zapisywane w usłudze Live można wyeksportować do pliku CSV - raj dla programistów.

A teraz do meritum.

1. Marketplace

Przyjęło się, że aplikacje i te darmowe i te płatne mają być w 100% bezpieczne dla telefonu, dedykowane pod niego. Zycie oczywiście pisze własne scenariusze i nawet bardzo restrykcyjna polityka Apple dopuściła kilka szkodliwych aplikacji, na szczęście Apple szybko się zorientowało i je usunęło. Co prawda nie miałem tu chwalić konkurenta M$ ale tu trzeba przyznać spory plus dla nich, w Marketplace chyba jeszcze nei było podobnej sytuacji ale to chyba raczej kwestia czasu myślę, pewnych rzeczy ciężko jest uniknąć.

2. 99 USD

No to boli... Mnie osobiście też. Chociaż jakby spojrzeć na to z innej strony to jeśli opublikuję dobrą aplikację za 1 USD to po 100 pobraniach mam 1 USD do przodu :) Jest to oferta skierowana do programistów, a nie zwykłych użytkowników, więc raczej tłumy nie powinny z tego powodu płakać.

3. ChevronWP7

Nie było wielkich rozpraw sądowych jak u konkurencji, nie było groźnych słów. Ekipa ChevronWP7 dogadała się z M$ i napisała wyraźnie, że usuwając aplikację ze swojej strony nie zaprzestają projektu ale zmieniają jego wytyczne. Zresztą od samego początku miała to być furtka dla aplikacji homebrew, a nie do łamania telefonu dla samego faktu łamania. Na chwilę obecną wygląda to tak, że aby wypuścić aplikację do Marketplace muszę wpłacić 99 USD, a aby ją przetestować u siebie, wystarczy 9 USD za ChevronWP7. Moim zdaniem to nei jest wcale zła opcja, biorąc pod uwagę, że wszystko odbywa się legalnie i pod patronatem M$, bez obawy o zablokowanie telefonu. Zaznaczam słowo LEGALNOŚĆ bo jako programista popieram docenianie czyjejś pracy.

4. Ograniczenia sprzętowe

Mamy zasadniczo dwa podejścia:
- Apple - jeden system - jeden model telefonu
- Google - jeden (?) system - wiele modeli telefonu
Niby te drugie podejście jest lepsze ale skutkuje wieloma odmianami systemu operacyjnego, nieprzenoszalnościa plikacji, problemami z update'ami (dwa ostatnei fakty zacytowałem, nie spotkalem się z tym osobiście), z kolei Apple trzyma wszystko twardą ręką i pomimo cichych protestów jakoś na tym dobrze wychodzi.
Gdzies pośrodku pomiędzy tymi rozwiązaniami plasuje się WP7 ograniczając producentów do 3ech przycisków o konkretnych zastosowaniach (opcjonalnie pełna wysuwana klawiatura QWERTY, przycisk aparatu oraz głośności), minimalnymi wymaganiami odnośnie procesora, karty graficznej oraz RAMu i kilku rozdzielczości ekranu. Efekt? Poki co nie ma problemu aby gry nie działały na którymś telefonie WP7. Na razie nie dziala mi tylko aplikacja "latarka" (co ciekawe od HTC) ale to chyba z konstrukcji lampy błyskowej wynika i to ewidentnie problem HTC, a nie M$

5. Windows Phone 7

Windows jest dziurawy, kiepski i najgorsze zło tego świata. Słowa jak mantra powtarzane przez ludzi, którzy sami i tak wykorzystują platformę Windows. Nie znam niezawieszalnego i zupełnie kuloodpornego systemu. Nawet C64 trzeba było czasem zresetować, a Pegasus nie zawsze poprawnie wgrywał cartrige. M$ od zawsze wydaje poprawki, ServicePack'i (poprawki do poprawek też) aby system działał lepiej, owszem można wyjść z założenia, że lepiej przysiąść nad systemem dłużej i wypuścić go lepiej dopracowanym ale:
- rynkiem rządzą się swoje prawa, jak coś za długo nie jest wydawane staje się nierentowne i projekt jest zatrzymywany
- nikt tak nie wykrywa błędów w systemie/aplikacjach jak użyszkodnicy, więc najlepiej im dac w łapki - niech się bawią

Zachwycił mnie pewien komentarz, który muszę przytoczyć :)

"Co to jest "udanego systemu?" i jakich cech brakuje WP7 do miana wg. CIEBIE: udanego systemu?"
Wszystkiego. Od ciekawego i modyfikowalnego interface'u zaczynając.

Więc udany i ciekawy system to głównie wodotryski :)

6. Metro

Powyższy cytat ładnie pozwala przejśc do nowego interfejsu Metro. Jest... przede wszystkim inny. Dla mnie przejście na iOS/Android gdzie były na kilku "pulpitach" aplikacje było rewolucją ale niekoneicznie mi się podobało, było trochę... bałaganiarskie, zwłaszcza jak sie mialo zainstalowane sporo aplikacji. Metro to całkiem ciekawie kategoryzuje. Przyznam, że wciaż się sowajam z "kafelkami" ale czy bedzie to faktycznie hit na jaki lansuje go M$ to się jeszcze okażę. Parę słów odnośnie "smutnych zielonych kafelków". Zielone sa bo to jest domyślny styl telefonu HTC, można go zmienić, poza tym sporo kafelków nie jest zielona, ma tekstury, więc to nie wina M$, tylko programistów, którzy o to nie zadbali. Same kafelki można aranżować itp. Jeśli potraktować główny ekran jak menu Start w Windows to praca staje sie łatwiejsza, mozna tez przypinac wybrane kontakty do niego. Faktyczną bolączką jest to, że przy sporej ilości aplikacji tzw. "drugi ekran" staje się dosyć długi i nie można przypiąć do kafelków opcji zakopanych w ustawieniach np. do szybkiej zmiany wł/wył 3g (przydatne w trasie, gdzie zasięg skacze.).

A teraz dla bardziej dociekliwych

7. Multitasking

Miałem do niedawna telefon BlackBerry 8520. Z aplikacji mozna było wyjść na 2 sposby. Jeden z nich zamykał aplikację, drugi pozostawiał ją w systemie "na pełnych obrotach". Efekt? Koszmarne zużycie baterii. Ratunek? Zabijanie w jakimś process managerze (wszystkie płatne) lub korzystanie ze swoistego ALT+Tab w wydaniu BB (nie zawsze dzialało.).
Posiadam Samusnga Omnia z WM 6.5, gdzie jest normalny menadżer zadań jak w desktopowym windowsie ale ten telefon to bardziej PocketPC niż telefon.
Co się dzieje w WP7? Aplikacja zostaje "zamrożona" po przejściu do innej aplikacji. Ma to ogromny sens, bo po co ma mi działac w tle AngryBirds, skoro teraz przeglądam pocztę czy dzwonię. Do "zamrożonych" aplikacji można wrócić przyciskiem "wstecz", więc problem menadżera zadań został rozwiązany. Pozostaje pytanie - co z aplikacjami, ktore muszą działać w tle? Nurtowało mnie to jako programistę i na jednej z konferencji IT AD dostałem odpowiedź od prelegenta z M$, że multitasking jest jak najbardziej, aplikacja może dzialać w tle na wyraźne życzenie programisty, tylko że uzytkownik nie może o tym decydować. Jest to jakieś ubezwłasnowolnienie ale jesli wziąć cąły przekroj użytkowników desktopowych Windows'ów to faktycznie niewielu z nich używa menadżera zadań, w większości sa to profesjonaliści. WP7 ma konkurować z iPhonem i Androidem, więc jest skierowany dla mas, większego grona odbiorców - odpowiedź na ten problem wydaje się chyba jasna.

8. Manager plików

Zune, iPod czy inne MP4 maja to samo, sa przewidziane na przechowywanie mediów (obraz/audio/wideo) i są zarządzane przez odpowiednie oprogramowanie (Zune czy iTunes), do nich też nie wgrasz plików prosto z komputera. Taki trend mający spore powiązanie z pilnowaniem LEGALNOŚCI treści multimedialnych i ich zakupem przez sklepy internetowe. Dokumenty MS Office sa czytane/edytowane przez MS Office 2010 (super! mam go za darmo w cenie telefonu), podobnie jest z plikami PDF. Poza tym są rozwiązania do przechowywania danych w chmurze jak SkyDrive i DropBox. Jeszcze z nich nie korzystałem, więc nie będę się wypowiadał.

9. Kompatybilność wstecz

Jest powód dla którego nowy telefon nazywa się Windows Phone 7, a nie Windows Mobile 7. Jest zupełnie inny, aplikacje sa tworzone za pomocą zupełnie innych narzędzi, inne API systemu, w sumie to ostatnie powinno zamykac dyskusję na ten temat. Z ciekawszych aplikacji jakie znalazłem w Marketplace to emulator Androida, więc jak komuś bardzo zależy na aplikacjach z WM6.x to może i będzie podobne rozwiązanie.

10. Brak wsparcia w VS2008

Dlatego powstał VS2010, jeśli ktoś chce być konkurencyjnym programistą (jego aplikacje mają być pożądane na rynku) to raczej dziwne jest aby wciaż siedział na IDE sprzed ponad 3ech lat.

11. Brak wsparcia dla WM6 i starszych w VS2010

Bo to nie jest rozwijany system. Jak chesz programować pdo WM6.x potrzebujesz starsze IDE, pod WP7 to nowsze. Prosta sprawa. Chcesz rozwijać aplikacje pod wszystkie możliwe systemy, to musisz w to zainwestować.

12. XNA

Znowu będę się posiłkował cytatem;


XNA? ktoś wyobraża sobie grę z Xbox, która idzie na sprzęcie serwowanym w telefonie? Albo ktoś wyobraża sobie by grać w protezę na Xbox serwowaną z telefonu? JA nie mam aż takiej wyobraźni, a osobę, która to będzie robić uznam za co najmniej dziwną.

Cytat z Wikipedii:

XNA (akronim rekurencyjny XNA’s Not Acronymed – "XNA nie jest akronimem") jest zbiorem narzędzi firmy Microsoft pozwalającym na tworzenie gier przeznaczonych dla systemu Windows, konsoli Xbox 360 jak również telefonów z systemem operacyjnym Windows Phone 7.

To chyba fajnie, że ujednolicili sposób tworzenia gier pod produkty M$, a nie musisz posiadać osobne środowiska programistyczne, jak w powyższych punktach było omawiane.

13. Kod natywny

I znowu cytat:

brak wsparcia dla kodu natywnego = brak sterowników, a, że nie da się pisać sterowników w C#...

To mi przypomina dyskusję ze znajomym wielkim zapaleńcem C/C++. Można napisać kilkadziesiąt linii kodu w WINAPI aby narysować okno z dwoma przyciskami, a można to zrobić jedną komendą i dwoma kliknięciami. Kod XAML można napisac w notatniku ale chyba łatwiej to w graficznym edytorze poustawiać. To trochę jak dyskusja pomiędzy zwolennikiem młotu pneumatycznego, a dłuta i młotka - efekt ten sam, ale czy warto? Jak pisałem w punkcie dotyczacym dopracowania systemu - dla klienta najważniejsze jest aby szybko dostać oprogramowanie na którym może pracować. Jak ktoś godzinami będzie je rzeźbić to najzwyczajniej w świecie jest niekonkurencyjny.

Wyładowałem trochę swoje żale odnosnie WP7 RAGE, moim celem nei było przekonywanie nikogo do WP7, bo ma swoje wady jak każdy inny telefon ale wyjasnienie sloganów, ktorymi ludzie obrzucają się w komentarzach :)

Pozdrawiam fanboyów jabłka i dużego G :)