Przemysław Zalewski

Osiem platform, jedna baza kodu

Programista aplikacji mobilnych: iOS, Android i desktop z jednej bazy kodu

Potrzebujesz aplikacji w sklepach bez zatrudniania trzech zespołów i utrzymywania trzech baz kodu. Jako founding engineer Sandtime.io wydałem osiem platform z jednej bazy kodu dla 4000+ użytkowników, z 270+ wydaniami w ciągu dziesięciu miesięcy 2026 roku, a Patriot Mail przeprowadziłem przez CASA Tier 2 do App Store na iOS i macOS. Wcześniej: 25+ aplikacji, 3,7 mln+ pobrań.

Rozmowy w tym tygodniu · start pracy 3 listopada 2026 · Wrocław, zdalnie

Przemysław Zalewski
8platform Sandtime.io, gdzie byłem founding engineerem
4sklepy, do których wydaję aplikacje od kodu po review: iOS, Android, macOS i Windows, plus web
25+wydanych aplikacji, 3,7 mln+ pobrań (2009 do 2017)
15+lat tworzenia oprogramowania

Brzmi znajomo?

Problemy z aplikacjami mobilnymi, które rozwiązuję w 2026

Google Play: aplikacja nie obsługuje stron pamięci 16 KB. Co teraz?

Od 1 lutego 2027 Google Play nie przyjmie aktualizacji aplikacji celujących w Androida 15 lub nowszego, jeśli nie obsługują stron pamięci 16 KB na urządzeniach 64‑bitowych (Android developers). Wystarczy jedna stara biblioteka natywna w apce React Native, żeby wydania stanęły.

Znajduję każdy plik .so bez wyrównania do 16 KB, aktualizuję albo wymieniam zależność, z której pochodzi, falami, które da się cofnąć, i sprawdzam build na emulatorze z obrazem 16 KB, zanim trafi do Play. Typową apkę często kończę w jeden wieczór. W sierpniu 2026 aplikacja na Androida, przy której pracowałem, miała wypaść z wyszukiwania Google Play przez przestarzałe docelowe API; rozpisałem aktualizację, zgrałem testy na urządzeniach i nowy build był w sklepie przed terminem.

App Store odrzucił naszą aktualizację. Co teraz?

Według raportu przejrzystości App Store za 2025 Apple odrzucił 2,09 mln z 9,1 mln zgłoszeń, a 387 087 zatwierdził dopiero po ponownym zgłoszeniu albo odwołaniu. Każda runda to dni, w których użytkownicy czekają na poprawkę.

Czytam odrzucenie obok wytycznej, na którą się powołuje, poprawiam to, co zasadne, a z resztą dyskutuję, z notatkami dla recenzenta, które da się sprawdzić w minutę. W październiku 2026 wydanie na macOS, które prowadziłem, odrzucono z dwóch powodów: jeden był pozostałością konfiguracji w sklepie, z drugim dyskutowaliśmy, powołując się na RFC 8252 i blokadę logowania Google we wbudowanych webview, i wydanie przeszło.

App Center Analytics się kończy, czym go zastąpić?

Microsoft wyłączył App Center 31 marca 2025, a Analytics i Diagnostics utrzymuje tylko do końca marca 2027 (Microsoft Learn). Potem znikną raporty awarii i statystyki użycia, które zespół sprawdza przy każdym wydaniu.

Przenoszę zdarzenia i raporty awarii do narzędzia, które należy do Ciebie, zwykle do PostHoga, i przez jedno wydanie trzymam oba równolegle, żebyś mógł porównać liczby, zanim App Center zgaśnie. W październiku 2026 sprawiłem, że aplikacja mobilna zapisuje w śledzeniu błędów każde nieudane ładowanie z wersją aplikacji i przeładowuje widok zamknięty przez system, a wcześniej użytkownik widział ekran ponowienia albo pusty widok i nic nie trafiało do raportów.

Masz jeden z tych problemów? Umów bezpłatne 30 minut →

Dlaczego ja

Najpierw web, natywnie tam, gdzie się opłaca

Jedna baza kodu, jeden cykl wydań. Moduły natywne tylko tam, gdzie web nie da rady: zasobnik systemowy, synchronizacja w tle, subskrypcje w sklepach.

