Wchodzimy na giełdę: dwa sklepy, dwie odmowy, zero luzu

Dziennik premiery · 29 września 2026 · 20 min czytania

English Deutsch Español Français Português 中文 Italiano 日本語 한국어 Русский Türkçe Nederlands Bahasa Indonesia

Moneyflow jest teraz w App Store i w Google Play. Chcielibyśmy powiedzieć, że poszło gładko. Nie poszło. Po drodze zebraliśmy dwie odmowy od Apple, nauczyliśmy skrypt budujący mówić „nie”, odkryliśmy, że Lambo przez cały czas było flagą w szachownicę, i naprawiliśmy błąd, który Google zbył wzruszeniem ramion, a Apple nie.

To cała historia, poskładana z naszych informacji o wydaniu, instrukcji operacyjnych i komunikatów commitów, które pisaliśmy w pośpiechu. Jest długa, trochę bezczelna, a jeśli szykujesz premierę własnej aplikacji, zawiera prawdziwe rady. Weź kawę albo małą pożyczkę pod zastaw swoich aktywów.

Pobierz z App Store Pobierz z Google Play

Krótka wersja, w datach

  1. Wersja 1.2.8 trafia do Google Play. Ogłoszenie ukazuje się tego wieczoru, w sześciu językach.
  2. iOS dogania Androida w wersji 1.2.8, po tym jak ratujemy ekran startowy, którego nikt nie mógł odczytać.
  3. Pierwsze zgłoszenie trafia do Apple bez zakupów w aplikacji. Drugie idzie ze wszystkimi 39. Pierwsza odpowiedź Apple: Information Needed.
  4. Wiosenne porządki ze znakami towarowymi i build 31, który przywraca do aplikacji brakujący klucz.
  5. Odmowa druga, z iPada: oba przyciski logowania pokazują błąd, a recenzent nie może znaleźć Sklepu.
  6. Winowajcą jest jeden brakujący parametr. Android przez cały czas po cichu mu wybaczał.
  7. Build 34, podpisany jak należy. Zaloguj się przez Apple wreszcie działa.
  8. Wersja 1.2.9 trafia do Google Play.
  9. Gracze mówią nam, że ich telefony się grzeją. Sprawiamy, że gra przestaje to robić.
  10. Pięć wersji w jeden weekend, od 1.2.10 do 1.3.1.
  11. Link do App Store ląduje na naszej stronie głównej. Jesteś tutaj.

Przed IPO: gra przeglądarkowa z problemami z zaangażowaniem

Moneyflow zaczął życie jako gra przeglądarkowa. Wybierasz postać z prawdziwą pracą, prawdziwymi rachunkami i prawdziwą pensją, rzucasz kośćmi i próbujesz zbudować dość dochodu pasywnego, żeby uciec z etatu od dziewiątej do piątej i zapłacić za dwa marzenia. Jedno i drugie to jedyny sposób na wygraną, zarówno w grze jednoosobowej, jak i wieloosobowej. Jest też ślub, intercyza i rozwód, do których jeszcze dojdziemy.

Potem uznaliśmy, że jej miejsce jest na twoim telefonie, i odkryliśmy, że sklep z aplikacjami to zupełnie inna gra. Bez kości, bez kart, same formularze, kwestionariusze i kasyno, które zawsze wygrywa. Papierologię w Google Play opisaliśmy wcześniej, w tekście Wystawiamy Moneyflow w sklepie Google Play. To sequel: co wydarzyło się potem, w obu sklepach, i co powiedzielibyśmy sobie, gdybyśmy mogli się cofnąć.

Runda pierwsza: Google Play mówi tak (po tym, jak poprosi o wszystko)

Google Play poszło pierwsze i zachowywało się jak bank, gdy wnioskujesz o hipotekę: przyjaźnie, dokładnie i z zapałem, by zobaczyć każdy dokument, jaki posiadasz. Formularz bezpieczeństwa danych, klasyfikacja treści, strona usuwania konta, okres testów zamkniętych. Wcześniejszy tekst opisuje to wszystko, więc oto, co zmieniliśmy po zakończeniu pierwszego wpisu.

