Mobile development dla Equiem: access control, Apple Wallet i utrzymanie systemu end-of-life w PropTech

O projekcie

Klient:

Equiem to australijska firma PropTech z siedzibą w Melbourne, lider segmentu Tenant Experience w CRE (Commercial Real Estate). Jej platforma Equiem One obsługuje ponad 150 klientów, 800+ budynków i 256 000+ użytkowników na całym świecie. Wśród klientów znajdują się Canary Wharf Group, British Land, Brookfield, JLL i Knight Frank.

W 2023 roku Equiem przejęło SpaceOS - polską firmę PropTech rozwijającą analogiczną platformę od blisko 6 lat. SpaceOS posiadał własną bazę klientów i wdrożone funkcjonalności, których Equiem początkowo nie planowało utrzymywać. Okazało się jednak, że część klientów SpaceOS nie chciała migrować na platformę Equiem właśnie z powodu różnic funkcjonalnych, dlatego SpaceOS przez kolejne dwa lata po akwizycji działał równolegle, obsługując lojalnych klientów i generując przychód.

fireup.pro dostarczyło jednego Senior Mobile Developera - Patryka, który przez 16 miesięcy (kwiecień 2025 – lipiec 2026) pracował jednocześnie na obu projektach.

Cel projektu:
Biznesowe
  • Utrzymanie ciągłości działania aplikacji mobilnych SpaceOS (Android i iOS) do końca cyklu życia produktu — bez usuwania ze sklepów Apple i Google.
  • Rozszerzenie możliwości platformy Equiem o integracje z systemami kontroli dostępu, pozwalające użytkownikom otwierać drzwi smartfonem lub zegarkiem zamiast fizyczną kartą.
  • Wdrożenie integracji z Apple Wallet i Google Wallet dla klientów korporacyjnych Equiem, jako element premium oferty platformy.
  • Wsparcie klientów (support) w rozwiązywaniu problemów z integracjami access control.
Technologiczne
  • Integracja z SDK od dostawców systemów access control (Gallagher, Swift Connect, SaltoSpace, Roger (Assa Abloy), onUgo, ICT) w natywnych aplikacjach Android (Kotlin) i iOS (Swift).
  • Utrzymanie i aktualizacja natywnych aplikacji SpaceOS do wymogów sklepów App Store i Google Play.
  • Migracja aplikacji SpaceOS Merchant (React Native) z wersji React Native 0.63 do aktualnej architektury - po 4 latach bez żadnych aktualizacji.
  • Konfiguracja środowisk testowych dla integracji z Apple Wallet i Google Wallet od zera.
Od wyzwania

Kluczowe wyzwania

1

Brak fizycznego dostępu do sprzętu

Implementacja integracji z czytnikami kontroli dostępu wymaga testowania na fizycznym urządzeniu. Equiem — firma z siedzibą w Australii — nie dysponowała sprzętem w Australii. Sprzęt znajdował się tylko w Warszawie i nie jest łatwo przenaszalny. Patryk nie miał możliwości podejść do żadnego z obsługiwanych czytników. W celu testowania / debugowania należałoby udać się do biura W Warszawie (później do mieszkania Admina, ponieważ tam zostął przeniesiony CAŁY sprzęt). Sprzęt od jednego dostawcy to nie tylko pojedynczy czytnik; to również kontroler który odpowiada za komunikację, czasem również klamka z kawałkiem drzwi, czytnik jest tylko urządzeniem końcowym.

Rozwiązanie: Patryk wysyłał testowe buildy do kolegi w Warszawie, który jako jedyny w projekcie miał czytnik w domu. Kolega przykładał telefon, a Patryk obserwował wyniki przez logi — iteracja po iteracji, zdalnie.
2

Środowiska testowe do integracji z Wallet - do zbudowania od zera

Testowanie Apple Wallet i Google Wallet wymaga specyficznie skonfigurowanych środowisk po stronie developera i testerów, w Apple Developer Portal i Google Play Console. Osoby, które tę wiedzę posiadały, zostały zwolnione w poprzednich falach restrukturyzacji. Dokumentacji - brak.

Rozwiązanie: Patryk odtworzył i skonfigurował środowiska samodzielnie, bazując na dokumentacji zewnętrznych dostawców i własnym rozpoznaniu systemu przy pomocy QA’a / DevOpsa.
3

Trójstronna koordynacja przy wdrożeniach Wallet

Wdrożenie Apple Wallet dla konkretnego klienta wymaga synchronizacji trzech stron: Equiem (platforma), klienta (np. zarządca budynku) i dostawcy access control (np. SwiftConnect). Każda strona musi dopełnić własnych formalności: złożyć wnioski, uzyskać whitelistingi aplikacji od Apple lub Google, włączyć ukryte funkcjonalności w Developer Portal, włączyć Entitlements.

Przykład: wdrożenie Apple Wallet dla Canary Wharf, jednego z największych klientów Equiem, kompleksu biurowego w Londynie, zaplanowane pierwotnie na listopad, zostało sfinalizowane ostatniego dnia czerwca następnego roku. Jeden klient, jeden Wallet, osiem miesięcy poślizgu wyłącznie po stronie zależności zewnętrznych.
4

