Gadu gadu Skype

Archiwum dla kategorii ‘Technologie mobilne’

mar
12

Nokia i Microsoft – co z tego wyniknie?

Spook, Marzec 12 2011

Napisz komentarz

Ostatnimi czasy interesuję się wszelkimi wydarzeniami mającymi miejsce w świecie urządzeń, technologii i oprogramowania mobilnego. Nie mógł więc ujść mojej uwagi bardzo kontrowersyjny alians Nokii z Microsoftem.

Jeśli przyjrzymy się historii Nokii z przeciągu ostatnich pięciu lat, alians ten okaże się znacznie mniejszym zaskoczeniem niż mogłoby się to na początku wydawać. Cofnijmy się na chwilę do roku 2007. Nokia jest u szczytu swoich możliwości, kończy rok ze sprzedanymi przeszło 437,1 milionami telefonów (drugi jest Samsung utrzymujący się na poziomie 161,2 milionów, źródło). Pod koniec października 2007 roku kurs akcji Nokii osiąga wartość nie notowaną od pięciu lat – blisko 40 USD. I aż trudno uwierzyć, że właśnie w takich okolicznościach zaczyna się wielki upadek tej popularnej firmy.

Jest 9 stycznia 2007 roku. Apple, po długim okresie domysłów i plotek ogłasza, iż pracuje nad projektem nowego, rewolucyjnego telefonu – iPhone’a. Musi minąć jeszcze przeszło pół roku, żeby telefon ten trafił na rynek, jednak marketing Apple’a robi swoje: ludzie ustawiają się w kolejkach przed sklepami nawet na sto godzin przed premierą, stoisk z nowymi telefonami spod znaku jabłuszka w nocy poprzedzającej premierę strzeże policja i ochrona. iPhone – mimo dosyć wysokiej ceny – sprzedaje się w zastrzaszającym tempie: 74 dnia po premierze został sprzedany milionowy egzemplarz.

Na czym polegał sukces Apple’a? Oczywiście marketing odegrał tu swoją rolę. Jednak Apple uderzył w rynek innowacją: postawił na ekran dotykowy (wprawdzie takie telefony były już wówczas na rynku, ale niezbyt popularne), skonstruował atrakcyjny, efektowny i użyteczny interface użytkownika przystosowany do obsługi palcami oraz wyeksponował multimedialne cechy urządzenia: bardzo duży ekran (jeśli dobrze pamiętam, największy w urządzeniu tego typu w czasie premiery) oraz dużo pamięci przeznaczonej do przechowywania multimediów. Urządzenie nie było bez wad – do głównych zaliczany był brak schowka, niemożność wysyłania MMSów, a także zamknięcie możliwości instalowania oprogramowania firm trzecich, które nie przeszło procesu cyfrowej certyfikacji, nie przeszkodziły one jednak w wielkim sukcesie Apple’a.

Czy iPhone był naprawdę tak dobry, żeby zacząć wypierać z rynku telefony Nokii? Myślę, że raczej nie. Nokia była w stanie zaprojektować i wypuścić na rynek telefon o podobnych (albo nawet i lepszych) parametrach i pozbawiony wad iPhone’a. Jednak w kierownictwie Nokii ktoś popełnił poważny błąd, ponieważ z wielkiego sukcesu iPhone’a nie wyciągnięto wniosków i Nokia nie zmodyfikowała swojej rynkowej strategii, aby sprostać nadchodzącym wyzwaniom.

Co dzieje się dalej? Nokia wydaje na świat model 5800, który stał się pierwszym telefonem z ekranem dotykowym, który został przyjęty pozytywnie przez rynek (Nokia 7700 nigdy nie weszła do sprzedaży, zaś 7710 z Symbianem S90 nie odniósł większego sukcesu). Telefon nie miał jednak szans konkurować z iPhone – był raczej ewolucją niż rewolucją w stosunku do poprzednich modeli, ponadto do użytkowania potrzebował czasem rysika, podczas gdy iPhone został zaprojektowany pod obsługę przy pomocy palców. Ponadto sukcesowi marketingowemu – jak na złość – przeszkodziła wadliwa konstrukcja słuchawki, która przestawała działać po bardzo krótkim czasie. Nokia oczywiście zadziałała szybko i umożliwiła darmową wymianę wadliwego komponentu, jednak wydarzenie to z pewnością wpłynęło na statystyki sprzedaży.

