Pokazywanie postów oznaczonych etykietą mobilization. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą mobilization. Pokaż wszystkie posty

niedziela, 23 października 2011

Mobilization – konferencja o technologiach mobilnych - wrażenia


Ledwie tydzień temu byłem na Warsjawie, a tu już następna konferencja: Mobilization.pl, która odbyła się w sobotę w Łodzi. Była to pierwsza edycja konferencji i jeszcze sporo pozostawia do życzenia co do poziomu wykładów, ale miejmy nadzieję, że w przyszłości się to poprawi.

O 9.50 było szybkie powitanie uczestników, parę spraw organizacyjnych i rozpoczął się pierwszy wykład Bartłomieja Zassa na temat programowania Windows Phone Mango. Mimo, że nie jestem fanem rozwiązań tej firmy, byłem pod wielki wrażeniem tej prelekcji jak i prelegenta. Przede wszystkim prezentacja była bardzo dobrze przygotowana, było kodowanie na żywo (które działało), opcja zoom na ekranie, zaznaczanie kursorem elementów na ekranie, pokaz działania telefonu na rzutniku, płynne przełączanie się pomiędzy kodem a prezentacją i jeszcze parę innych fajnych drobnostek. Istny majstersztyk. Jedyne co mi się nie spodobało, to częściowe ucięcie prawej strony ekranu prezentacji (złe wyskalowanie ekranu – można było wcześniej ustawić), i mówienie „na pan/państwo”. Ja wolę luźniejszy sposób prowadzenia prezentacji i zwracanie się „na Ty/Wy”.

Na samej prezentacji najpierw było trochę historii. W 2010 była premiera Windows Phone, ale nie w Polsce (gdyż nie było tłumaczenia na nasz ojczysty język) i oficjalnie nie można było kupić u nas takiego telefonu. Jednak jesienią 2011 pojawił się Windows Phone 7.5 Mango dostępny dla Polaków. Były na prezentacji podane minimalne wymagania sprzętowe, które musi posiadać telefon, aby obsługiwać ten system. Wymagania są dość spore co może wpływać na cenę urządzeń z produktem Microsoftu. Na dniach Nokia ma wypuścić Nokię 800 która ma działać na Windows Phone 7.

Na przedstawiany system można tworzyć oprogramowanie z wykorzystaniem Silverlight 4 czy też XNA (api dla XBoxa). Mango zawiera również Internet Explorer’a 9 (niby ten sam engine co w PC’tach), czyli daje to nam wsparcie dla Html’a 5 i sprzętowej akceleracji graficznej. Bartłomiej pokazywał słynny test FishIETank  odpalany na telefonie i wyglądał dobrze.

Telefony z Windowsem Phone 7 prezentują trochę inne podejście od obecnie popularnych smartfonów. Zamiast w menu wyświetlać ikonki, które uruchamiają poszczególne aplikacje, wprowadzono koncepcję kafelków. Są to takie większe ikonki, które pokazują jakiś stan aplikacji, np. informację, czy przyszły nowe e-maile. I nasze aplikacje (o ile to obsługują) można przypiąć do pulpitu jako taki kafelek. Ciekawe podejście, choć gusta są podzielone na temat tego rozwiązania.

Inną wprowadzoną do systemu koncepcją są Hub’y, czyli integracja informacji z wielu miejsc. Przykładowo w książce telefonicznej pod konkretnym kontaktem możemy mieć zagregowane informacje o danej osobie z facebook’a, linkedin’a gmail’a i innych. Fajna funkcjonalność.

Następnie było na prezentacji już bardziej praktycznie. Prelegent pokazał kilka przykładowych aplikacji i jak można prosto i szybko tworzyć własne. Bartek stworzył na szybko aplikację o konferencji dla Windows Phone 7.5. Pokazał przy tym jak można to robić z poziomu Visual Studio jak i Expression Blend 4. Oba narzędzia dobrze się integrują i synchronizują. Pierwsze służy programistom, a drugie jest bardziej dla grafików i projektantów interfejsów graficznych, ale można w nim również sporo funkcjonalności wyklikać. Jeśli chodzi o licencjonowanie to narzędzia są bezpłatne.

Microsoft udostępnił również (podobnie jak konkurencja) miejsce gdzie można umieszczać i sprzedawać swoje aplikacje, czyli Marketplace. Studenci mogą sobie za darmo konto założyć, osoby prywatne i firmy płacą 100 $ rocznie.

Prezentację uważam za najbardziej udaną i pokazującą najwięcej ze wszystkich prezentacji w jakich uczestniczyłem w ramach tej konferencji. Wystąpienie się przedłużyło, przez co cała agenda się przesunęła o 15 minut.