Przestaliśmy klikać. Wszystkie 39 zakupów w aplikacji (18 pionków, 14 skórek kości, 4 motywy planszy i 3 pakiety, każdy kosmetyczny) utworzyliśmy skryptem zamiast ręcznie, a RevenueCat siedzi między aplikacją a obydwoma sklepami, żeby logika zakupów była wszędzie taka sama. Wydania też idą przez Android Publisher API. Jeden skrypt otwiera edycję, wgrywa pakiet, przypisuje ścieżkę i zatwierdza, a jeśli któryś krok się nie uda, usuwa edycję, więc nieudane uruchomienie niczego po sobie nie zostawia. To najporządniejsza rzecz w całej tej historii.

Play ma swoje dziwactwa. Odrzuca każdy numer buildu, który kiedykolwiek widziało, także te, które wgrałeś i nigdy nie wydałeś, więc numery buildów zachowują się jak gotówka w grze: wydasz jeden i już go nie ma, niezależnie od tego, czy cokolwiek za niego dostałeś. Mamy też dwa konta usługowe, a tylko jedno z nich może publikować. Drugie potrafi otworzyć edycję, wgrać cały pakiet, przypisać go do ścieżki, a potem na samym ostatnim kroku dostać 403. Cały ten wysiłek i stanowcze „nie”, gdy tort stoi już na stole.

7 września wersja 1.2.8 trafiła do sklepu. Tego wieczoru opublikowaliśmy ogłoszenie w sześciu językach, bo skoro już się publicznie ekscytować, to równie dobrze także po niemiecku, hiszpańsku, francusku, portugalsku i chińsku.

Google Play powiedziało tak. Apple miało inne plany.

Runda druga: Apple robi trudnego

Gdy Android pędził naprzód, iOS nadal stał zaparkowany na wersji 1.2.1 w App Store Connect. 10 września dogonił: wersja 1.2.8, build 30, dziesięć nowych zrzutów ekranu i tekst promocyjny w ośmiu językach. Przedtem była jeszcze drobna sprawa umowy Paid Apps. Apple nie pozwoli ci utworzyć ani jednego zakupu w aplikacji, dopóki jej nie zaakceptujesz i nie podasz danych bankowych i podatkowych. Do tego czasu każda próba zwraca błąd 409, czyli sposób Apple na powiedzenie „jeszcze nie, i nie, dopóki nie zobaczę twoich papierów”.

Potem zautomatyzowaliśmy skryptem wszystkie 39 zakupów przez App Store Connect API. Pierwsze uruchomienie zakończyło się niepowodzeniem na 24 z nich z błędem UNEXPECTED_ERROR. Uruchomiliśmy je ponownie i wszystko przeszło czysto. Instrukcja operacyjna zawiera teraz najbardziej zen zdanie w repozytorium: uruchom ponownie zamiast debugować.

Ekran startowy, którego nie było

Na prawdziwym telefonie nasz ekran startowy był nieczytelny, z dwóch niezależnych powodów. Storyboard wypełniał ekran kwadratową grafiką, więc na wysokim telefonie skalowała się, aż zmieściła się wysokość, i ucinała około 54% szerokości. Logotyp i cała ozdobna ramka wypadały poza krawędź. Co gorsza, wersje dla trybu ciemnego to była sama goła postać na około 5% kremowego płótna, czyli niewidzialne logo na każdym telefonie ustawionym na ciemny motyw.

Przełączyliśmy się na wpasowanie grafiki w ekran na jej własnym kremowym tle, porzuciliśmy warianty ciemne i wstawiliśmy zestaw logo na 88% płótna. Folder z obrazami skurczył się z 55 MB do 9,1 MB. Pierwsze wrażenie nie powinno ważyć 55 MB.

Jak wysłać aplikację, której Sklep nic nie sprzedaje

Oto pułapka z doskonałym kamuflażem. Zakupy w aplikacji to osobne pozycje weryfikacji, a Apple nie zweryfikuje takiej, której nie ma w twoim zgłoszeniu. Gdy wysłaliśmy je pierwszy raz, aplikacja weszła do weryfikacji, a wszystkie 39 produktów zostało w stanie „Ready to Submit”. Gdyby ją zatwierdzono, wydalibyśmy grę o kupowaniu i sprzedawaniu, której Sklep nie mógłby niczego sprzedać. Wycofanie jej kosztowało nas Remove from Review i miejsce w kolejce.