Przeglądy sklepów i bezpieczeństwa zaliczone

CASA Tier 2 od Google dla dostępu do Gmaila i przegląd OAuth Yahoo: zaliczone. Subskrypcje w Mac App Store: wydane. Trzymam checklisty, więc przegląd to zaplanowany krok, nie niespodzianka.

Dostępne też na telefonie

W Patriot Mail: WCAG 2.2 AA pilnowane automatyczną bramką axe, skalowanie tekstu do 200% i tryb spokojnej poczty dla starszych osób, sprawdzane przy każdym wydaniu.

Mierzone na każdej platformie

Te same zdarzenia PostHog w przeglądarce, na desktopie i na telefonach, więc dashboard odpowiada „która platforma konwertuje” zamiast „chyba iOS”.

Pokaz na żywo

Twoje urządzenie, sprawdzone na żywo

Twoja przeglądarka pokazuje, co umie w tej chwili. Tabela porównuje to z webem, PWA, Electronem, React Native i aplikacjami natywnymi. Nic nie opuszcza Twojego urządzenia.

Ładuję pokaz…

Otwórz tę stronę na innym urządzeniu i porównaj. Przycisk instalacji pojawia się, gdy przeglądarka na to pozwala.

Dowody

Praca, którą mogę pokazać

Problem, co zrobiłem, efekt. Nazwy klientów tylko tam, gdzie wolno mi ich użyć.

Sandtime.io, budowany w Sanddev: founding engineer, osiem platform, jedna baza kodu

Problem
SaaS do śledzenia czasu musiał żyć tam, gdzie ludzie pracują: w trayu, przeglądarce, telefonie i sklepach z aplikacjami.
Co zrobiłem
Napisałem pierwotną wizję produktu i architekturę w 2018 i zrobiłem pierwszy commit. Wrappery React Native na iOS i Android, Electron na macOS, Windows i Linux, rozszerzenie Chrome, routing multi-tenant, SSO, usługi w Dockerze, subskrypcje Paddle i Mac App Store, CI/CD.
Efekt
Osiem platform wydanych i utrzymywanych na produkcji. Jedyny inżynier aktywny w każdym roku produktu, 8000+ commitów i blisko połowa wszystkich merge’ów do głównej gałęzi. W samym 2026: 270+ wydań w dziesięć miesięcy, około 99% supportu odpowiedzianego przeze mnie i program zgłaszania podatności z publiczną Hall of Fame.

8 platform 8000+ commitów od 2018 Otwórz ↗

Dwa wydania w sklepach odblokowane w 2026

Problem
W sierpniu 2026 aplikacja na Androida miała zniknąć z wyszukiwania Google Play na nowszych urządzeniach przez przestarzałe docelowe API, a do terminu został około tydzień. W październiku 2026 App Store odrzucił wydanie na macOS z dwóch powodów.
Co zrobiłem
Dla Androida rozpisałem dokładną ścieżkę aktualizacji i zgrałem testy na urządzeniach. Dla Apple ustaliłem, że jedno zastrzeżenie dotyczyło pozostałości konfiguracji w sklepie, którą trzeba pominąć w zgłoszeniu, a drugie podważyłem z argumentami: Google blokuje logowanie we wbudowanym webview, a RFC 8252 zaleca przeglądarkę systemową. Napisałem notatki dla recenzenta, odpowiedź i listę kontrolną ponownego zgłoszenia.
Efekt
Build na Androida był w sklepie przed terminem, a wydanie na macOS przeszło review.

przed terminem review zaliczone RFC 8252

Omio: reklamy i usługi dodatkowe na webie, w aplikacjach React Native i mailu

Problem
Reklamy musiały wychodzić spójnie na webie, w aplikacjach natywnych i mailu, w organizacji opartej na danych i OKR‑ach.
Co zrobiłem
Prowadziłem funkcje od początku do końca: projekt, implementacja w wielu repozytoriach i platformach, testy A/B i monitoring. Znalezione po drodze open redirecty zgłosiłem.
Efekt
Funkcje wydane od początku do końca na webie, w React Native, na Androidzie i iOS, z testami A/B i monitoringiem.

