Sensorki – Serverless app i refaktoring – #9

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

Postanowiłam zmienić format jsona, którego obrabiam na androidzie, na bardziej przystępny. Tak powstała aplikacja w chmurze google’a, która pozwoliła uprościć kod.

https://gist.github.com/jezinka/3f84a59225c30377403dd627b9d6fd27

Format JSON-a zawierający odczyty sensorka nie był zbyt przyjazny do wyświetlania przez aplikację. Trzy obiekty zawierające kolejne obiekty. Dużo danych, których wcale nie potrzebowałam. Żeby wyciągnąć etykietę z sensora musiałam się odwołać do innej listy.

Postanowiłam sprowadzić tego JSON-a do prostej listy zawierającej tylko te dane, z których naprawdę korzystała. Za pomocą javaScriptu i node.js stworzyłam funkcję pobierajcą jsona z dotychczasowego endpointu. Dwie pętle i JSON zaczął być maksymalnie użyteczny.

https://gist.github.com/jezinka/04196a710f7067d9fee1077682ad548a

Wyodrębniłam z serwera funkcję i przeniosłam do chmury google’a tworząc „aplikację bezserwerową.

W wyniku obróbki przez funkcję dostaję teraz takiego JSON-a.

https://gist.github.com/jezinka/0f65d5126c3870ed32449c27630b07e7

Pozwoliło mi to na użycie biblioteki Moshi do mapowania JSONa prosto do javowej klasy. Adnotacje w miejscach gdzie nazwa pola nie zgadzała się z polem w JSONie

https://gist.github.com/jezinka/a1c5c3d4f4d52aa56859d36247cbf847

i już mogę korzystać z tego, że serwer zwraca mi po prostu listę obiektów Sensor zamiast JSON Object

https://gist.github.com/jezinka/1a55f5acf48be01e1f6263a142606d38

Pozbywam się ręcznego wydobywania z JSON-a labelek i poszczególnych odczytów.

https://gist.github.com/jezinka/c97df0b2239662750d056e552948bfdd

Działanie aplikacji nie zmieniło się wcale, ale kod jest o wiele bardziej czytelny.

Series Navigation

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.