>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Python

Jak zbierać dane z Garmin, Apple Health i Whoop w jednym miejscu bez bólu głowy

Wyobraź sobie taką sytuację: postanowiłeś zbudować aplikację do śledzenia fitness lub biohackingu. I wtedy zaczyna się "zabawa". Aby zintegrować swoją usługę z Garmin, musisz przejść przez siedem kręgów piekła z ich API. W przypadku Apple Health będziesz musiał napisać natywny kod dla iOS. A dla Google Health Connect — dla Androida. W efekcie zamiast tworzyć ciekawe funkcje, spędzasz sześć miesięcy na walce z autoryzacjami OAuth, różnymi formatami JSON i konwersją mil na kilometry.

Projekt Open Wearables próbuje radicalnie rozwiązać ten problem. Zespół buduje otwartą platformę, która zajmuje się całą brudną robotą związaną z integracją z urządzeniami noszonymi. Otrzymujesz jedno ujednolicone API, podczas gdy cała złożoność dostawców pozostaje ukryta pod maską.

Dlaczego warto, skoro są gotowe SDK

Zazwyczaj programiści wybierają między dwoma ścieżkami: budować integracje samodzielnie lub płacić agregatorom chmurowym jak Terra czy Rook. Pierwsza opcja jest czasochłonna i kosztowna w utrzymaniu. Druga oznacza zależność od zewnętrznej usługi i comiesięczne rachunki per użytkownik.

Open Wearables oferuje trzecią ścieżkę: rozwiązanie hostowane samodzielnie. Wdrażasz platformę na własnym serwerze, dane pozostają u ciebie i nie płacisz żadnych opłat. Dodatkowo projekt nie tylko przekazuje dane — normalizuje je do ujednoliconego standardu. Nie ma znaczenia, czy dane o tętnie pochodzą z zegarków Suunto czy z pierścienia Oura — w twoim backendzie będą wyglądać identycznie.

Co platforma potrafi teraz

Projekt jest na wczesnym etapie, ale podstawowy szkielet jest już całkiem funkcjonalny. Oto co możesz wypróbować już teraz:

  • Ujednolicony panel dewelopera. Po uruchomieniu przez Dockera otrzymujesz panel administracyjny, w którym możesz zarządzać użytkownikami, generować klucze API i monitorować status synchronizacji danych.
  • Gotowe przepływy autoryzacji. Platforma obsługuje całą procedurę OAuth z Garmin, Polar i Suunto. Generujesz tylko link dla użytkownika, loguje się on u swojego dostawcy i dane zaczynają płynąć do twojej bazy danych.
  • SDK mobilne. Dla tych, którzy pracują z danymi bezpośrednio na telefonie, dostępne są natywne biblioteki dla iOS (Swift), Androida (Kotlin), a nawet wrapper Flutter. Jest to kluczowe dla Apple Health, którego danych nie można pobrać po prostu przez żądanie chmurowe.
  • Synchronizacja w tle. Jest obsługiwana przez FastAPI i Celery. System automatycznie odpytuje dostawców i aktualizuje metryki aktywności oraz treningów.

Stos technologiczny i architektura

Deweloperzy nie wymyślali koła na nowo i zbudowali projekt na sprawdzonych narzędziach. Backend jest napisany we FastAPI — standardzie dla nowoczesnych usług Python, szybkim i z doskonałą auto-dokumentacją Swagger (dostępną tuż po uruchomieniu).

PostgreSQL jest używany do przechowywania danych, a Redis do kolejek zadań i cache'owania. Frontend panelu administracyjnego jest zbudowany w React z użyciem TanStack Router. Ciekawy szczegół: autorzy podkreślają, że platforma jest zaprojektowana jako single-tenant. Oznacza to, że jedna instancja obsługuje jedną organizację. Bez dodatkowej złożoności związanej z rozdzielaniem praw dostępu między różne firmy w ramach jednej bazy danych.

Funkcje AI: przyszłe plany

Najciekawszą rzeczą na mapie drogowej są Health Insights. Deweloperzy planują dodać warstwę automatyzacji opartą na języku naturalnym. Chodzi o to, że możesz napisać warunek tekstem: "Jeśli spoczynkowe tętno użytkownika wzrosło o 20% w ciągu trzech dni, wyślij webhook". System sam to zinterpretuje i skonfiguruje wyzwalacz.

Obiecują również AI Health Assistant — widżet czatu, który możesz osadzić w swojej aplikacji. Użytkownik będzie mógł zapytać: "Jak spałem w tym tygodniu w porównaniu z poprzednim?", a AI przeanalizuje zgromadzone dane z bazy Open Wearables.

Jak uruchomić i przetestować

Jeśli masz zainstalowanego Dockera, możesz uruchomić projekt dosłownie w kilka minut. Instrukcje są proste:

  1. Sklonuj repozytorium:
    git clone https://github.com/the-momentum/open-wearables.git
    cd open-wearables
    
  2. Skopiuj przykładowe konfiguracje:
    cp ./backend/config/.env.example ./backend/config/.env
    cp ./frontend/.env.example ./frontend/.env
    
  3. Uruchom:
    docker compose up -d
    

Po tym portal otwiera się na porcie 3000, a API na 8000. Aby nie szukać prawdziwych urządzeń do testowania, możesz uruchomić polecenie make seed, które wypełni bazę danych fałszywymi użytkownikami i treningami.

Kto powinien się temu przyjrzeć

Open Wearables to świetne znalezisko dla startupów z branży Health & Fitness. Jeśli budujesz portal wellness dla firm, aplikację coachingową lub projekt badawczy, który wymaga zbierania danych z różnych urządzeń, zaoszczędzi ci to setki godzin pracy programistycznej.

Oczywiście projekt jest jeszcze młody (wersja przed 1.0), a API może się zmienić. Ale otwarty kod źródłowy i możliwość samodzielnego hostowania przewyższają te ryzyka. Jeśli nie chcesz powierzać poufnych danych medycznych użytkowników zewnętrznym, zastrzeżonym usługom, to narzędzie jest prawdopodobnie najlepszą obecnie dostępną opcją open source do takich zadań.

Przy okazji, zespół ma aktywną społeczność na Discordzie, gdzie możesz bezpośrednio porozmawiać z opiekunami projektu. Jeśli zdecydujesz się to wdrożyć — sprawdź to, odpowiadają dość szybko.

Powiązane projekty