Kod porzucony na 4 lata

Aplikacja SpaceOS Merchant (React Native 0.63) nie była ruszana od czterech lat. Gdy jeden z klientów zgłosił, że aplikacja zniknęła ze sklepu (usunięta automatycznie przez Apple po braku aktualizacji), konieczna okazała się pełna migracja architektury, przy zerowej dokumentacji i bez kogokolwiek, kto znał ten kod. Udało się wykonać aktualiazacje i wdrożenie aplikacji przy użyciu Claude Code Opus 4.7. Cursor i Copilot z tym samym modelem nie radziły sobie, wieszały się, nie odpowiadały przez 20 minut.

Kluczowe wymagania funkcjonalne i niefunkcjonalne

Kontrola dostępu przez smartfon - użytkownik przykłada telefon do czytnika w biurze i otwiera drzwi przez aplikację Equiem, bez fizycznej karty. Obsługiwane systemy: Gallagher, SwiftConnect, SaltoSpace, Roger (Assa Abloy), onUgo, ICT.

Integracja z Apple Wallet i Google Wallet - karta dostępu dodana do Walleta pozwala otwierać drzwi bez wchodzenia do aplikacji: dwuklik bocznego przycisku iPhone'a lub przyłożenie zegarka. Integracja wymaga przejścia przez proces onboardingu u dostawcy access control oraz whitelistingu po stronie Apple/Google.

100 white label aplikacji w sklepach - aplikacja Equiem to jedna baza kodu, z której generowanych jest ~100 osobnych aplikacji w Google Play i App Store, każda pod własną marką i kontem klienta. Wszystkie muszą być aktualnie zgodne z wymaganiami platform.

Utrzymanie SpaceOS - dwie natywne aplikacje (Android w Kotlin, iOS w Swift) i ~14 white label buildów muszą pozostać w sklepach i działać poprawnie dla ~2 000–3 000 aktywnych użytkowników.

Support access control - Patryk uczestniczył w rozwiązywaniu zgłoszeń klientów Equiem dotyczących problemów z czytnikami i kartami, identyfikując czy problem leży po stronie aplikacji, SDK dostawcy access control, czy konfiguracji klienta.

Przez rozwiązanie

Dwa projekty, jeden developer