Pułapka polega na tym, że Apple pozwala zacząć szkic zgłoszenia ze strony zakupów w aplikacji, którego nigdy nie da się wysłać. Bez wersji aplikacji każdy produkt nie dodaje się z komunikatem „Unable to Add for Review”, a wysłanie szkicu kończy się komunikatem „add an app version for the selected platform”. Żaden z nich nie mówi ci, że najpierw musi być dodana wersja. Oczywiście próbowaliśmy to naprawić skryptem. API nie ma w ogóle relacji zakupu w aplikacji ze zgłoszeniem. Wypróbowaliśmy trzy zapisy, zanim przyjęliśmy, że te drzwi są tylko w interfejsie, a instrukcja mówi to teraz grzecznie, żeby nikt nie próbował ponownie.

Liczbą, która w końcu nas ucieszyła, było czterdzieści: jedna wersja aplikacji plus trzydzieści dziewięć rzeczy do kupienia dla niej.

Odmowa numer jeden: Apple chce cię lepiej poznać

11 września Apple odpowiedziało. Temat brzmiał: Guideline 2.1, Information Needed. To nie był błąd, awaria ani naruszenie. Apple nie zgłosiło żadnej wady. To był kwestionariusz, który Apple wysyła kontom z krótką historią weryfikacji, a wraz z nim przyszło żądanie nagrania ekranu. Potraktuj to mniej jak odmowę, a bardziej jak sprawdzenie przeszłości.

Lista miała siedem punktów: nagranie ekranu, do czego służy aplikacja i dla kogo, jak się do niej dostać i wypróbować wszystko, z jakich zewnętrznych usług korzysta, czy cokolwiek zmienia się w zależności od regionu, czy podlega regulacjom albo opiera się na cudzych materiałach, i jak działają zakupy. To były rozsądne pytania, tak jak rozsądne są pytania na pierwszej randce. Resolution Center ogranicza odpowiedź do 4000 znaków, a nasza miała 3917, co jest najdłuższą rzeczą, jaką kiedykolwiek powiedzieliśmy komuś, kogo dopiero co poznaliśmy.

Potem nagranie. Apple chciało prawdziwego przebiegu w prawdziwym tempie na prawdziwym telefonie: zimny start, grę jednoosobową, Sklep i jego arkusz zakupu, rejestrację, logowanie, poczekalnię trybu wieloosobowego i znowu usunięcie konta. Cztery minuty nagrania z iPhone'a w 60 klatkach na sekundę ważą około 240 MB, czyli za dużo na załącznik, więc ffmpeg ścisnął je do poniżej 10 MB, z nadal czytelnym interfejsem. Spisaliśmy całą listę ujęć, bo jeśli ten projekt czegoś nas nauczył, to tego, że zapomnimy, jak cokolwiek zrobiliśmy.

Odpowiedzi trafiły w dwa miejsca: do odpowiedzi w Resolution Center i do notatek dla recenzenta we wpisie aplikacji, żeby każde przyszłe zgłoszenie docierało z już udzielonymi odpowiedziami. Recenzenci stosują się do tych notatek dosłownie. Pisz je dla kogoś, kto nigdy nie widział twojej aplikacji, ma czterdzieści sekund do stracenia i trzyma iPada. Wszystkie trzy okażą się prawdą.

Podczas prób wyszła jeszcze jedna rzecz. Usuwanie konta zawiesiło się raz na „Usuwanie...”, a za drugim razem zadziałało. Podejrzewamy, że serwer przysnął, co dla recenzenta wygląda dokładnie jak zepsuty przycisk. Nie pozwól serwerowi zasnąć, kiedy recenzent jest w mieście.

Wiosenne porządki ze znakami towarowymi

Skoro Apple miało naszą uwagę, przeszliśmy przez grę w poszukiwaniu wszystkiego, co brzmiało jak marka. Zasady Apple dotyczące praw do treści kazały nam się przyjrzeć, a to, co znaleźliśmy, nie przypadło nam do gustu. Dwie postacie miały „BMW 3 Series (CPO)” i „Honda Civic”. Te nazwy niczego nie wnosiły do gry, a ściągały sporo kłopotów, więc teraz to „Auto sportowe (certyfikowane używane)” i „Zwykły sedan”. Słowo „monopoly” zniknęło z naszych słów kluczowych w App Store.

