Open source • W aktywnym rozwoju

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.

Aplikacja EU Stats – ekran Gospodarka z wykresem liniowym PKB Niemiec, UE, Francji i Polski

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

Gospodarka: PKB Niemiec, UE, Francji i Polski na wykresie liniowym
Gospodarka – wykres liniowy
Ludność: piramida wieku Niemiec w pięcioletnich grupach
Ludność – piramida
Nauka: wykres radarowy, który porównuje Francję z UE pod względem B+R, korzystania z internetu i wykształcenia wyższego
Nauka – wykres radarowy
Turystyka: słupki noclegów i miesięczna mapa cieplna sezonowości dla Hiszpanii
Turystyka – słupki i mapa cieplna

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

Kotlin Multiplatform Compose Multiplatform Decompose Ktor SQLDelight Koin kotlinx.serialization Coroutines & Flow Compose Canvas GitHub Actions AGPL-3.0

Zobacz kod

Kod źródłowy jest na GitHubie na licencji AGPL-3.0. Aplikacja jest w aktywnym rozwoju.