Rozwój aplikacji – nowe wersje i serwer

Rozwój aplikacji – nowe wersje i serwer

Pojawiły się ostatnio nowe ficzery w aplikacji. Trochę kombinowania było ponieważ styk z Firebase jest świeży dla mnie. Pojawiło się kilka konkretniejszych problemów jak np. relacje, których nie ma w bazach NoSQL. Kilka komplikacji przy dopisywaniu danych do innych obiektów, co wymuszało tworzenie pętli po obiektach. Okazało się później że nie potrzebnie więc porządny refactoring na samym początkowym etapie pomógł i zabezpieczył przed późniejszymi krytycznymi błędami. Wydajność skoczyła o prawie 70% po tym jak wyprowadziłem wszystkie wspólne elementy do serwisów i dyrektyw. Aplikacja nie pobiera już danych za każdym razem, tylko jeden raz i automatycznie synchronizuje obiekty w bazie – po bożemu.

Nowe elementy aplikacji

Integracja z silnikiem Firebase pozwoliła też na hostowanie aplikacji u nich (Google) co daje możliwość łatwego deployowania aplikacji i domyślnie podłączenie certyfikatu SSL. W przypadku swojego hostingu musiał bym to sam podłączać i integrować. Za to Google zrobiło wszystko z automatu, razem z propagacją domeny zajęło to ok 2h z czego konfiguracja zajęła ok 15 minut. Z deployem nie ma większego problemu, no w sumie z certem też nie 🙂 Ale hosting u nich daje też zarządzanie historią deployów. Łatwo można wrócić w przypadku, gdy okaże się, że coś jest zrąbane w najnowszej wersji. Właśnie! Wprowadziłem też wersjonowanie do aplikacji i staram się pisać ją w jakiś konkretnych sprintach. Określiłem, że co dwa tygodnie wypuszczę “wersję drugiego poziomu”, przez co już mam wersję 0.3, a tak na prawdę wersję 0.3.3.

W wersji 0.1 poszła cała architektura, o czym pisałem wcześniej. W 0.2 poszły ficzery do budżetowania, wydatków i dochodów. Patche do 0.2 wzbogacały aplikację o wykresy i drobne naprawy błędów. Natomiast w wersji 0.3 dodałem moduł “Oszczędności”. Z oszczędności niektóre elementy i wyliczenia pojawiają się na innych widokach. Np. oszczędność jest budżetem i w ramach tej oszczędności są wydawane pieniądze na nią, co z kolei powoduje, że staje się wydatkiem. Jednak oszczędności nie są dodawane bezpośrednio do budżetów i wydatków, a tylko uwzględniane w kalkulacjach, tabelach i wykresach, tak aby zapewnić autonomiczność temu modułowi w przypadku jeśli któryś użytkownik nie będzie posiadał do niego uprawnień.

Na koniec kwietnia pojawia się na serwerach wersja 0.3.4 z usprawnieniami i bazą pod płatności. Planuję też rozbudować moduł profilu użytkownika o upload zdjęcia profilowego oraz rozbudować podstronę z ustawieniami tak, żeby niektóre elementy były sterowane za pomocą tych ustawień, np. powiadomienia, maile itd.