Patryk działał jednocześnie na dwóch frontach - w SpaceOS jako główny utrzymujący aplikacje mobilne, w Equiem jako developer odpowiedzialny za integracje access control i wsparcie zespołu supportowego.

    SpaceOS: utrzymanie do końca cyklu życia

    Główne zadanie w SpaceOS: zapewnić, że aplikacje pozostaną w sklepach i będą działać dla klientów, którzy zdecydowali się zostać na platformie mimo jej planowanego zamknięcia. Wymagało to regularnych aktualizacji do najnowszych wymagań Google Play i App Store - bez nich aplikacje są usuwane automatycznie.

    Gdy aplikacja SpaceOS Merchant zniknęła ze sklepu, Patryk przeprowadził pełną regresję produktu: spisał funkcjonalności, zidentyfikował wymagania techniczne i wykonał migrację z React Native 0.63 do aktualnej wersji (skok o

    23 wersje, zmiana architektury projektu) w pół dnia roboczego, z wykorzystaniem Claude Code. Ręczna estymacja tego samego zadania bez AI: 2–3 miesiące. Całość zajęła 5-6 dni roboczych.

      Equiem: integracje access control

      Implementacja SDK od kolejnych dostawców access control przebiegała według powtarzalnego procesu: analiza dokumentacji → implementacja → testy zdalne z kolegą w Warszawie → deployment testowy → iteracja. Jedna z integracji, z czytnikami Roger (Assa Abloy), była wcześniej przez poprzedni zespół oceniana jako zbyt trudna i niewykonalna. Patryk dostarczył ją w tydzień.

      Dla integracji z walletami Patryk koordynował trójstronny proces między Equiem, klientem i dostawcą access control - pilnując, żeby każda ze stron dopełniła swoich wymagań formalnych i technicznych we właściwej kolejności.

        Metodyka pracy

        Zadania w Equiem były zlecane przez Head of Product Europe. Patryk uczestniczył w bieżącym supportcie (zgłoszenia od użytkowników i zarządców budynków) równolegle do pracy developmentu. Kluczowe w tej pracy było dokumentowanie każdego skonfigurowanego środowiska i procesu wdrożenia - wiedza ta nie istniała wcześniej w żadnej ustrukturyzowanej formie.

          Po sukces

          Efekty technologiczne

          Apple Wallet wdrożony na Canary Wharf

          jeden z flagowych klientów Equiem (kompleks biurowy w londyńskiej dzielnicy finansowej) uzyskał możliwość otwierania drzwi przez Wallet. Pierwsza taka integracja na platformie Equiem.

          6 systemów access control zintegrowanych

          Gallagher, SwiftConnect, SaltoSpace, Roger (Assa Abloy), onUgo, ICT. Każda integracja dostępna przez natywne SDK w aplikacjach Android i iOS.

          SpaceOS Merchant przemigrowany i przywrócony do sklepu

          z React Native 0.63 do aktualnej architektury, w czasie szacowanym wcześniej na 2–3 miesiące pracy ręcznej. Zrealizowane w połowie dnia z Claude Code.

          ~100 white label buildów Equiem i ~14 buildów SpaceOS

          per platforma Android / iOS) utrzymanych w sklepach zgodnie z wymaganiami platform przez cały okres projektu.

          Środowiska testowe dla Apple Wallet i Google Wallet

          odtworzone i udokumentowane - gotowe do użycia przy kolejnych wdrożeniach.

          Korzyści biznesowe

          Klienci Equiem zyskali możliwość oferowania swoim najemcom cyfrowego dostępu do budynku - przez smartfon i zegarek, zamiast fizycznej karty. To bezpośredni wpływ na atrakcyjność oferty zarządców nieruchomości wobec najemców korporacyjnych.

          Canary Wharf Group, jeden z najbardziej rozpoznawalnych klientów Equiem, wdrożył Apple Wallet jako element premium doświadczenia najemców w swoim londyńskim kompleksie.

          Platforma Equiem poszerzyła portfolio integracji access control do 6 dostawców, zwiększając kompatybilność z infrastrukturą istniejącą u klientów w Europie i na świecie

          SpaceOS pozostał operacyjny i dostępny w sklepach przez cały okres projektu - klienci, którzy zdecydowali się nie migrować, nie odczuli przerwy w usłudze.

          Stworzono dokumentację dla zespołu Support, CSM i potomnych programistów, w celu szybszego rozwiązywania problemów i shareowania wiedzy między pracownikami Equiem.

          Pracujac jako fireup.pro z Europy możliwe było wsparcie kleintów / praca nad platformą przez 16h / dobę, ponieważ zespół w australii pracował w strefie czasowej cofniętej o 8-10h


          Zespół projektowy
          Abstract background
          Patryk

          Patryk

          Senior Mobile Developer

          Odpowiedzialny za integracje access control w natywnych aplikacjach Equiem (Kotlin/Swift), wdrożenia Apple Wallet i Google Wallet, utrzymanie aplikacji SpaceOS, migrację SpaceOS Merchant oraz wsparcie zespołu support w diagnozowaniu problemów klientów.

          Tech stack

          Kotlin

          Swift

          React Native

          GraphQL

          Apple Wallet

          Google Wallet

          Claude Code

          Fastlane

          Shipbook

          Gallagher

          Twoja sukces to nasz sukces!

          Zobacz, jak możemy wspólnie zbudować technologiczną przewagę dla Twojej firmy

          Umów się na konsultację!

          Mamy zespół, który naprawdę zna się na rzeczy — pomożemy Ci znaleźć rozwiązanie, które działa.

          Wnioski i rekomendacje

          Claude Code poradził sobie tam, gdzie Cursor i Copilot się zawiesiły.

          Przy migracji SpaceOS Merchant Patryk testował równolegle trzy narzędzia AI: Cursor, GitHub Copilot i Claude Code - na tym samym modelu. Cursor i Copilot zamrażały się przy złożonym problemie mobilnym. Claude Code przeprowadził analizę, stworzył nowy template architektury, przeniósł odpowiednie pliki i uruchomił aplikację na symulatorach. Dla projektów mobilnych w legacy kodzie różnica okazała się nieporównywalna.

          Integracje sprzętowe można testować bez sprzętu, ale wymaga to organizacji.

          Brak fizycznego dostępu do czytników access control to realne ograniczenie, które trzeba zaadresować już na etapie planowania. Zdalny tester z urządzeniem, dobra komunikacja i iteracyjne builde to sprawdzony obejście, ale zakłada zasoby ludzkie po obu stronach.

          "Niemożliwe" integracje warto weryfikować empirycznie.

          Integracja z czytnikami Roger została przez poprzedni zespół odłożona jako zbyt skomplikowana. W praktyce z dokumentacją SDK i podejściem testowym wersja happy path zajęła tydzień. Ocena trudności technicznej bez próby implementacji bywa myląca.

          Dokumentowanie procesów jest kluczowe w projektach z dużą rotacją.

          Wiedza o konfiguracji środowisk Wallet i procesach wdrożeń nie istniała w żadnej ustrukturyzowanej formie po odejściu poprzednich developerów. Każdy nowy developer musiałby zaczynać od zera. Systematyczne dokumentowanie to inwestycja, która chroni ciągłość projektu niezależnie od zmian kadrowych.

          Background

          Czas na Twój projekt!

          Przekształć idee w rzeczywiste rozwiązanie i skontaktuj się z nami.

          Twoja wizja, nasza realizacja
          Napisz, omówimy szczegóły.

          Wyrażam zgodę na przetwarzanie moich danych osobowych przez Fire ...