Po umiarkowanym sukcesie modelu 5800 Nokia postawiła na telefony z serii N (od eNtertainment) – lata 2008 i 2009 przyniosły modele N78, N79, N85, N96, a także N97. Jednak wszystkie stanowiły tylko wariacje na temat: zmieniała się wersja systemu, parametry sprzętowe i rozdzielczość wbudowanego aparatu fotograficznego, ale nadal brakowało czegoś nowego, rewolucyjnego.

Tymczasem konkurencja Nokii nie spała, a wręcz przeciwnie – różne firmy prześcigały się w pomysłach na „iPhone killera”.

W trzecim kwartale 2009 roku pojawia się popularny Samsung Omnia. Czwarty kwartał to premiery telefonów z Androidem, między innymi Motorola Droid oraz HTC Hero. Początek roku 2010 zaznaczył się wejściem do sprzedaży telefonu Google Nexus One, a niedługo potem Sony Ericsson zaatakowało rynek XPerią X10. I dopiero po tych wszystkich premierach, pod koniec 2010 roku Nokia zaczyna wprowadzać telefony nowej generacji, z systemem Symbian^3: Nokię N8, a niedługo potem C7 i E7 (która, moim zdaniem niesłusznie, odziedziczyła po świetnej serii handheldów miano Communicator).

Rynek był jednak bezlitosny wobec Nokii i długi okres stagnacji, gdy fińska firma wypuszczała jeden po drugim telefony różniące się głównie wyglądem, mocno odznaczył się w historii finansowej firmy. Wystarczy tylko popatrzeć na kurs akcji Nokii w okresie od 2007 roku do dziś.

Źródło: www.dailyfinance.com

Jest początek roku 2011. Nokia systematycznie traci zainteresowanie rynku, konkurencja co chwilę wprowadza telefony, które budzą wielkie zainteresowanie, zaś premiery fińskiego producenta przechodzą bez większego echa. Nokii potrzeba rewolucji – czegoś, co wstrząsnie rynkiem. I w takich właśnie okolicznościach decyduje się ona na sojusz z Microsoftem.

Nie zdziwiłem się specjalnie, że Nokia wykonała tak gwałtowny ruch, ponieważ było to dla niej mniej więcej jak być lub nie być, natomiast zachodziłem w głowę, dlaczego fiński producent nie zdecydował się na bardzo popularnego Androida, tylko na odsuniętego w tło Windows Phone 7. Wszystko stało się jasne, gdy przeczytałem, kim był wcześniej obecny CEO Nokii, pan Stephen Elop.

Proponuję zobaczyć, jak zareagował rynek na opublikowaną 11 lutego decyzję o aliansie Nokii i Microsoftu.

Moim zdaniem decyzja Nokii to zdecydowany strzał w kolano. Po pierwsze, system Microsoftu nie zyskał zbyt dużej popularności; najlepszym epitetem, którego można użyć do określenia interface’u użytkownika WP7 jest „ascetyczny”. Wystarczy zobaczyć, jak wyglądają pewne wspólne elementy każdego systemu mobilnego w Symbianie, Androidzie i Windows Phone 7:

Ekran główny
Menu
Kontakty
Ustawienia

Screenshoty z Nokia RDA, Android Emulator oraz dzięki uprzejmości MicrosoftFeed.com

Windows Phone nie przegrywa jednak z innymi systemami tylko z powodu swojego interface’u. Większym problemem jest fakt, iż wszystkie technologie Microsoftu są zamknięte, tymczasem zarówno Symbian jak i Android są systemami otwartymi, w każdej chwili można z Internetu ściągnąć kompletne kody źródłowe każdego z nich.

Jest jeszcze jeden problem. Miarą współczesnego systemu operacyjnego dla urządzeń mobilnych jest liczba developerów, którzy piszą dla niego oprogramowanie. Nokia udostępnia SDK Symbiana darmowo na swoich stronach, a poza tym na Symbiana można pisać w QT. Poza tym programy napisane dla Symbiana można bez problemu publikować i każdy może instalować je bez większych ograniczeń (w przypadku programów korzystających np. z połączeń telefonicznych lub wysyłających SMSy wymagana jest certyfikacja). Google również udostępnia kompletny SDK dla Androida; ba, istnieje nawet odpowiedni plugin do Eclipse’a pozwalający na łatwe projektowanie i programowanie aplikacji. Oczywiście programy również można bez ograniczeń publikować w postaci pakietów apk.

