ProgramowanieBudujemy aplikację
#projekt#kodowanie#krok po kroku
Опубліковано 1.06.2024
Jakiś czas temu (dokładnie - jakieś trzy lata temu) chciałem poćwiczyć pracę z czystym JS-em, łączenie z API i tego typu sprawy. W tym celu wszedłem sobie w rządową bazę API. Początkowo bez konkretnego pomysłu - zakładałem, że coś mnie natchnie.
Nie pomyliłem się. Po dłuższym przeczesywaniu najróżniejszych danych trafiłem na udostępnione przez Główny Inspektorat Ochrony Środowiska pomiary jakości powietrza w Polsce. Nooo... z tym jak najbardziej można było coś ciekawego zrobić.
No dobrze, ale do czego z tym wszystkim zmierzam? Jak powiedziałem - apka była napisana daaaawno temu i w celach głównie... nazwijmy to treningowych. Tylko, że praca nad nią naprawdę mnie wciągnęła i wyszło całkiem fajnie (zwłaszcza jak na mój ówczesny poziom). I już wtedy powiedziałem sobie, że trzeba ją przepisać - ale tym razem zgodnie ze sztuką, bez zbędnego udziwniania (bo traktując ją od początku jako pewnego rodzaju playground - pozwalałem sobie niekiedy na bardzo egzotyczne, nieoczywiste lub zwyczajnie zbędne rozwiązania), zamieniając czystego JS-a na Reacta. Czego - jak łatwo zgadnąć - nie zrobiłem do dzisiaj 😉
Tak się jednak złożyło, że ostatnio pokończyłem (niemal) wszystkie side-projekty. I skierowawszy wzrok na kupkę wstydu - zdecydowałem się w końcu zabrać za odnowienie starej, dobrej aplikacji do sprawdzania jakości powietrza.
Jak po grudzie - na własne życzenie
Jak wyglądało budowanie aplikacji te kilka lat temu? Najbardziej odpowiednim określeniem będzie "chaotycznie". Z wielu powodów. Po pierwsze - i najważniejsze - przez doświadczenie (a konkretnie jego znikomy stan posiadania). Po drugie - zaczynając prace nad aplikacją nie planowałem, że stanie się ona czymś innym, niż tylko poligonem. Po trzecie - zdecydowana większość pomysłów pojawiała się (i była implementowana) na bieżąco.
Podsumowując - kod to jeden wielki bałagan. Można rzucić na niego okiem - tylko się nie przestraszcie 😂 I ten bałagan powstał głównie na moje życzenie.
Nowe początki
Fakt budowy aplikacji od (prawie) zera podsunął mi pomysł, żeby to wszystko opisać. Krok po kroku. I w tym miejscu muszę dać bardzo ważną uwagę - to nie jest tutorial czy jakiś poradnik! Dziś jeszcze nie mam pojęcia, dokąd to wszystko będzie zmierzało, ale raczej nie polecam traktować tego w kategoriach wzoru. Mam jednak szczerą nadzieję, że całość nie będzie pozbawiona jakiejkolwiek warstwy edukacyjnej.
W rozpoczętej niniejszym serii będę chciał pokazać moje podejście do projektowania, budowania i wdrażania aplikacji. Czy uważam, że moje podejście jest najlepsze i najbardziej optymalne? Zdecydowanie nie! No to... po co o tym pisać? Po części jako przestrogę - bo zawsze lepiej uczyć się na błedach cudzych, niż własnych 😉 A zdziwiłbym się, gdyby błędy - te mniejsze, i te całkiem poważne - się nie pojawiły. I mam zamiar uczciwie o nich pisać.
Archeologia, czyli co mamy na start
Aplikacja będzie pisana od zera. Niemal - bo kilka rzeczy mamy już na sam początek. Są to niektóre pomysły i rozwiązania z pierwszej wersji - w końcu nie wszystko trzeba wywalić do kosza. Niektóre linijki kodu będą mogły spokojnie otrzymać nowe życie.
It's not a bug - it's a feature!
Na początku trzeba sobie postawić pytanie - jakie funkcje posiadała aplikacja w starej wersji? No to lecimy:
- automatyczne wyszukiwanie najbliższej stacji pomiarowej na podstawie lokalizacji użytkownika,
- ręczne wybranie dowolnej stacji pomiarowej w Polsce,
- aplikacja dostępna w trzech językach: polskim, angielskim i rosyjskim,
- wybór języka na podstawie języka przeglądarki z możliwością ręcznej zmiany.
Co z tego zostanie? W zasadzie wszystko. Wstępnie sprawdzając API od GIOŚ-u widziałem, że przez ostatnie trzy lata sporo się zmieniło, ale nie wczytywałem się w to, co mamy dziś do dyspozycji. Jednak zgadywałbym, że te zmiany nie powinny wpłynąć na możliwość implementacji istniejących wcześniej funkcjonalności.
Jedyne, co bym zmienił, to zamiast opcji języka na "r" dałbym ukraiński. Tak, z przyczyn czystko politycznych - nie będę ukrywał. Co do jakości tej wersji - nie ma tu większej różnicy, bo podobnie jak "r" treść wyskoczy z translatora. A ja, podobnie jak wcześniej, nie będę miał jakiejkolwiek możliwości zweryfikowania tego tekstu 😂
Zapewne na tym się nie skończy - ale planowanie nowych ficzerków zostawię na kolejny artykuł 😉
Mam szczerą nadzieję, że taki programistyczny ekshibicjonizm okaże się dobrym pomysłem, na którym wszyscy skorzystamy 😉
Do następnego!
Aaaaa... bo bym zapomniał - zapraszam na mojego twixera 😉