Potem było Lambo. Okazało się, że pionek Lambo nigdy nie był samochodem. Przez cały czas był emoji flagi w szachownicę, więc stara nazwa obiecywała supersamochód, a dostarczała flagę wyścigową. Finansowo mówiąc, to po prostu marketing. Teraz nazywa się Flaga w szachownicę. Motyw planszy o nazwie The Tank stał się Basenem z rekinami.

Jedna zasada, której nie złamaliśmy.

Zmieniliśmy wyświetlane nazwy i zostawiliśmy każdy identyfikator produktu dokładnie tam, gdzie był. Pionek w szachownicę nadal jest pawn.lambo pod maską i zawsze będzie. Te identyfikatory działają w obu sklepach, są związane z cenami i wymienione w przydziałach pakietów, a zmiana któregokolwiek odebrałaby przedmiot wszystkim, którzy już go mają. Nazwy to tekst. Identyfikatory to umowy.

Odmowa numer dwa: incydent z iPadem

17 września Apple wróciło i tym razem znalazło prawdziwe problemy. Recenzent używał iPada Air (11 cali, M3) z iPadOS 27, bo aplikacje tylko na iPhone'a działają na iPadzie w trybie zgodności i tam są weryfikowane. Były dwa ustalenia. Guideline 2.1(a): dotknięcie Kontynuuj z Apple lub Kontynuuj z Google pokazywało błąd. Guideline 2.1(b): recenzent nie mógł znaleźć naszych 39 zakupów w aplikacji.

Oba były naszą winą i w pewnym sensie była to ta sama wina.

Błąd

Wtyczka logowania chce obiektu options przy każdym wywołaniu. Na iOS, jeśli go brakuje, wtyczka odrzuca żądanie z komunikatem „Missing provider or options”, zanim jakikolwiek arkusz logowania zdąży się pojawić. Na Androidzie ta sama wtyczka po cichu zakłada pusty i jedzie dalej. Ta sama linijka kodu przeszła więc bez problemu weryfikację w Google Play, a po stronie Apple wywróciła się przy pierwszym dotknięciu, na każdym iPhonie i na każdym iPadzie.

Jeden brakujący parametr. Android wybaczył. iOS nie.

Sklep, którego nikt nie mógł znaleźć

Zakupy były osobnym nieporozumieniem, które idealnie pasowało do pierwszego. Nasze stare notatki dla recenzenta mówiły, że kupowanie wymaga logowania. Logowanie było zepsute. Recenzent nigdy więc nie dotarł do Sklepu, w zamkniętej pętli własnej roboty.

Zrobiło się gorzej, gdy przyjrzeliśmy się bliżej, bo Sklep miał jeszcze trzy sposoby na rozczarowanie. Jeśli lista produktów ładowała się bez pakietów, Sklep traktował to jako „nic na sprzedaż” i chował każdy przedmiot, którego jeszcze nie miałeś. Trzy pakiety (5 pionków, Motywy i Pakiet startowy postaci) były ukryte od czerwca. A gość, który kupił Pakiet 5 pionków, zapłaciłby i nic by nie odblokował, bo nasz serwer rozwijał pakiety na przedmioty tylko dla zalogowanych graczy. Gość to oczywiście dokładnie to, kim jest recenzent. Wzięcie czyichś pieniędzy i wręczenie pustego pudełka to świetna lekcja finansowa. Po prostu nie taką chcieliśmy dać.

Lista poprawek, dla porządku. Przekaż parametr. Spraw, żeby oba arkusze logowania przyczepiały się do aktywnego okna aplikacji na iPadzie, bo wtyczka kotwiczyła się w pierwszym oknie, a na iPadOS nie zawsze jest ono widoczne. Naucz Sklep, że zero załadowanych produktów znaczy „jeszcze nie załadowano”, a nie „pusto”. Przywróć pakiety. Naucz aplikację rozwijać pakiety dla gości. I przepisz notatki dla recenzenta tak, żeby prostymi słowami mówiły, że do kupowania nie potrzeba logowania i oto dokładna ścieżka do Sklepu.