Microsoft jednak nie przepuścił okazji do zysku. Wprawdzie, jeśli chodzi o środowisko programistyczne, pobił na głowę zarówno Symbiana, jak i Androida, ponieważ udostępnił darmowo specjalną wersję Microsoft Visual Studio przeznaczoną do pisania programów dla Windows Phone 7. Na tym jednak kończy się otwartość tej firmy: żeby zainstalować napisany przez siebie program na fizycznym urządzeniu, trzeba je najpierw odblokować. Aby jednak mieć taką możliwość, trzeba być zarejestrowanym developerem Windows Phone 7, co wiąże się z rocznymi opłatami (obecnie $99). Ale i na tym nie koniec; odblokować można tylko kilka urządzeń do celów deweloperskich, natomiast publikowanie programów może odbywać się tylko przez Microsoft Marketplace. Warto wspomnieć o jeszcze jednym ograniczeniu: zarejestrowany deweloper może opublikować tylko 100 darmowych programów, za publikację każdego kolejnego musi zapłacić $19.99 (ograniczenie to nie dotyczy programów płatnych).

Jestem fanem Nokii od mojego pierwszego telefonu. Przez moje ręce przeszły modele 3210, 3510i, N-Gage, 6230i, E66 i C7. Obawiam się jednak, że moja przygoda z tą marką ma się już ku końcowi. Ponieważ zbliża się termin przedłużenia umowy abonamentowej, mam możliwość wybrania nowego telefonu i będzie nim najprawdopodobniej HTC Desire Z lub HTC Desire HD z Androidem na pokładzie – zainstalowałem już Eclipse i Netbeans, aby nauczyć się pisać aplikacje na tą platformę.

Strategia Nokii jest bardzo ryzykowna. Będziemy musieli jednak poczekać jeszcze trochę, by dowiedzieć się, czy firma ta zaskoczy nas niedługo jakimś nowym, rewelacyjnym telefonem, który pozwoli jej wrócić na falę, czy jednak Windows Phone 7 stanie się ostatnim gwoździem do trumny tego bardzo popularnego niegdyś producenta komórek.

paź
10

Resetowanie ustawień ActiveSync

Spook, Październik 10 2010

Napisz komentarz

Czasami zdarza się potrzeba zrobienia twardego restartu palmtopa i zreinstalowania wszystkich aplikacji. Niestety, Microsoft ActiveSync nie jest dostatecznie sprytny i wykryje palmtopa jako nowe urządzenie – dodając tym samym kolejny partnership. Jest to dosyć irytujące tym bardziej, że nie zostanie mu przypisana nazwa naszego urządzenia (bo takowy już istnieje). Wystarczy zastosować jednak prosty trick, by usunąć poprzednie partnerstwo i utworzyć nowe przy kolejnej synchronizacji. W tym celu należy:

  • Przechodzimy do katalogu C:\Documents and Settings\\Dane Aplikacji\Microsoft\ActiveSync\Profiles i usuwamy podkatalog odpowiadający poprzednio utworzonemu partnerstwu;
  • Uruchamiamy edytor rejestru, przechodzimy do gałęzi Mój komputer\HKEY_CURRENT_USER\Software\Microsoft\Windows CE Services\Partners i usuwamy podgałąź odpowiadającą poprzedniemu partnerstwu – można to sprawdzić, odczytując klucz DisplayName (partnerstwa są zapisane w postaci liczby heksadecymalnej, na przykład, 63ef340a)

Podczas następnej synchronizacji zostanie utworzone nowe partnerstwo o takiej samej nazwie, jak nazwa urządzenia.

sie
23

.NET Compact Framework w Visual Studio Express

Spook, Sierpień 23 2010

Skomentowany 5 razy

Ostatnio bardzo często spotykam się w Internecie z pytaniem, czy istnieje możliwość pisania w wersjach Express Visual Studio programów na platformę .NET Compact Framework. Oficjalnie jest to niemożliwe: polityka marketingowa Microsoftu zadecydowała o włączeniu do środowiska wsparcia dla .NET CF dopiero od wersji Professional (dla zainteresowanych, około 3.5k PLN za jedną licencję BOX). Okazuje się jednak, że taka możliwość istnieje. Zaznaczam, iż pomysł nie jest mój, ale mimo usilnych poszukiwań, nie udało mi się odnaleźć pierwotnego artykułu, na bazie którego przygotowałem moje środowisko pod kompilację dla urządzeń mobilnych.

Rozwiązanie jest następujące:

Ekran Windows Mobile z .NET CF Assemblies

  1. Instalujemy na urządzeniu mobilnym .NET Compact Framework 3.5; jeśli takowego nie posiadamy, albo z innego powodu nie chcemy instalować na nim środowiska uruchomieniowego, możemy posłużyć się darmowym emulatorem urządzenia Windows Mobile. Nie zapomnijmy tylko o doinstalowaniu obrazów systemu Windows Mobile. Dodam tylko, że emulator jest uruchamiany z linii poleceń.
  2. Odszukujemy w urządzeniu, w katalogu \Windows serię plików GAC_*.dll (zobacz screen). Każdy z nich stanowi pojedynczą assembly dla .NET CF. Kopiujemy wszystkie (uważamy tylko na wersję – jest w nazwie pliku) na komputer stacjonarny i umieszczamy w wygodnym dla nas katalogu (w moim przypadku jest to D:\Dokumenty\C\C#\CF_Assemblies\3.5).
  3. Zmieniamy nazwy plików według klucza:GAC_mscorlib_v3_5_0_0_cneutral_1.dllnamscorlib.dll
  4. Upewniamy się, że na komputerze jest zainstalowane .NET Framework 3.5 (będziemy korzystali z kompilatora csc.exe, dołączanego do pakietu)
  5. W katalogu projektu C#, który będziemy chcieli kompilować dla .NET CF tworzymy plik wsadowy o następującej treści:
    set compilerdir="C:\windows\Microsoft.NET\Framework\v3.5"
    set asmdir="D:\Dokumenty\C\C#\CF_Assemblies\3.5"
    
    set projectdir="D:\Dokumenty\C\C#\CF\Hello World\"
    %compilerdir%\csc.exe /noconfig /nostdlib /debug+ /optimize-
      /define:DEBUG;MOBILE /out:"%projectdir%HelloWorld.exe"
      /r:%asmdir%\mscorlib.dll /r:%asmdir%\System.dll
      /r:%asmdir%\System.Data.dll /r:%asmdir%\System.Drawing.dll
      /r:%asmdir%\System.Windows.Forms.dll "%projectdir%Form1.cs"
      "%projectdir%Form1.Designer.cs" "%projectdir%Program.cs"
    
    pause
  6. Dla wygody możemy skonfigurować Visual Studio w taki sposób, by po wywołaniu polecenia z menu External Tools był wywoływany plik compile.bat z katalogu projektu. Zadanie to pozostawimy jednak jako ćwiczenie dla studenta :)

I to by było na tyle. Efekt działania przykładowej aplikacji można podziwiać poniżej.

Przykładowy program .NET CF

Na koniec kilka notatek. Po pierwsze, musimy cały czas mieć na uwadze, że o ile VS C# Express nie będzie nam przeszkadzało w projektowaniu aplikacji dla .NET Compact Frameworka, to z drugiej strony nie będzie nam też pomagało. Mam tu na myśli na przykład fakt, iż designer formatki będzie ją projektował pod .NET dla win32, więc – na przykład – po narysowaniu przycisku na formatce i próbie kompilacji dla .NET CF kompilator przerwie kompilację z następującym komunikatem:

Kompilator Microsoft (R) Visual C# 2008 w wersji 3.5.30729.4926
dla programu Microsoft (R) .NET Framework w wersji 3.5
Copyright (C) Microsoft Corporation. Wszelkie prawa zastrzeżone.

d:\Dokumenty\C\C#\CF\Hello World CF\Form1.Designer.cs(51,26): error CS1061:
        Element "System.Windows.Forms.Button" nie zawiera definicji
        "UseVisualStyleBackColor", a nie odnaleziono metody rozszerzającej
        "UseVisualStyleBackColor", która przyjmuje pierwszy argument typu
        "System.Windows.Forms.Button" (czy nie brakuje dyrektywy using lub
        odwołania do zestawu?).

W takiej sytuacji wystarczy zajrzeć do Form1.Designer.cs i usunąć linijkę, w której następuje przypisanie do nieistniejącej w CF własności UseVisualStyleBackColor.

Sprytny programista wpadnie pewnie na jeszcze jeden ciekawy pomysł – otóż assemblies .NET CF można dołączać jako referencje (References) do projektu. Korzyści z takiego rozwiązania są ogromne – natychmiast po dodaniu zacznie działać Code Insight, podpowiadając nam namespace’y, klasy i ich metody oraz własności, co jest bezcenne w przypadku assemblies nie występujących w przypadku win32 – przykładowo Microsoft.WindowsMobile.PocketOutlook.dll

Zachęcam do dzielenia się opiniami na temat programowania dla .NET CF w Visual Studio Express. Może wymyślicie jeszcze ciekawsze usprawnienia?