Relacja z pierwszego w Polsce Glass Hackathonu

Relacja z pierwszego w Polsce Glass Hackathonu

data: 29 lipca, 2013
czas czytania: 9 min
autor: Piotr Wittchen

Jakiś czas temu, śledząc pojawiające się w internecie wiadomości związane z ciekawymi technologiami i wydarzeniami z branży IT, natrafiłem na informacje związane z Google Glass Hackathonem. Na początku podchodziłem do tematu dość sceptycznie, ale gdy dowiedziałem się, że kilka osób z mojego firmowego zespołu (Central Mobile Team) chce uczestniczyć w tym wydarzeniu, również postanowiłem do nich dołączyć i wybrać się na wspomniany hackathon. Szóstego lipca nad ranem nasz zespół w składzie: Piotr Wittchen, Michał Górski, Mateusz Boś i Rafał Pomocnik wyruszył z Gliwic do Warszawy. Podróż nie należała do najłatwiejszych ze względu na wczesną porę, poranny deszcz i zatłoczony pociąg. Na szczęście oprócz silnika pojazdu szynowego napędzała nas także ciekawość nowych technologii rodem z science fiction, więc szybko udało nam się dotrzeć na miejsce.

image_01

Plakat wydarzenia – Kalicińscy.com

Glass Hackathon był zorganizowany w warszawskim Fantastic Studio przez agencję Kalicińscy.com oraz Google Technology Users Group Warszawa. W wydarzeniu uczestniczyło kilkadziesiąt osób. Czteroosobowe zespoły miały cały dzień na znalezienie pomysłu na aplikację, jej zaprojektowanie oraz wykonanie. Pod koniec dnia, zespoły prezentowały swoje projekty, a jury wybierało najlepsze z nich.

Co wiemy o Google Glass?

Zanim przystąpiliśmy do projektowania aplikacji i realizowania naszego pomysłu, musieliśmy poznać możliwości oraz ograniczenia nowego wynalazku Google oraz jego specyfikację techniczną. Dotychczas niewiele osób miało okazję przetestować to urządzenie, ponieważ trafiło ono jedynie do 10 000 osób na całym świecie, a jego koszt to ok. 1500 USD. Podczas hackathonu był dostępny jeden egzemplarz okularów Google, które mogliśmy przymierzyć i przetestować. Po założeniu Google Glass, można ujrzeć prostokąt w prawym górnym rogu prawego oka, na którym interaktywne okulary wyświetlają obrazy w rozdzielczości 640×360 pikseli. Google Glass mają wbudowany kompas, GPS, WiFi, Bluetooth, akcelerometr, mikrofon oraz kamerę. Mają 12 GB pamięci wewnętrznej zsynchronizowanej z Google Cloud Storage. Umożliwiają także wysyłanie wiadomości SMS oraz posiadają port Micro USB. Okulary działają pod kontrolą systemu Android 4.0.3. (Ice Cream Sandwich). Są lekkie, wygodne i dostosowują się do kształtu głowy. Wyświetlany obraz nie męczy oczu. Sam na co dzień noszę zwykłe okulary, więc w trakcie hackathonu próbowałem nałożyć je na swoje okulary oraz przymierzyć je bez zwykłych okularów. Obraz mogłem ujrzeć jedynie, gdy Google Glass były nałożone na moje okulary korekcyjne. W przyszłości interaktywne okulary powinny być wygodne także dla osób z wadami wzroku.
Interfejs graficzny jest prosty i bazuje na tzw. timeline cards oraz elementach menu (menu items).

Timeline cards – developers.google.com

Timeline cards – developers.google.com