Wynikiem była 1.2.9. Jej informacja o wydaniu otwiera się dwoma zdaniami, które kosztowały nas najwięcej: „Poprawki logowania: Kontynuuj z Google pokazuje wybór konta po celowym dotknięciu, a natywne logowanie nie kończy się już błędem. Sklep zawsze wyświetla swoje przedmioty, nawet zanim załadują się ceny.” Dwa zdania, dziesięć dni naszego życia.

Buildy 32 i 33: te, o których się nie mówi

Można by pomyśleć, że po prostu wydamy poprawkę. Wydaliśmy, dwa razy, i za każdym razem była błędna. W buildach 32 i 33 w TestFlight logowanie przez Google działało, ale Zaloguj się przez Apple, własny przycisk Apple w własnym programie testowym Apple, kończyło się błędem AuthorizationError 1000.

Przyczyna jest oczywista potem i niewidoczna wcześniej. Uprawnienia (entitlements) podróżują w podpisie kodu. Nasz skrypt wysyłający archiwizował aplikację z wyłączonym podpisywaniem i zostawiał podpisywanie krokowi eksportu, który potrafi podpisać aplikację, ale nie potrafi nadać jej uprawnień, których nigdy nie miała. Uprawnienie Zaloguj się przez Apple nigdy nie trafiło do builda. Językiem programistów: aplikacja wyszła z domu bez spodni.

Skrypt wysyłający podpisuje teraz w momencie archiwizacji i odmawia wysłania każdego archiwum, w którego podpisie brakuje uprawnienia. Zbudowaliśmy bramkarza. Sprawdza dokumenty. Buildy 32 i 33 są martwe, a build 34, ten porządnie ubrany, to build, który odesłaliśmy do Apple.

Wtedy Apple powiedziało tak.

Gorący towar

Do 24 września gracze powiedzieli nam, że ich telefony się grzeją. iPhone'y 15, iPhone'y 16 Pro Max, a wersja w przeglądarce też trochę ciepła. Chcielibyśmy powiedzieć, że to surowy seksapil procentu składanego. To był licznik.

Gra tykała licznikiem raz na sekundę, w każdym trybie, a każde tyknięcie przerysowywało całą grę: planszę, każde pole, każdy panel. W nieskończoność. Tymczasem animowane pionki przemalowywały się do 120 razy na sekundę na telefonach z szybkimi wyświetlaczami, żeby narysować animację w 30 klatkach na sekundę. Rozmycie na cały ekran za każdą kartą było przeliczane w każdej klatce, bo pionek cały czas poruszał się pod spodem. A poświaty, dzięki którym plansza wyglądała na żywą, animowały cienie, co wymusza przerysowanie w każdej klatce.

Naprawiliśmy wszystkie cztery. Licznik stał się pojedynczym limitem czasu. Pionki rysują tylko całe klatki i zatrzymują się, gdy są poza ekranem, przy ograniczonym ruchu albo zasłonięte kartą. Poświaty i pierścienie animują przezroczystość i położenie zamiast cieni, a pulsują trzy razy i odpoczywają. Praca bezczynna na planszy spadła z 624 ms do 15 ms w ciągu dziesięciu sekund testów bez interfejsu. Przy otwartej karcie i pionku smoka na planszy spadła z 1188 ms do 11 ms. Nasze animacje wykazują teraz więcej samoopanowania niż my gdziekolwiek indziej w tym projekcie.

Wyszło jako 1.2.10, z nagłówkiem „Chłodniejsze telefony”, razem z uczciwszą regułą zwolnień. Gdy cię zwalniają, zatrzymuje się tylko pensja. Dochód pasywny nadal płaci, a rachunki nadal trzeba zapłacić. Zwolnienie ma boleć. Nie ma kasować twojej fuchy.

Księga: każda informacja o wydaniu, czytana jedna po drugiej

Informacje o wydaniach trzymamy w jednym pliku, tym samym, który zasila oba sklepy. Czytane po kolei tworzą dziwny rodzaj dziennika, więc oto on z dodanym podtekstem. Daty to daty commitów. Plik przeskakuje z 1.0.1 prosto do 1.2.6, więc cokolwiek wydarzyło się pomiędzy, wydarzyło się bez dziennika. Każdy numer wersji poniżej prowadzi do własnego wpisu.

