- Sensorki – aplikacja „pogodowa” – #0
- Sensorki – widok i adapter – #1
- Sensorki – refresh – #2
- Sensorki – material design – #3
- Sensorki – wskaźnik baterii – #4
- Sensorki – widget – #5
- Sensorki – groovy/spring boot demo serwer – #6
- Sensorki – Android i Spock – #7
- Sensorki – podsumowanie – #8
- Sensorki – Serverless app i refaktoring – #9
Dawno temu Mąż porozstawiał po domu sensorki [specyfikacja sensorków] zbierające dane na temat m. in. temperatury i wilgotności w pomieszczeniach mieszkania i z balkonu. Do tej pory jedynym dostępem do danych jest strona internetowa. Nie może tak być – trzeba zrobić aplikację na Androida 😉
O to jak będzie wyglądać aplikacja nie musiałam się martwić. Zamierzałam wzorować się na tym co na stronie:

Na początku trzeba było wyciągnać dane – nie było to trudne skoro dostałam endpoint, który zwraca mi plik .json z danymi, które muszę tylko wyświetlić.
Na kursie Udacity Nanodegree z Androida, którego nie ukończyłam, zdążyłam poznać bibliotekę Retrofit, którą postanowiłam użyć do pobrania pliku z serwera. Najpierw trzeba było utworzyć interfejs serwisu z obiektem typu Retrofit z adresem serwera, do którego będę się łączyć:
Poza tym serwis zawiera tylko jedną deklarację metody – loadData(), która zwraca Call<JSONObject>. Do deklaracji przypięłam adnotację, która wskazuje na endpoint, doklejaną do baseUrl z obiektu Retrofit.
Serwis tworzę i wywołuję w MainActivity. Wywołanie metody loadData wyląduje w kolejce. Tworzę Callback by wywołała się asynchronicznie. W Callbacku nadpisuję metody onResponse, jeśli wszystko będzie ok i onFailure, która wykona się jeśli coś się wykrzaczy. W pomyślnym przebiegu to co przyjdzie z serwera zamieniam na obiekty typu Sensor i dam znać do adaptera żeby zaktualizował widok.
Na ten moment klasa Sensor wygląda tak:
ale czemu by nie skorzystać z biblioteki Moshi – trzeba tylko zmapować odpowiednie struktury 😉 Ale to stanie się gdzieś na etapie refaktoryzacji. W kolejnym wpisie – warstwa widoku. A kod można podejrzeć na githubie. Od razu uprzedzam, że nie działa, podany jest fake’owy adres – nie chcę DDoS na biedny, domowy serwerek 😉 Aplikacja jest podpięta do demo serwera na Heroku generującego losowe dane 😉
A co to za sensorki? Sam chciałbym wyposażyć swoje mieszkanie w kilka więc byłbym wdzięczny za porady.
hej, tu jest wszystko opisane 🙂
https://github.com/mckacz/sensors