Kolejną prezentacją na której byłem, było Programowanie Android 3.0 prowadzone przez Krzysztofa Janika. Prezentacja słaba, już na drugim slajdzie były jakieś błędy. Prelegent chciał zrobić małe demo pokazywane z tableta (bo tam działa Android 3.0), ale miał jakieś problemy z kablem. Próbował jeszcze włączyć live streaming (cała konferencja była stream’owana na giwebcast.pl) na rzutniku, by pokazać tablet do kamery. Niestety nie udało się załadować streamingu na komputerze prelegenata :( Dodatkowo Krzysiek często patrzył na slajdy i zadawał dużo pytań publiczności, które nie wnosiły nic do tematu. Bardzo słabe wystąpienie.

Jedyne co wyniosłem z prelekcji to obecność w Androidzie 3.0 czegoś co nazywamy Fragments. Są to jakby miniActivity, które możemy dynamicznie osadzać w innych Activity.

Kolejne wystąpienie było Konrada Hołowińskiego na temat Multiplatform mobile apps. Konrad przedstawił dwa rozwiązania pozwalające pisać raz i uruchamiać aplikację na różnych urządzeniach mobilnych.

Pierwszym omawianym rozwiązaniem było Appcelerator Titanium. Aplikację tworzymy za pomocą JavaScript’u wykorzystując dodatkowo natywne komponenty dla konkretnych platform. Titanium dorzuca później do kodu własny interpreter JS, co zwiększa wielkość aplikacji. Jeśli dobrze zrozumiałem, to od pewnego czasu produkt ten używa statycznej analizy i kompilacji kodu, generując kod natywny dla danej maszyny. Zdecydowano się na taki krok ze względów wydajnościowych, ale przez to pojawiały się przez jakiś czas wycieki pamięci.

Titanium wspiera Androida, iOSa i BlackBery (nie w pełni). Dzięki  kompilacji do natywnego kodu, aplikacje przyjmują wygląd platformy na której są uruchamiane. Pojawiają się przez to często różnice w wyglądzie na innych urządzeniach, co zostało pokazane podczas prezentacji na emulatorach iPhone’a i Androida. Mamy również dostępne darmowe jak i płatne plugin’y rozszerzające możliwości dostarczane przez Titanium.

Następnie było o konkurencyjnym rozwiązaniu PhoneGap, które wspiera więcej (bo aż 6) platform. Tutaj piszemy w HTMLu 5, JavaScript’cie i CSS3. Produkt jest typu open-source i wszelkie plugin’y są rozwijane przez społeczność.

PhoneGap jest uruchamiany w natywnym silniku JS danego urządzenia. Daje on jednak też dostęp do większości funkcjonalności dostępnych w smartfonach, za pomocą „zmostkowania” ich do JS. Podejście to ma swoje wady jak i zalety. Wadą jest brak wsparcia dla wielowątkowości i wolniejsze działanie od aplikacji tworzonych w Titanium, lub natywnie. Za to naszą aplikację możemy uruchomić w przeglądarce i podejrzeć cos się dzieje np. za pomocą FireBug’a.

Z ciekawostek, to PhoneGap zostało ostatnio przejęte przez firmę Adobe, które się stara zaistnieć na rynku urządzeń mobilnych. Zobaczymy co z tego wyjdzie.

Na konferencji miałem okazję poznać Tomka Dziurko. Po prezentacji Konrada poszliśmy na obiad i po nim chcieliśmy pójść na Advanced layouts on the Android battlefield. Jacka Niedzwieckiego, ale chwilkę się spóźniliśmy, a sala była wypchana po brzegi. Alternatywny wykład o Windows 7 nas nie interesował, więc se posiedzieliśmy w holu konferencji.

Następnie miał być wykład o Androidzie i SmartTV, ale prelegent nie przyjechał. W jego miejsce wrzucono Testowanie w Systemie Android Marka Defecińskiego. Marek był jednym z organizatorów konferencji i prowadzi Blog Progamisty Android. Marek jest niespełnionym fanem testów. Swoją opowieść zaczynał od J2ME, w której sam miałem przyjemność się sprawdzić. I rzeczywiście potwierdzam, że o testowaniu w J2ME nie ma co mówić.

Później już było o Androidzie i testowaniu funkcjonalnym za pomocą robotium. Projekt się reklamuje jako Selenium ale dla Androida i działa na emulatorze Androida. Prelegent nie był jednak do końca zadowolony z tego rozwiązania.

Innym ciekawym, omawianym projektem był Robolectric. Jest to framework do testów, który za pomocą Javassist podmienia to co siedzi w android.jar. Dzięki temu możemy nasze testy odpalać na komputerze, działa refaktoryzacja i jest to szybkie.

Było jeszcze wspomniane o android-mock i paru innych frameworkach do testowania. Niestety Marek nie pokazał żadnych przykładów, zrzucając winę na aktualizacje maven’a. Brakuje mu jeszcze oswojenia z publiką i rozluźnienia podczas prowadzenia prezentacji. Na problem suchego gardła polecam wodę z cytryną przed i w trakcie prezentacji (powoduje wydzielanie śliny) jak i unikania słodyczy oraz nadmiernego picia wody (wysusza gardło). Ponadto bujanie się na boki jest trochę denerwujące / rozpraszające dla słuchaczy. Niestety pewność na tego typu wystąpieniach można wyćwiczyć jedynie występując.

Następne prelekcje były dla mnie mniej interesujące. Spotkałem na konferencji Pawła Zubkiewicza, którego znam dzięki WrocJUG. Jako, że Paweł jest z Wrocławia, postanowiłem się zabrać z Nim i innymi pracownikami QNH do domu, gdyż powrót autobusem o 21.35 z Łodzi jakoś mi się nie uśmiechał.

W drodze powrotnej nie mogło się obejść bez niespodzianek, mianowicie klocki hamulcowe się starły i musieliśmy się zatrzymać. Na całe szczęście wylądowaliśmy w miejscowości Szadek, a nie gdzieś w lesie. Dobrą pizze tam mają i gdyby nie ta awaria nigdy bym się tam nie pojawił. Pomoc drogowa zawiozła nas z powrotem do Łodzi i tam już czekał na nas samochód zastępczy, którym dojechaliśmy do Wrocławia.

Podsumowując, jak na pierwszą edycję konferencji, organizacja wypadła dobrze. Były dostępne przekąski w postaci kanapek i jogurtów (świetny pomysł) jak i kawa / herbata. Jedna sala była trochę mała, przez co nie chciałem się dociskać na jeden wykład. Na krzesełkach konferencyjnych były fajne podkładki przyczepiane do krzesła rzemykiem, na których się wygodnie notowało. Trzeba jedynie poziom prezentacji podnieść i będzie cacy.