1.0.0

Pierwsze wydanie Moneyflow. Zbuduj swoje finansowe imperium na nieruchomościach, akcjach i biznesach. Uciekaj z etatu od dziewiątej do piątej, wjedź na Szybki Tor i goń swoje marzenia.

Szczere, krótkie i lekko przerażone. Zobacz, jak mała była.

1.0.1

Google Play Zakupy w sieci są już dostępne na playmoneyflow.com. Poprawki stabilności i wygody obsługi w całej grze.

App Store Poprawki stabilności i wydajności. Różne poprawki błędów w panelu sprawozdania finansowego i animacjach kości.

Ta sama wersja, dwa zestawy informacji. Sklepy mają różne pomysły na to, co wolno ludziom mówić, więc trzymamy po jednym zestawie dla każdego i staramy się ich nie pomylić.

1.2.6

Podatki wchodzą do gry: podatek dochodowy od pensji, 15% od dochodu pasywnego, 15% podatku od zysków kapitałowych przy zyskownej sprzedaży. Postaci zarabiają teraz prawdziwe amerykańskie pensje z 2025 roku. Czynsze i zwroty z biznesów podążają za gospodarką — skromne w krachu, hojne w boomie.

Skarbówka przybywa. Nikt o to nie prosił, a wszyscy tego potrzebowali. Każdy zwrot w grze jest teraz oceniany po podatku, bo tylko taki zwrot się liczy.

1.2.7

Negocjuj transakcje, oferty i wyceny pożyczek: jeden rzut monetą 50/50, o 20% lepiej albo o 20% gorzej. Wybierz, którą nieruchomość sprzedać w wojnie ofert i które aktywa idą przy rozwodzie — albo podpisz Intercyzę.

Targowanie w swojej niewinnej pierwszej formie. A także pierwsze pojawienie się Intercyzy, co mówi wiele o tym, co chodziło nam po głowie.

1.2.8 7 wrz

Targuj się dwa razy: negocjuj, a potem negocjuj ponownie — ale druga strona może odejść (10%, potem 15%). Karty pasują teraz do twojej sytuacji: żadnego rozwodu przed ślubem, żadnej sprzedaży akcji bez akcji. Rozwód dzieli twój majątek netto, a była połówka może przejąć twoje pożyczki.

Ta romantyczna. Zapytasz dwa razy, a robią się drażliwi. Do tej wersji talia mogła ci rozdać rozwód, zanim się ożeniłeś, co jest bardziej chaotyczne niż kaplica w Vegas. To także wersja, która zaprowadziła nas pod drzwi Apple.

1.2.9 22 wrz

Poprawki logowania: Kontynuuj z Google pokazuje wybór konta po celowym dotknięciu, a natywne logowanie nie kończy się już błędem. Sklep zawsze wyświetla swoje przedmioty, nawet zanim załadują się ceny.

Napisana pod przymusem, przez dwie odmowy i jeden brakujący parametr.

1.2.10 26 wrz

Chłodniejsze telefony: gra nie męczy już urządzenia podczas gry. Animacje w czasie bezczynności pulsują kilka razy, a potem odpoczywają, a plansza nie przerysowuje się co sekundę. Zwolnienia są uczciwsze: zatrzymuje się tylko pensja, dochód pasywny nadal płaci, a wydatki nadal trzeba zapłacić przy pominiętych wypłatach.

Ta, w której przestaliśmy dawać twojemu telefonowi gorączkę.

1.2.11 26 wrz

Nowość w menu Kup: mieszkanie w mieście, pralnia chemiczna i motel przy trasie. … Każda karta ma własną ilustrację, a twoje wybory są tuż pod kartą. Zaproś znajomych do prywatnego pokoju w trybie wieloosobowym.

Najbardziej zatłoczone wydanie i jedno z najkrócej żyjących, bo 1.2.12 pojawiła się tego samego wieczoru. Prywatne pokoje to nagłówek dla każdego, kto ma znajomych: gospodarz, od dwóch do czterech miejsc i sześcioznakowy kod.

1.2.12 26 wrz