Na kartach może być prezentowana treść dostarczana przez aplikacje, zdjęcia oraz obraz wideo.
Interakcja z Google Glass może się odbywać na 2 sposoby: za pomocą touch pada oraz rozpoznawania mowy. Prawa część oprawki okularów jest interaktywna i pełni rolę wspomnianego touch pada. Możemy wykonać z jego użyciem następujące gesty:

  • „tapnięcie”, czyli szybkie dotknięcie (odpowiada za zatwierdzenie konkretnej operacji lub aktywację okularów)
  • przeciągnięcie w dół, czyli „swipe down” (odpowiada za operację „wstecz” lub „zamknij program”)
  • przeciągnięcie w prawo, czyli „swipe right” (umożliwia nawigację po kartach)
  • przeciągnięcie w lewo, czyli „swipe left” (umożliwia nawigację po kartach)

Jak należy programować aplikacje na Google Glass?

Zgodnie z oficjalną dokumentacją Google – aby wejść w interakcję z Google Glass musimy stworzyć aplikację internetową, która będzie się komunikowała z okularami za pośrednictwem serwerów Google i prezentowała obraz w postaci strony internetowej zakodowanej z wykorzystaniem technologii HTML i CSS. Google dostarcza bazowy szablon CSS, który pozwala na zachowanie spójności graficznej z domyślnym interfejsem. Przykładowe operacje, jakie można wykonać to: tworzenie kart i zarządzanie nimi lub odczyt lokalizacji użytkownika. Aplikacje internetowe musimy tworzyć z wykorzystaniem Google App Engine. Możemy wybrać jedną z następujących technologii: Go, Java, .NET, PHP i Python. Niestety, na razie z poziomu konsoli deweloperskiej Google dostęp do Glass API mają dostęp jedynie posiadacze Google Glass. W związku z tym podczas hackathonu można było skorzystać z obejścia tego problemu i stworzyć własny emulator okularów odzwierciedlający zachowanie Mirror API.
Kod źródłowy wspomnianego emulatora i instrukcję dotyczącą tego, jak go uruchomić, znajdziemy pod adresem: https://github.com/Scarygami/mirror-api.

image_03

Schemat działania aplikacji na Google Glass – developers.google.com

Jest też drugi, nieoficjalny sposób pisania aplikacji na Google Glass. Mianowicie, tworzenie natywnych aplikacji na platformę Android w języku Java. Nasz zespół postanowił pójść tą drogą. W przypadku pisania aplikacji natywnych, musimy pamiętać o ograniczeniach, jakie narzuca ten sposób programowania: nie możemy korzystać z ekranu dotykowego, jak w przypadku telefonów komórkowych, nie mamy dostępu do przycisku „menu”, a operacja „swipe down” jest odpowiedzialna za akcję „wstecz”. Dodatkowo, Google Glass ma zainstalowany czysty system Android, więc nie możemy odwoływać się do wielu aplikacji, które są zazwyczaj dostępne w telefonach za pomocą Intencji (Intent). Przykładowo, okulary nie mają zainstalowanej aplikacji „Aparat” i jeśli chcemy zrobić zdjęcie, musimy odwołać się do sprzętowego aparatu niskopoziomowo.

google glass

Fot. J. Sosnowska, technologie.gazeta.pl

W tej chwili nie ma dostępnej żadnej oficjalnej dokumentacji dotyczącej pisania aplikacji natywnych na Google Glass, więc do wielu wniosków musieliśmy dojść metodą prób i błędów. Jednym z problemów było przechwytywanie zdarzeń z touch pada Google Glass. Okazało się, że klasa dziedzicząca po klasie Activity odpowiedzialna za wykonywanie operacji musi implementować interfejs GestureDetector.OnGestureListener. Następnie w metodzie onCreate() musimy stworzyć instancję klasy GestureDetector i nadpisać metodę onGenericMotionEvent(MotionEvent event), w której powinniśmy zawrzeć instrukcję: gestureDetector.onTouchEvent(event); Teraz operację „tapnięcia” będziemy mogli przechwycić w metodzie onSingleTapUp(MotionEvent e), operację „swipe down” możemy przechwycić w metodzie onBackPressed(). Natomiast operacje „swipe right” oraz „swipe left” możemy przechwycić w metodzie: onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY). Więcej informacji na ten temat można znaleźć w artykule zamieszczonym pod adresem: http://www.glassxe.com/2013/05/16/capturing-gesture-controls-for-use-in-native-android-glass-apps/ lub przeglądając kod źródłowy naszego projektu, do którego adres będzie podany w dalszej części tego artykułu.

