EU Stats
Otwarte dane Eurostatu na Androidzie, iOS i desktopie
EU Stats to moja otwartoźródłowa aplikacja Kotlin Multiplatform dla publicznego API Eurostatu. Jeden kod z interfejsem Compose Multiplatform działa na Androidzie, iOS i desktopie. Aplikacja pokazuje europejskie statystyki w ośmiu modułach tematycznych, z interaktywnymi wykresami.
Co robi aplikacja
Osiem modułów tematycznych z aktualnymi danymi z API Eurostatu
Jeden kod, trzy platformy
Kotlin Multiplatform i Compose Multiplatform: ta sama aplikacja działa na Androidzie, iOS i desktopie (macOS, Linux, Windows).
Osiem modułów danych
Gospodarka, ludność, środowisko, handel, transport, turystyka, sprawy społeczne i nauka, a także ekrany Przegląd, Wyszukiwanie, Porównanie i Ustawienia.
8 typów wykresów w Compose Canvas
Wykres liniowy, słupkowy skumulowany, piramida ludności, mapa cieplna, słupki rozbieżne, radar, siatka małych wykresów (small multiples) i wyróżniony wykres wieloliniowy, rysowane w Compose Canvas.
Cache offline
Cache typu stale-while-revalidate z SQLDelight. Dane, które aplikacja pobrała wcześniej, są dostępne bez sieci.
Trzy języki interfejsu
Angielski, polski i ukraiński. Użytkownik zmienia język w trakcie działania aplikacji, w Ustawieniach.
~1000 testów automatycznych
Około 1000 testów automatycznych. CI w GitHub Actions uruchamia je, także testy na symulatorze iOS.
Ekrany
Ekrany z wersji na Androida
Jak jest zbudowana
Projekt to wielomodułowa aplikacja w Clean Architecture. Każdy moduł tematyczny ma własne warstwy danych, domeny i UI. Decompose obsługuje nawigację, Koin wstrzykiwanie zależności, Ktor pobiera dane, a SQLDelight je cache’uje.
Aplikacja czyta format JSON-stat 2.0 z API Eurostatu. Ten parser publikuję też jako małą osobną bibliotekę, kotlin-jsonstat, dla Kotlin Multiplatform.
EU Stats to niezależny klient open source. Nie jest powiązany z Eurostatem ani z Komisją Europejską. Dane pochodzą z Eurostatu na licencji CC BY 4.0.
Najważniejsze fakty
- Kotlin Multiplatform + Compose Multiplatform
- Android, iOS i desktop (JVM)
- 8 modułów tematycznych, aktualne dane Eurostatu
- 8 typów wykresów w Compose Canvas
- Interfejs po angielsku, polsku i ukraińsku
- ~1000 testów automatycznych, CI w GitHub Actions
- Open source, AGPL-3.0
- Bez konta, bez analityki, bez śledzenia
Stos technologiczny
Kotlin Multiplatform od warstwy sieciowej do interfejsu
Zobacz kod
Kod źródłowy jest na GitHubie na licencji AGPL-3.0. Aplikacja jest w aktywnym rozwoju.