testy A/B React Native OKR

Zobacz też: React

Masz podobny problem? Umów bezpłatną rozmowę →

Media

Media pisały o mnie

Prawdziwe linki, od aplikacji na Windows Phone w 2012 po grę z 2020. W sieci jestem Ciunkos. Część portali już nie działa, wtedy link prowadzi do kopii w archiwum.

Więcej wzmianek (5)

Jedna noga w drzwiach

Nie czas na projekt? Zacznij od tygodnia albo jednego PR‑a.

Dwa sposoby, żeby zobaczyć, jak pracuję, zanim zamówisz sprint. Stały zakres, widełki ceny poniżej, ostateczna kwota na piśmie w ciągu 24 godzin od rozmowy.

Tygodniowy audyt kodu aplikacji mobilnych i desktopowych

Ręcznie czytam repo, CI, testy, wdrożenia i miejsca, których zespół unika. Dostajesz pisemny raport: ryzyka uszeregowane po koszcie, co naprawić najpierw, plan z kamieniami milowymi i decyzję go/no‑go, którą da się obronić. Raport zostaje u Ciebie bez względu na to, czy pracujemy dalej.

4 500⁠–⁠8 800 zł netto · 30⁠–⁠40 h · Zobacz cenę i termin →

Code review jednego pull requesta albo modułu

Przyślij diff, który Cię martwi. W kilka dni dostajesz komentarze do linii, trzy rzeczy, które zmieniłbym najpierw, i werdykt: zmergowałbym czy nie. W jednym produkcie przejrzałem od 2018 roku ponad 800 pull requestów.

300⁠–⁠880 zł netto · 2⁠–⁠4 h · Zobacz cenę i termin →

Umów rozmowę i wybierz Najpierw bezpłatna rozmowa 30 min. Jeśli żadne nie pasuje, powiem to na rozmowie.

Jak to działa

Trzy kroki od tej strony do działającego projektu.

  1. 1

    Rozmowa 30 minut

    Opisujesz produkt i problem. Ja zadaję pytania, które zadałbym pierwszego dnia.

  2. 2

    Zakres na piśmie

    W ciągu 24 godzin po rozmowie dostajesz krótki plan na piśmie: co budujemy najpierw, co mierzymy, jak pracujemy i ile to kosztuje. Bez prezentacji.

  3. 3

    Działający kawałek w pierwszym tygodniu

    Wdrożony, zmierzony i gotowy do przejrzenia. Dalej tempo wyznaczają liczby.

Dopasowanie

Czy to pasuje?

Dobre dopasowanie, gdy

  • Potrzebujesz seniora, który bierze odpowiedzialność za dowiezienie, nie pary rąk
  • Produkt ma wyjść i być mierzony, z product managerem albo bez
  • Współpraca solo albo jeden zespół do czterech osób, który prowadzę bezpośrednio
  • TypeScript, React, Node.js, Cloudflare, Postgres, PostHog, a Python, gdy praca tego wymaga

Raczej nie, gdy

  • Projekt na dziesięcioosobowy zespół dostawcy
  • Stack zbudowany wokół Javy albo chmury, w której nie pracuję
  • Body leasing na godziny bez wpływu na sposób pracy

Styl pracy

Jak pracuję

Zero zaległych bugów

Błąd jest naprawiony albo świadomie zamknięty, nigdy odłożony. Alerty i śledzenie błędów w każdym projekcie, więc o problemach dowiaduję się przed klientem.

Review jako rzemiosło

800+ przejrzanych pull requestów w jednym produkcie od 2018 roku. Patrzę na produkt i jego powody. Kod jest drugi.

Mierzone, nie zakładane

PostHog w każdym projekcie od pierwszego dnia. Plan zdarzeń dla każdej funkcji i dashboardy, z których zarząd bierze liczby, zamiast o nie pytać.

Warto wiedzieć

Zasady sklepów, które opóźniają premierę apki

12 testerów przez 14 dni w Google Play

Osobiste konta deweloperskie Play założone po 13 listopada 2023 muszą przejść test zamknięty z co najmniej 12 testerami przez 14 dni z rzędu, zanim dostaną dostęp do produkcji (pomoc Play Console).