Projekty zrealizowane podczas hackathonu

Zespoły stworzyły podczas hackathonu rozmaite i inspirujące projekty. Powstała m.in. aplikacja umożliwiająca tworzenie notatek ze spotkania, lista zakupów, obsługa inteligentnego domu, aplikacja powiadamiająca kierowcę kiedy po spożyciu piwa może wsiąść za kierownicę oraz gra miejska.
Nasz projekt nosi nazwę Hereandhounds, czyli podchody. Stworzyliśmy natywną aplikację na platformę Android, która pełni rolę wirtualnego przewodnika po mieście. Z wykorzystaniem rozszerzonej rzeczywistości nałożyliśmy punkty o określonej lokalizacji geograficznej na obraz przechwycony z kamery. Zadaniem użytkownika było dotrzeć do danego punktu i wykonać zdjęcie charakterystycznego obiektu, który znajduje się w każdym z podanych punktów. Z wykorzystaniem API Recognize.im, aplikacja jest w stanie rozpoznać obiekt i potwierdzić, że użytkownik rzeczywiście do niego dotarł. Nasza aplikacja działała zarówno na telefonie z systemem Android 4.1.2 jak i na Google Glass.

Pierwsze miejsce w konkursie projektów zajęła aplikacja „Poznaj moje miasto”, która była pewną formą gry miejskiej. Nasz projekt znalazł się tuż za nią i zajęliśmy drugie miejsce. Uważam to za niezły wynik biorąc pod uwagę fakt, że wcześniej w ogóle nie znaliśmy platformy oraz technologii i to ani od strony technicznej, ani od strony użytkownika. Ponadto, konkurencja była dość mocna, za nami i przed nami długa podróż, a na nogach byliśmy łącznie ponad 24 godziny.

image_04

Własne archiwum zdjęć

Efekt naszej pracy w postaci kodu źródłowego stworzonej przez nas aplikacji znajduje się pod adresem:

https://github.com/pwittchen/Hereandhounds.

Podsumowanie

Google Glass Hackathon był naprawdę ciekawym wydarzeniem i warto było w nim uczestniczyć. Mieliśmy okazję zapoznać się z najnowszą technologią, nauczyć się wielu nowych rzeczy i dzięki temu być o krok do przodu przed innymi programistami, a przy okazji – świetnie się bawić.

Kilka przydatnych linków dla tych, którzy chcą być na bieżąco.
Źródła dotyczące aspektów technicznych związanych z Google Glass (po angielsku):

Relacje z wydarzenia w serwisach informacyjnych:

Newsletter IT leaks

Dzielimy się inspiracjami i nowinkami z branży IT. Szanujemy Twój czas - obiecujemy nie spamować i wysyłać wiadomości raz na dwa miesiące.

Subscribe to our newsletter

Administratorem Twoich danych osobowych jest Future Processing S.A. z siedzibą w Gliwicach. Twoje dane będziemy przetwarzać w celu przesyłania cyklicznego newslettera dot. branży IT. W każdej chwili możesz się wypisać lub edytować swoje dane. Więcej informacji znajdziesz w naszej polityce prywatności.

Subscribe to our newsletter

Administratorem Twoich danych osobowych jest Future Processing S.A. z siedzibą w Gliwicach. Twoje dane będziemy przetwarzać w celu przesyłania cyklicznego newslettera dot. branży IT. W każdej chwili możesz się wypisać lub edytować swoje dane. Więcej informacji znajdziesz w naszej polityce prywatności.