Фаза 4 · 8 модулів з реальними даними

Дані Євростату
на кожному екрані.

Застосунок з відкритим вихідним кодом для публічного API Євростату, доступний на мобільних пристроях і комп'ютерах. Вісім тематичних модулів — економіка, населення, довкілля, торгівля, транспорт, туризм, суспільство, наука — на єдиній спільній кодовій базі Kotlin Multiplatform.

🇪🇺Незалежний застосунок з відкритим вихідним кодом, створений третьою стороною. Не пов'язаний з Євростатом або Європейською комісією.

Огляд усіх восьми модулів застосунку EU Stats
18
наборів даних Євростату
8
тематичних модулів
444
юніт-тестів пройдено
AGPL-3.0
ліцензія відкритого коду
Що робить застосунок

Публічні європейські дані, що заслуговують на повноцінний продукт.

Спокійний, редакційний інтерфейс. Кешування stale-while-revalidate. Реальні запити до API, без підробок. Розроблено для громадян, журналістів і студентів, які хочуть досліджувати європейську статистику без залежності від єдиного постачальника.

Дані з публічного API

Усі вісім модулів отримують дані наживо з офіційного API розповсюдження Євростату — 18 наборів даних. Жодних підробок; жодних демонстраційних баз даних.

Кешування stale-while-revalidate

Кеш SQLDelight з TTL 12 годин. Кешовані дані відображаються миттєво, оновлення мережі відбувається у фоні за спокійним банером, а офлайн-режим ніколи не означає порожнього екрана.

Вісім тематичних модулів

Економіка, населення, довкілля, торгівля, транспорт, туризм, суспільство, наука. Кожен модуль має власний набір даних, власний перемикач і характерний графік, що відповідає формі даних.

Графіки на чистому Compose Canvas

Вісім типів графіків — лінійний, складений стовпчастий, піраміда, теплова карта, розбіжний стовпчастий, радарний, small multiples, багатолінійний з підсвіткою — намальованих на Compose Canvas без жодних сторонніх залежностей рендерингу.

Мультиплатформний з першого дня

Телефон і планшет Android, iPhone та iPad, а також самостійний .jar Compose Desktop для macOS, Linux і Windows — все з єдиної спільної кодової бази Kotlin.

Вибір року на кожному екрані

Нещодавно додана функція: оберіть будь-який історичний рік — заголовок і плитки статистики оновляться миттєво, без додаткових мережевих запитів. Графік зберігає повну серію; рік керує лише відображенням значення.

Вісім модулів

Відкрийте вкладку. Оберіть країну. Прокрутіть рік.

Кожен модуль має власний набір даних, власний перемикач і характерний графік, що відповідає формі даних. Описи взяті безпосередньо з README проєкту.

Модуль Населення — перетягніть повзунок року, щоб змінити форму піраміди

Населення

demo_pjangroup · 18 вікових груп · Ч/Ж/У

