Allegra - aplikacja mobilna dla alergików

Dzisiejszy wpis poświęcony będzie szerszemu opisowi jednego z naszych ostatnich projektów, jest to aplikacja monitorująca stan pylenia alergenów w określonych lokalizacjach polski - Allegra.

Opis funkcjonalny aplikacji

Aplikacja dostępna jest w sklepie Google Play: Allegra - aplikacja dla alergików.

Po zainstalowaniu, użytkownik proszony jest o rejestrację przy pomocy e-maila lub konta Facebook. Kolejnym krokiem jest wybranie alergenów których poziom użytkownik chce śledzić, są to między innymi: Buk, Brzoza, Cis, Bylica, Dąb, Jesion i wiele innych, łącznie do wyboru prawie 30 alergenów.

Kolejny krok to dodanie pierwszej lokalizacji. Obszar Polski został podzielony na kilka obszarów ułatwiających prowadzić prognozę, użytkownik dodaje lokalizację w jednej ze stref. Po wykonaniu tego kroku zostajemy przekierowani do ekranu głównego z lista lokalizacji. Z tego miejsca użytkownik w każdej chwili może dodać nowe lokalizacje (np. działka czy miejsce obecnego pobytu wakacyjnego).

Prognozę pylenia możemy podejrzeć wybierając jedną z dodanych lokalizacji, zostanie otwarta nowa zakładka z listą wybranych wcześniej alergenów i poziomem pylenia.

Jedną z ważniejszych funkcjonalności aplikacji jest wysyłanie powiadomień push użytkownikowi aplikacji. Dzięki tym powiadomieniom, użytkownik nie musi sam sprawdzać stanu aktualnego zapylenia, każdorazowa zmiana wybranego alergenu w obszarze w którym użytkownik ma dodaną którąś z lokalizacji będzie skutkowała wyświetleniem systemowego powiadomienia. Funkcjonalność ta jest bardzo przydatna gdyż nie wymaga od użytkownika ciągłego śledzenia stanu pylenia.

Zaciekawionych tematem odsyłam do kalendarza pylenia prowadzonego przez firmę Sanofi.

Dokładny spis alergenów: Altenaria, Ambrozja, Babka, Brzoza, Buk, Bylica, Cis, Cladosporium, Dąb, Grab, Jesion, Klon, Komosa, Leszczyna, Nawłoć, Olsza, Platan, Pokrzywa, Sosna, Szczaw, Topola, Trawy, Wierzba, Wiąz. Każdy alergen opatrzony jest opisem oraz zdjęciem.

Aplikacja zawiera także prognozę pogody w dodanych lokalizacjach oraz porady alergiczne dla osobó uczulonych.

Opis techniczny aplikacji

Aplikacja została stworzona w technologii React Native, framework ten pozwala na budowanie aplikacji mobilnych korzystając z gotowych komponentów znakomitego frameworka React. Następnie komponenty te są kompilowane do natywnego kodu na platformy Android oraz iOS, oszczędzając dzięki temu czas potrzebny na pisanie kodu oddzielnie na dwie platformy.

React Native posiada bogaty zbiór komponentów które pozwalają m.in na obsługę map Google, wysuwanych menu (tzw. burger menu), zakładek, popupów i wiele innych.

Po wstępnej analizie wymagań aplikacji, wybór padł właśnie na React Native. W 2017 roku kiedy aplikacja powstawała, sam React Native był jeszcze nową technologią nie posiadając ugruntowanej pozycji i dopiero pojawiał się na językach programistów. Podjęliśmy jednak to wyzwanie (a także ryzyko) i przystąpiliśmy do realizacji zadania.

Od strony backendu, REST API napisane jest w Node.js, a rolę bazy danych pełni MongoDB. Jest to dla nas naturalny wybór, Node.js i MongoDB świetnie się skaluje, a aplikacje powstają w mgnieniu oka. Zawsze stosujemy technikę TDD, dzięki temu do developerów mobile trafiło gotowe i funkcjonalne API z pełną dokumentacją w Swagger.

Aplikacja posiada także panel administracyjny, który pozwala na zarządzanie stanami pylenia alergenów oraz innymy treściami w aplikacji (np. opisy alegenów). Panel został napisany w frameworku Vue.js. Sytuacja była podobna jak z React Native. Niestety miałem złe doświadczenia z Angularem, a sam React nie przyciąga zainteresowania swoją składanią. Kiedy zobaczyłem Vue.js, dosłownie w ciągu kilku minut wiedziałem że warto go spróbować. Na moment powstawania aplikacji (2017) panel był jednym z pierwszych projektów napisanych przez nas w Vue.js i okazał się całkowitym sukcesem. Łatwość pisania aplikacji frontendowych w połączeniu z gotowym REST API w Vue.js stwarza wiele radości i programiści zniechęceni frontendem na powrót powinni odnaleźć przyjemność w tym rodzaju pracy.

Author: Peter

I'm a backend programmer for over 10 years now, have hands on experience with Golang and Node.js as well as other technologies, DevOps and Architecture. I share my thoughts and knowledge on this blog.