Android 16 albo brak aktualizacji

Od 31 sierpnia 2026 nowe apki i aktualizacje muszą celować w API 36, z przedłużeniem do 1 listopada 2026 (Android developers).

Bez Xcode 26 nie wyślesz builda

Od 28 kwietnia 2026 buildy do App Store muszą być zbudowane w Xcode 26 z SDK 26. Stary obraz CI oznacza brak wysyłki (Apple developer news).

React Native 0.82 bez starej architektury

Od 0.82 newArchEnabled=false jest ignorowane i każda apka działa na New Architecture. Każdy moduł natywny musi ją obsługiwać przed aktualizacją (React Native 0.82).

Wersja Electrona żyje około pół roku

Poprawki dostają tylko trzy najnowsze stabilne wersje Electrona, a nowa wychodzi co 8 tygodni (harmonogram Electrona). Buildy do Mac App Store działają w piaskownicy bez autoUpdater (przewodnik MAS).

15 procent u Apple wymaga zapisu

Stawka Small Business Program nie włącza się sama: trzeba się zapisać, mając do 1 mln USD przychodu w poprzednim roku (Apple). Apka z rejestracją musi też dawać usunięcie konta w aplikacji (wytyczne App Review).

FAQ

Pytania, które padają przed umówieniem rozmowy

React Native czy natywnie w Swift i Kotlinie?
React Native, gdy zespół jest webowy, a aplikacja to głównie ekrany i dane. Natywnie, gdy produktem jest sprzęt: pipeline kamery, audio, ciężka praca w tle. Wydałem React Native do obu sklepów i wiem, gdzie boli. Webowa strona tej historii jest na stronie o Reakcie.
Czy Electron to wciąż dobry pomysł?
Dla aplikacji desktopowych, które potrzebują traya, okna i systemu plików, tak. Na nim wydałem Sandtime.io na macOS, Windows i Linux z jednej bazy kodu. Rozmiar to koszt, tempo to zysk. Czysto webową drogę opisuje strona o JavaScripcie.
Jak bardzo boli przegląd w App Store?
Raz boli, potem jest checklista. Prywatność, logowanie na równi z innymi metodami, subskrypcje, zrzuty ekranu, notatki dla recenzenta. Z tą listą Patriot Mail przeszedł review w App Store na iOS i macOS.
Rozszerzenie Chrome?
Wydałem jedno dla trackera czasu. Manifest V3, service worker, to samo logowanie co w aplikacji webowej, wpis w Web Store włącznie. Ta sama baza kodu działa jako SaaS na webie.
Nowa aplikacja czy przejęcie?
Jedno i drugie. Przejęcie zaczyna się od builda, który przechodzi na mojej maszynie, audytu podpisywania i wydania do TestFlight w pierwszym tygodniu.
Jesteś jedną osobą. Co, jeśli zachorujesz albo odejdziesz?
Nowe wersje wychodzą dalej beze mnie. Kod jest w Twoim repozytorium od pierwszego dnia, konta deweloperskie i klucze do podpisywania zostają na Twoją firmę, a wydania idą z CI według spisanego runbooka, więc build nigdy nie zależy od mojego laptopa. W Sandtime.io byłem jedynym inżynierem aktywnym w każdym roku życia produktu, dlatego wszystko spisuję. Więcej w centrum zaufania.
Czy AI napisze moją aplikację?
Agenci piszą dużą część pierwszej wersji, a ja odpowiadam za każdą linię, która trafia do main. W 2026 roku około dwóch trzecich zmergowanych pull requestów w dwóch produktach, przy których pracuję, powstało z agentami, prawie wszystkie przeszły przez moje review albo merge, a cudzych pull requestów przejrzałem 300+. Jeśli Twoje zasady wykluczają AI, piszę ręcznie, a wycena odzwierciedla godziny.
Ile to kosztuje i od kiedy możesz zacząć?
Od 3 listopada 2026. Nowa aplikacja zaczyna się od pierwszego wydanego wycinka: trzy tygodnie w pełnym wymiarze, 15 300⁠–⁠30 360 zł netto za 102⁠–⁠138 h, wycenione przed startem. Przejęcie może zacząć się od tygodniowego audytu kodu powyżej. Stawki są w cenniku, a konfigurator współpracy pokaże godziny i widełki ceny dla Twojej aplikacji. Potem umów rozmowę i przynieś dostęp do kont w sklepach.
Ile trwa publikacja nowej apki w Google Play?
Nowe konto osobiste najpierw potrzebuje 14 dni testu zamkniętego z 12 testerami (pomoc Play Console), a apka musi celować w API 36 (Android developers). Licz około trzech tygodni przed przeglądem produkcyjnym.
Czy strona w WebView przejdzie do App Store?
Tylko jeśli daje więcej niż przepakowana strona, zgodnie z wytyczną 4.2 (wytyczne App Review). Weryfikacja deweloperów Androida obowiązuje od 30 września 2026 w Brazylii, Indonezji, Singapurze i Tajlandii, a w 2027 obejmie cały świat (Android developers).
Google Play: aplikacja nie obsługuje stron pamięci 16 KB. Co teraz?
Od 1 lutego 2027 Google Play nie przyjmie aktualizacji aplikacji celujących w Androida 15 lub nowszego, jeśli nie obsługują stron pamięci 16 KB na urządzeniach 64‑bitowych (Android developers). Wystarczy jedna stara biblioteka natywna w apce React Native, żeby wydania stanęły. Znajduję każdy plik .so bez wyrównania do 16 KB, aktualizuję albo wymieniam zależność, z której pochodzi, falami, które da się cofnąć, i sprawdzam build na emulatorze z obrazem 16 KB, zanim trafi do Play. Typową apkę często kończę w jeden wieczór. W sierpniu 2026 aplikacja na Androida, przy której pracowałem, miała wypaść z wyszukiwania Google Play przez przestarzałe docelowe API; rozpisałem aktualizację, zgrałem testy na urządzeniach i nowy build był w sklepie przed terminem.