Brakuje gotówki? Teraz sam wybierasz, jak ją uzupełnić, i widzisz, jak blisko jesteś bankructwa: pożyczki awaryjne z rzędu, pozostały limit pożyczania i wypłaty do końca. Pożyczki awaryjne kosztują teraz mniej niż karta kredytowa.

Bankructwo przychodzi teraz z odliczaniem, co jest najprzyjaźniejszym znanym nam sposobem uczenia strachu. Pożyczki awaryjne kosztują teraz mniej niż karta kredytowa, co jest więcej, niż zrobi dla ciebie prawdziwe życie. Naprawiono też: kości same się rzucały po zamknięciu karty, co było albo błędem, albo naszą najbardziej pasywno-agresywną funkcją.

1.3.0 27 wrz

24 nowe karty, od przydrożnego motelu i firmy SaaS po Big Short, a do tego rzadkość: pojawiają się teraz karty niepospolite i rzadkie. Ukryj kartę, żeby spojrzeć na planszę, a potem dotknij Wróć do karty. Zwolnień i nagłych wydatków nie da się już odrzucić.

Dwadzieścia cztery nowe karty, system rzadkości i, po cichu, najważniejsza zmiana miesiąca: karty przychodzą teraz z serwera. Więcej o tym niżej.

1.3.1 27 wrz

Pożyczaj pod zastaw swoich aktywów: każda nieruchomość, biznes lub pakiet akcji bez pożyczki może teraz zabezpieczać tańszą pożyczkę tylko-odsetkową po stopie rynkowej plus 0,5%.

Znowu dźwignia. To gra finansowa i nic na to nie poradzimy. Pojawiła się po 1.3.0 później tego samego dnia.

1.4.0 1 paź

Nowe boty Pro planują każdy ruch i czytają gospodarkę, a każdy bot może teraz kupować marzenia, wygrywać i zadłużać się pod zastaw swoich aktywów. Gospodarka ma teraz większe znaczenie: stopy procentowe podążają za cyklem boom-krach, w recesji twoje podatki spadają, a czynsze z twoich aktywów rosną w boomie i spadają w recesji.

Ta, w której boty nauczyły się wygrywać. Do tej pory żaden nie potrafił, bo żaden nigdy nie kupił marzenia. Pojawiły się boty Pro, gospodarka zaczęła poruszać stopami, podatkami i czynszami zgodnie ze swoim nastrojem, a aplikacja nauczyła się ośmiu kolejnych języków.

1.4.1 1 paź

… Kredyty hipoteczne spłacasz teraz przez 25 lat, firmowe przez 15, a samochodowe przez 6; w kredytach bankowych płacisz same odsetki, a pożyczać możesz, dopóki raty nie sięgną 67% dochodu. …

Hipoteki wreszcie mają datę końca. Praca nad pożyczkami wylądowała po tym, jak 1.4.0 została już zamknięta, więc wyszła jako 1.4.1 tego samego wieczoru, razem z kartą wiadomości na ekranie głównym.

1.4.2 1 paź

Jeden błąd, naprawiony mniej niż dwadzieścia minut po 1.4.1: przycisk Kredyt pomostowy oferuje teraz kwotę, którą bank naprawdę zatwierdzi. Nie ma własnych informacji w sklepie.

Weekend pięciu wersji.

Sobota, 26 września

Niedziela, 27 września

Czasy commitów, czas sofijski. Nie każda wersja trafiła do każdego sklepu jako ona sama: w Google Play 1.2.12 poszła na produkcję zamiast 1.2.11, a na iOS została zgłoszona w jej miejsce. W ciągu tego samego weekendu talia zyskała 130 ilustracji, narysowanych w kodzie.

Najlepsza aktualizacja to taka, której nikt nie musi zatwierdzać

Pod koniec tamtego weekendu nauczyliśmy się czegoś użytecznego. Najwolniejszą częścią wydawania aktualizacji nie jest jej zbudowanie. To czekanie, aż sklep na nią spojrzy. Dlatego 1.3.0 zrobiła coś trochę innego: nauczyła aplikację przyjmować dostawy.

Nowe karty przychodzą teraz z naszych serwerów, więc większość nowych treści nie wymaga już aktualizacji aplikacji. Zainstalowanie mechanizmu zajęło jedno wydanie aplikacji. Potem nowe karty są oddalone o jedno wdrożenie, razem z tłumaczeniami i ilustracjami.

