BB Java Android Runtime w praktyce, część 2

Autor: Grzegorz Wiekiera
grzegorz.wiekiera(at)gmail.com

Skoro już mamy soft po stronie komputera do działań programistycznych – przyszedł czas na podpięcie naszego Tabletu.

Jeżeli tego jeszcze nie zrobiliśmy, powinien wywołać się instalator BlackBerry Device Manager.
Na ekranie PlayBook’a pojawi się stosowny komunikat:

Gdy już ogarniemy sprawę, wypada włączyć tryb Developerski – wchodzimy w opcje, Zabezpieczenia i tam go musimy tyrpnąć – jeżeli nasze urządzenie nie ma hasła, należy je ustawić, z reguły Tablet sam o to zapyta.

Gdy zapamiętamy IP, jakie ustawiliśmy, odpalmy Eclipse – nasze środowisko programistyczne.

Zakładam że każdy, kto czytał poprzednią część się wyposażył w wszelkie niezbędnalia wymienione w części pierwszej.

Odwiedzamy – File-> New -> Project

Wybieramy z drzewa oczywiście Android Project, klikamy next, nazywamy nasz wspaniały projekt, po czym musimy dokonać wyboru:

Skąd takie podejście? BlackBerry Tablet OS 2.0 obsługuje narazie tylko tą wersję Android Runtime, jeżeli byśmy chcieli skorzystać z nowszego – tutaj narazie jest problem, co do słynnej kamery/aparatu – jeżeli nasz Tablet jest pod kontrolą systemu 2.1 Beta, będziemy mogli się do niej dostać.

Klikamy next, gdy już osiągniemy następny ekran, nazwijmy swój pakiet, tak by nam było łatwo się do niego odnosić.

Gdy już nasz projekt ożył – powinniśmy zaobserwować w drzewie projektów mniej więcej taką strukturę:

Od razu chwila na wyjaśnienia, tworzymy aplikację na Androida (teoretycznie) stąd taki wzorzec projektowy. Upraszczając rzeczy – będą Nas interesować tak naprawdę dwa pliki, otwarte w zakładkach – Główny plik .java oraz main.xml, który będzie odpowiadał za ogólny wygląd aplikacji.

Krótki komentarz: tak wygląda ekran, na którym będziemy składać nasze puzzle – z ważnych rzeczy – u góry ekranu wybierzmy dla wygody – 7inch Tablet, Landscape (dowolnie, aplikacja która później powstanie jest przemyślana na taki układ ekranu). Oczywiście w nadrzędnym pasku cały czas mamy Android 2.3.3.

Co do lewej strony ekranu – mamy tutaj parę kontrolek, które będziemy wykorzystywać w naszej aplikacji, oczywiście cały czas możemy pobrać inny zestaw, jeżeli standardowe nam nie odpowiadają, aplikacja proponowana będzie wykorzystywała podstawowy pakiet, tak aby nie zaciemniać kodu.

Korzystając z narzędzia stwórzmy aplikację, ja stworzyłem według własnego pomysłu:

Teraz parę uwag technicznych. Trzeba uważać na to co się klika i przesuwa – w zależności od wybranego układu szkieletowego mogą się dziać dziwne rzeczy, dlatego czasem jak czegoś nie widać, warto zajrzeć do main.xml i sprawdzić dlaczego nie widać, bądź poprawić ręcznie, jeżeli jakieś elementy nam się umieszczą jeden pod drugi.

Dla celów edukacyjnych zamieszczę jeszcze fragment swojego XML’a

Tutaj mam opisane dwa przyciski – lewo, prawo, jak widać każdy z nich ma swóją unikatową nazwę oraz podstawowe atrybuty, szerokość, wysokość, krawędź do której się przyciągają oraz text – ponieważ android nie lubi „hardcoded” stringów warto użyć, szczególnie dla większych aplikacji pliku zasobów – i odwoływać się do nazwy ciągu. Jest to pomocne gdy z jednego miejsca chcemy zmienić wszystkie wystąpienia danego ciągu.

Edytować zasoby można tutaj:

Również można przejść w zakładkę strings.xml, i edytować ręcznie – jeżeli komuś jest wygodniej.

I tutaj możemy zakończyć etap projektowania „międzymordzia” :) aplikacji.

Przejdźmy do naszego pliku Java i zacznijmy oprogramowywać zachowanie się przycisków, czy też innych elementów aplikacji.

Narazie mamy szałową ilość kodu:

No to musimy zastanowić się czego potrzebujemy…
(zaznaczam że jestem zaawansowany w C#, w JaVie piszę hobbystycznie, dlatego pewne rzeczy mogą być nieco dyskusyjne dla ekspertów od JaVy). W moim wypadku będę potrzebował dwóch podstawowych rzeczy – liczby losowej, oraz listy, do przechowywania praw.

Zostały powołane do życia dwa obiekty – generator pseudolosowy oraz lista na prawa – tutaj pozwoliłem sobie od razu stworzyć funkcję research(), która odpowiada za uzupełnienie praw, zostaje ona wywołana w „konstruktorze” (nie jest to typowy konstruktor, ale możemy dokonać pewnego uproszczenia) aplikacji. Dołożymy jeszcze zwykłego integera – lawnumber i przypiszemy mu na starcie wartość 0;

Tak oto aplikacja od strony kodu ma postać:

Z ciekawszych rzeczy – wytłumaczenie „czarów”:

Musimy odnaleźć w widoku (wspomniany wzorzec projektowy) textView, który będziemy modyfikować, jest to niestety niezbędne.

Konstrukcja:

odpowiada za odwołanie się do konkretnego przycisku, oraz za obsługę jego naciśnięcia.
W „wcięciu” możemy zaobserwować w jaki sposób dane są wybierane z listy. Lista zawiera 911 elementów, indeksowanych od 0 do 910, stąd takie warunki oraz dodanie „jedynki” do etykiety.

Teraz przejdźmy do części właściwej – bierzemy tablet do ręki i jeżeli nie podpięliśmy go jeszcze do komputera, działamy. Ważna rzecz, ponieważ tworzymy aplikację pod BlackBerry Android Runtime, musimy dodać jej takowy „charakter”. Jeżeli mamy zainstalowane dodatki z części pierwszej zrobimy to dwoma kliknięciami:

Teraz aby móc Debugować aplikację na Tablecie, należy utworzyć debug token. W menu Run, wybieramy dalej Run As, BlackBerry Android Launch, w tym momencie, jeżeli nie zostanie wykryty debug token, powinien sam się stworzyć i przesłać na urządzenie po podaniu hasła urządzenia. Metoda ta zadziała, jeżeli mamy już załatwioną sprawę podpisów. Aby ją załatwić, musimy zajrzeć w preferences (Window -> Preferences) W zakładce BlackBerry, pozycja Bar Signer.

Oczywiście można skorzystać z Wizzarda, który od razu sparuje Eclipse z Naszym PlayBook’iem. W tym momencie należy też świeżo wygenerowany certyfikat Developerski ustawić – wystarczy wskazać plik w domyślnej lokalizacji, który przed momentem się stworzył.

Po przejrzeniu zachowań aplikacji, możemy zauważyć dwie rzeczy – numer prawa nie aktualizuje się na starcie, oraz problem z ikoną:

Ale to nie problem – wykorzystamy wbudowany generator w Eclipse, po aktualizacji ikony wystarczy tylko ponownie wymusić uruchomienie poprzez Run As, oczywiście po poprawieniu błędów developerskich.

W ten sposób stworzyliśmy swoją własną pierwszą aplikację na Tablet BlackBerry! Skoro już szalejemy – możemy naszą aplikację wrzucić do AppWorld’a poprzez Vendor Portal

https://appworld.blackberry.com/isvportal/home.do

Po zalogowaniu wchodzimy:

W Manage Products

Add Product

I rozpoczynamy uzupełnianie… tutaj już Was zostawiam waszej kreatywności :D

Gdy już dojdziemy do Etapu Batch file upload – należy podpisać aplikację

Dla zainteresowanych schemat podpisów:

https://developer.blackberry.com/android/documentation/Sign_your_app_1985461_11.html

W folderze projektu zaglądamy do:

dist > Android 2.3.3

i tam znajdujemy podpisaną aplikację. Pakujemy ją Zipem i wrzucamy, jeżeli podpisy są w porządku, proces powinien zakończyć się powodzeniem. Kolejną rzeczą są wersje – Nas interesuje platforma QNX, z wersją 2.0.0 lub wyższą. I ostatecznie, pozostaje Nam czekać na decyzję BlackBerry App World ;)

Dodatkowe materiały dostępne pod adresem:

https://developer.blackberry.com/android/
https://developer.blackberry.com/android/documentation/Overview_plugin_1849581_11.html

BBJam2013 Amsterdam

BBDevCon2012 Amsterdam

Inauguracja Akademii BB