Bonus · #suchar

Suchar na deser

Gratis, jak pierwsza rozmowa. To samo poczucie humoru dostajesz w pakiecie z projektem.

Dlaczego telefon poszedł do okulisty?Puenta

Bo zgubił kontakty. Ba‑dum‑tss.

Jak smartfon żegna się z ładowarką?Puenta

„Do zobaczenia przy 1%”. Ba‑dum‑tss.

Dlaczego aplikacja mobilna jest cierpliwa?Puenta

Bo przeszła review w App Store. Ba‑dum‑tss.

W 30 minut sprawdzisz, czy do siebie pasujemy

Ty przynosisz problem, ja pytania. Chcesz najpierw liczbę? Konfigurator pokaże godziny, widełki ceny i termin startu.

albo napisz na ciunkos@gmail.com

Po umówieniu dostajesz zaproszenie do kalendarza. Nic więcej do wypełniania.

Moja obietnica

  • Odpowiedź w 24 godziny. Odpowiadam w ciągu 24 godzin w dni robocze. Osobiście, nie bot. Wiadomości z weekendu: do poniedziałku, do 12:00.
  • Spóźnienie znaczy gratis. Jeśli się spóźnię, pierwsza godzina pracy jest za darmo. Nie musisz o to prosić.
  • Zakres na piśmie w 24 godziny. Bezpłatna rozmowa 30 minut bez prezentacji firmy, potem zakres i cena na piśmie w ciągu 24 godzin. Ty decydujesz.
  • Osoba, która wykona pracę. Rozmawiasz z osobą, która wykona pracę. Bez warstwy sprzedaży, bez przekazywania dalej.
  • Odzywam się tylko z czymś nowym. Odzywam się tylko wtedy, gdy mam dla Ciebie coś nowego. Nigdy „czy jest już decyzja?”.
  • Uczciwe „to nie dla mnie”. Jeśli nie jestem właściwą osobą, mówię to na rozmowie i wskazuję kogoś, kto jest.

Rozmowy w tym tygodniu · start pracy 3 listopada 2026 · Kontrakt B2B · Wrocław, zdalnie

Kod, domena i konta są Twoje od pierwszego dnia. Nic nie trzymam jako zakładnika.