Bodyspace: od przejętego kodu do monorepo z 14 pakietami
Przejęcie kodu po poprzednim wykonawcy i przebudowa do monorepo Melos w Clean Architecture: ~12 tys. linii testów, 6 procesów w Codemagic, poprawki OTA przez Shorebird, PostHog i Crashlytics.
- Klient
- Bodyspace
- Rola
- Jedyny programista
- Okres
- 2024 — obecnie
- Platformy
- iOS · Android
01 · Kontekst
Aplikacja z karnetami i zapisami na zajęcia, przejęta od wykonawcy
Bodyspace sprzedaje karnety i vouchery na siłownię oraz przyjmuje zapisy na zajęcia w jednej aplikacji w App Store i Google Play. W lutym 2024 RSApps przejęło kod stworzony przez poprzedniego wykonawcę i zostało jedynym programistą aplikacji.
02 · Problem
Bez struktury, bez testów, bez zabezpieczeń
Przejęta aplikacja była jednym pakietem bez warstw: wszystkie wywołania API siedziały w jednej klasie, jedynym testem był niezmieniony szablon Fluttera, nie było CI ani raportowania awarii. Płatność za koszyk nie była dokończona, a kod wciąż był pisany pod Darta 2.
03 · Co zrobiłem
Najpierw stabilizacja, potem przebudowa do monorepo
W pierwszych miesiącach RSApps uporządkowało aplikację na miejscu, przeniosło ją na BLoC, go_router, GetIt i bezpieczny magazyn danych, uruchomiło płatności Przelewy24 i dodało Crashlytics. Potem przebudowało aplikację do monorepo Melos w Clean Architecture i wydało ją w lutym 2026.
- 4 aplikacje i 14 pakietów, ~59 tys. linii Darta: Cubity na klasach sealed, DI przez GetIt i typowana nawigacja go_router
- ~12 tys. linii testów automatycznych
- 6 workflowów w Codemagic: wersje testowe, wydania do sklepów z tagów wersji, łatki Shorebird i flagi wersji
- Analityka i flagi funkcji w PostHog, Crashlytics oraz wymuszanie aktualizacji sterowane tymi flagami
- Płatności Przelewy24, koszyk działający offline, zapisy na zajęcia grupowe, sterowanie maszynami na siłowni kodem QR, usuwanie konta i zarządzanie zgodami
04 · Efekt
Rutynowe wydania, pilne poprawki bez przeglądu w sklepie
Wydanie zaczyna się teraz od tagu wersji, a CI buduje aplikację i publikuje ją w obu sklepach. Pilne poprawki mogą trafić do użytkowników jako łatki Shorebird bez czekania na przegląd w sklepie, a PostHog i Crashlytics pokazują, co dzieje się na produkcji. Motywy są oparte na markach, a na tej samej platformie powstaje już aplikacja drugiego klienta: początek produktu white-label dla wielu marek.