Демографічна піраміда для 18 вікових груп (п'ятирічні інтервали, Y_LT5 до Y_GE85). Заголовок показує загальну чисельність населення зі зміною рік до року. Трипозиційний сегментований перемикач (Усього / Чоловіки / Жінки) затемнює протилежний бік піраміди при виборі однієї статі. Повзунок року прокручує доступні роки; рядок чіпів країн змінює активну країну без повторного завантаження даних.

графік-піраміда повзунок року Ч/Ж/У сегментований
Модуль Економіка — ВВП, інфляція HICP і дефіцит

Економіка

nama_10_gdp · prc_hicp_aind · gov_10dd_edpt1

Три макроекономічних показники — ВВП у поточних цінах (млрд EUR), індекс інфляції HICP (2015 = 100) і чисте кредитування/позичання уряду як % ВВП — відображені як багатокраїнний лінійний графік. Сегментований перемикач змінює активну метрику; дві неактивні метрики залишаються видимими як затемнені вторинні плитки. Подвійний повзунок року обмежує діапазон осі x; окреме спадне меню вибирає рік для заголовка.

багатолінійний графік перемикач метрик подвійний повзунок
Модуль Довкілля — ПГ, енергія та кліматичний індекс SDG 13

Довкілля

env_air_gge · nrg_bal_c · sdg_13_10

Три кліматичних набори даних, доступні через спадне меню: викиди парникових газів у Мт екв. CO₂, кінцеве споживання енергії в ktoe та кліматичний індекс SDG 13 за базою 1990 = 100. Коли активна метрика ПГ або Енергія, рядок чіпів фільтрує за сектором (УСЬОГО / ТРАНСПОРТ / ПРОМИСЛОВІСТЬ). Головний елемент — лінійний графік, що порівнює активну країну з однією порівнюваною; дві плитки статистики показують інші дві метрики для вибраного року.

спадне меню метрик рядок чіпів секторів порівняльна лінія
Модуль Торгівля — розбіжні стовпці для експорту, імпорту та сальдо

Торгівля

ext_lt_intratrd

Потоки торгівлі товарами всередині ЄС — експорт, імпорт і торговельне сальдо в млрд EUR. Головний елемент — розбіжний стовпчастий графік за вісім останніх років: експорт тягнеться вправо, імпорт вліво. Три вкладки з підкресленням (Експорт / Імпорт / Сальдо) підсвічують відповідний напрямок. Дві компактні плитки статистики показують дані активної країни за вибраний рік.

розбіжний стовпчастий вкладки з підкресленням спадне меню року
Модуль Транспорт — small multiples пасажирів доріг та авіації

Транспорт

road_pa_buscoa · avia_paoc

Пасажиропотік доріг та авіації представлений як лінійні графіки small multiples поруч. Дорожні дані (млрд пасажирів) і авіаційні дані (млн пасажирів) масштабуються незалежно в кожній панелі. Перемикач-пігулка (ДОРОГИ / АВІАЦІЯ / ВСЕ) контролює видимі панелі. Перемикач логарифмічної шкали стискає вісь для країн із дуже різними масштабами. Три плитки статистики підсумовують дороги, авіацію і плитку «море: н/д», яка чесно пояснює навмисне виключення набору даних на основі портів.

small multiples перемикач-пігулка логарифмічна шкала
Модуль Туризм — складені нічні та теплова карта сезонності

Туризм

tour_occ_ninat · tour_occ_nim

Нічлігування в колективних засобах розміщення — внутрішні, іноземні та загальні — відображені як складений стовпчастий графік за дев'ять останніх років. Рядок чіпів контролює, яка метрика керує значенням заголовка. Під складеними стовпцями місячна теплова карта сезонності (клітинки = місяць × рік) показує розподіл нічлігувань протягом календарного року.

складені стовпці рядок чіпів теплова карта сезонності
Модуль Суспільство — плитки KPI керують підсвіченим лінійним графіком

Суспільство

ilc_li02 · ilc_peps01 · hlth_silc_01

Три відсоткових показники добробуту з досліджень EU-SILC: рівень ризику бідності, рівень ризику бідності або соціального відчуження та частка населення, що оцінює своє здоров'я як дуже хороше. Усі три відображаються разом як багатолінійний графік із підсвіткою; натискання плитки KPI переносить акцент на цей ряд і оновлює значення заголовка.

багатолінійний з підсвіткою селектор плиток KPI повзунок року
Модуль Наука — радарний графік для НДДКР, використання інтернету та вищої освіти

Наука

rd_e_gerdtot · isoc_ci_ifp_iu · edat_lfse_03

Три показники інноваційності — витрати на НДДКР як % ВВП, рівень використання інтернету та частка осіб із вищою освітою серед вікової групи 25–64 роки — відображені одночасно на радарному графіку. Радар накладає активну країну на одну порівнювану (перевага DE, потім FR, потім EU27). Три sparklines завжди показують повний тренд. Перемикача метрик немає — радар одразу відображає всі три осі.

радарний графік порівняльне накладання три sparklines
Під капотом

Консервативні, «нудні» рішення — навмисно.

Чиста архітектура у 17 модулях Gradle. Кожен шар має запечатаний контракт. Жодного оператора !! ніде; жодних сторонніх бібліотек графіків; жодного витоку диспетчерів.

Архітектура

  • Багатомодульна чиста архітектура — datadomainui
  • Контракти Result<T> · AppError · DispatcherProvider
  • Decompose для навігації, компонентів і життєвого циклу
  • Koin для ін'єкції залежностей
  • Патерн репозиторію stale-while-revalidate

Дані

  • Ktor Client — рушій Darwin на iOS, OkHttp на Android
  • kotlinx.serialization для JSON і блобів кешу
  • Схеми SQLDelight з типізованими DAO
  • Власноруч написаний парсер JSON-stat 2.0 у core-jsonstat
  • Coroutines + Flow + StateFlow скрізь

Інтерфейс

  • Compose Multiplatform — Android, iOS, Desktop
  • Дизайн-токени object Euro — кольори, типографіка, відступи, форми
  • ~25 багаторазових composables у core-ui
  • Вісім типів графіків на чистому Compose Canvas — без Koalaplot
  • kotlin.test і Turbine для юніт-тестів і тестів потоків
Три форм-фактори

Телефон, планшет, комп'ютер — той самий код Compose.

Журналіст за комп'ютером, студент із планшетом, громадянин із телефоном — ті самі дані, ті самі компоненти, той самий рендеринг. Вже реалізовано на рівні інфраструктури.

Android
Android телефон · планшет
iOS
iPhone · iPad
macOS · Linux · Windows
Compose Desktop

Єдина кодова база Kotlin. Інтерфейс Compose Multiplatform. Нативні віджети на кожній платформі.

Дорожня карта

Чесно про те, що вже є, що попереду і що потребує фінансування.

Проєкт перебуває на Фазі 4: усі вісім модулів відображають реальні дані на Android. Фаза 5 завершує оболонку — огляд, вибір країни, налаштування — а Фаза 6 випускає перший реліз.

Доступно вже сьогодні

Фаза 4 · перевірено
  • Вісім тематичних модулів підключені до реальних даних Євростату
  • Кешування stale-while-revalidate · офлайн-режим витримує рейс
  • Вибір року в кожному модулі · заголовок оновлюється без повторного завантаження
  • Вісім типів графіків на чистому Compose Canvas
  • APK для Android збирається · Compose Desktop .jar працює на macOS/Linux/Windows
  • Опубліковано під AGPL-3.0

Наступний етап (M1)

Фаза 5 · у розробці
  • Екран огляду — стартова сітка плиток
  • Вибір країни — пошуковий список і натискання на карту
  • Димовий тест iOS у симуляторі · перевірка всіх восьми вкладок
  • Збереження налаштувань · тема, країна за замовчуванням, мова
  • Реальний рендеринг прапорів · вбудований шрифт Inter

Цілі фінансування (M2 · M3)

Фаза 6 · кандидат NLnet
  • Локалізація · переклади польською та українською
  • Нативні інсталятори · .dmg, .msi, .deb, Flatpak
  • Порівняння кількох країн · накладання або small multiples
  • Міжмодульний пошук · індекс показників по всіх восьми модулях
  • Широкоекранні макети master-detail для планшетів і комп'ютерів
Відкритий вихідний код · суспільний інтерес

Створено незалежно. Опубліковано під AGPL-3.0.

Наразі розглядається можливість подати заявку на відкритий конкурс NLnet для фінансування наступних етапів. Громадяни, журналісти і студенти повинні мати змогу досліджувати публічні європейські дані без залежності від єдиного постачальника — на будь-якому пристрої, який вони вже мають.

Читати дорожню карту