Sensorki – aplikacja „pogodowa” – #0

This entry is part [part not set] of 10 in the series Sensorki

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:

wersja web

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ć. 

https://gist.github.com/jezinka/3973248f1082eff40936636a1b11992e
przykładowy plik

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ć:

https://gist.github.com/jezinka/f10c4af16598cc923ad2ee71bd8ef3f9
WeatherService.java

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.

https://gist.github.com/jezinka/a64c692986687c7a1969e82738268eb3
MainActivity.java

Na ten moment klasa Sensor wygląda tak:

https://gist.github.com/jezinka/61d622d4f164595ae2e5d1c9e89b9f72
Sensor.java na dzień 10.08.18 😉

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 😉

Series Navigation

2 thoughts on “Sensorki – aplikacja „pogodowa” – #0

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.