Sklep działa tak samo. Apple weryfikuje nowy zakup w aplikacji osobno, bez nowego builda, więc nowy pionek też nie potrzebuje nowej wersji.

Sprytna jest siatka bezpieczeństwa. Nikomu nigdy nie rozdaje się karty, której jego aplikacja nie potrafi zagrać, więc stare i nowe wersje mogą dzielić stół bez kłopotów. Gdy wymyślamy naprawdę nową mechanikę, nadal wracamy do kolejki jak wszyscy.

To samo wydanie przyniosło rzadkość, co znaczy, że niektóre karty pojawiają się znacznie rzadziej niż inne. Jak dużo rzadziej, to nasz sekret, ale te najrzadsze pojawiają się mniej więcej tak często, jak App Review przechodzi za pierwszym razem. Wylosowaliśmy zwykłą.

Tablica wyników

Dla ludzi od arkuszy kalkulacyjnych.

Co powiedzielibyśmy sobie na początku

To, co kiedyś było wieczorem klikania, jest teraz podbiciem numeru, notatką i garścią poleceń na sklep. Czekanie to jedyna część, której nie umiemy zautomatyzować. Wszystko inne trafiło na tę listę.

  1. Dodaj wersję do zgłoszenia przed zakupami w aplikacji. Apple pozwoli ci zrobić to na odwrót, a potem odmówi wyjaśnienia dlaczego.
  2. Pisz notatki dla recenzenta z myślą o kimś, kto nigdy nie widział aplikacji. Ma czterdzieści sekund i iPada i stosuje się do notatek dosłownie. Podaj mu dokładną ścieżkę do wszystkiego.
  3. Nigdy nie stawiaj logowania przed swoim Sklepem. Goście też mają portfele, a recenzenci są gośćmi.
  4. Podpisz archiwum, a potem spraw, żeby skrypt odmawiał wysłania takiego, które nie nosi swoich uprawnień. Zbuduj sobie bramkarza.
  5. Spraw, żeby brakujące klucze krzyczały. Build 30 wyszedł bez klucza płatności i nic nie narzekało głośno, więc Sklep był po prostu pusty. Cicha awaria to odmowa z opóźnieniem.
  6. Testuj na obu platformach, nawet gdy kod jest wspólny. Android wybaczył to, czego iOS odmówił, a jedna linijka kodu miała dwie różne osobowości.
  7. Zmieniaj nazwy produktów, nigdy ich identyfikatory. Nazwy to tekst. Identyfikatory to umowy.
  8. Zautomatyzuj, spraw, żeby dało się to powtórzyć, i spisz. API Apple czasem po prostu ma gorszą chwilę, więc uruchom ponownie, zanim zaczniesz debugować. Nasze instrukcje operacyjne istnieją, bo wszystko zapomnieliśmy dwa razy.
  9. Trzymaj osobne informacje o wydaniu, gdy sklepy mają osobne zasady. Ta sama wersja, inne zdania.
  10. Dostarczaj treści z serwera, a kolejkę sklepu zachowaj dla nowych mechanik. Najlepsza aktualizacja to taka, której nikt nie musi zatwierdzać.
  11. Testuj na gorącym sprzęcie, który naprawdę mają twoi gracze. Symulator nigdy się nie zarumienił. iPhone 16 Pro Max tak.
  12. Nie pozwól serwerowi zasnąć, kiedy recenzent jest w mieście. Śpiący serwer wygląda dokładnie jak zepsuty przycisk.

No dalej, zrób z nami przejażdżkę

Moneyflow jest darmowy w App Store, darmowy w Google Play i darmowy w każdej przeglądarce. Nie ma reklam, a żeby zacząć, nie potrzebujesz konta. Wszystko w Sklepie jest kosmetyczne. Nic w nim nie pomaga wygrać, co w grze o pieniądzach jest albo bardzo pryncypialne, albo bardzo złym interesem.

Co dalej? Więcej kart, które teraz przychodzą z serwera, więcej sposobów na grę ze znajomymi i, jeśli wszechświat będzie łaskawy, jeden pełny tydzień bez numeru wersji.

Pobierz z App Store Pobierz z Google Play Zagraj w przeglądarce

Do zobaczenia na planszy.