- Kotlin 100%
| .idea | ||
| app | ||
| assets | ||
| gradle | ||
| TwojaStokrotka | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| README.md | ||
| settings.gradle.kts | ||
TwojaStokrotka
Nieoficjalna alternatywa dla aplikacji Nasza Stokrotka (rabaty, kupony, karta lojalnościowa, kupony za płatki), tworzona z myślą o telefonach ze zmodyfikowanym systemem (root, custom ROM, flash) i bez usług Google (bez Google Play Services / GApps).
🚧 Projekt jest w aktywnym rozwoju. Większość funkcji działa i jest podłączona do prawdziwego API. Do ukończenia zostały: mapa sklepów, powiadomienia push i kilka mniejszych elementów.
Dlaczego ten projekt?
Oficjalna aplikacja Nasza Stokrotka, tak jak wiele aplikacji sieci handlowych, mocno opiera się na usługach Google (Firebase, Google Play Services) i często słabo lub w ogóle nie działa na telefonach z odblokowanym bootloaderem, zrootowanych, z custom ROM-em lub bez GApps.
TwojaStokrotka jest odpowiednikiem funkcjonalnym (rabaty, karta lojalnościowa, kupony, transfer punktów, naklejki, magazyn) wyglądającym niemal identycznie jak oryginał, ale działającym bez zależności od usług Google.
Funkcje
- 📱 Logowanie numerem telefonu + kod OTP (bez dodatkowych kluczy/tokenów wpisywanych ręcznie)
- 🏠 Dashboard główny
- 🎟️ Kupony za płatki
- 🧾 Paragony i szczegóły paragonu
- 📜 Historia transakcji
- 🔁 Transfer punktów + historia transferów
- 🏷️ Oferty, szczegóły ofert oraz sortowanie/filtrowanie
- 🎁 Zarządzanie nagrodami
- 🛒 Listy zakupowe + szczegóły listy
- ⭐ Naklejki (stickers)
- 📖 Magazyn (magazine)
- 📃 Regulamin / zasady
- ℹ️ Ekran "O aplikacji"
Większość powyższych jest już podłączona do prawdziwego API Nasza Stokrotka. Do ukończenia zostają: mapa sklepów, powiadomienia push oraz kilka mniejszych elementów.
Prywatność
TwojaStokrotka jest tworzona z myślą o osobach, które cenią sobie prywatność.
Podczas analizy ruchu sieciowego oryginalnej aplikacji Nasza Stokrotka (przez przechwycenie ruchu HTTPS) zaobserwowano requesty do usług stron trzecich, mimo że aplikacja ma służyć jedynie do rabatów i karty lojalnościowej:
- Facebook Graph API (
graph.facebook.com) — m.in. wysyłanie zdarzeń aktywności (/activities), pobieranie tokenów dostępu oraz danych typumodel_asset(fingerprinting urządzenia) - Firebase Remote Config (
firebase-settings...) — infrastruktura Google - SalesManago (
api.salesmanago..., endpoint/mobile/contact/upsert) — system marketing automation/CRM, aktualizujący profil kontaktowy użytkownika - Sentry (
sentry.appchance...) — error tracking / crash reporting - ipify (
api.ipify.org) — usługa zwracająca publiczny adres IP urządzenia
TwojaStokrotka robi dokładnie to, czego potrzebujesz — bez zbędnej telemetrii i trackerów kierowanych do stron trzecich.
Instalacja
Opcja 1 — gotowy APK
- Przejdź do zakładki Releases
- Pobierz najnowszy plik
.apk - Zainstaluj na telefonie (może być wymagane zezwolenie na instalację z nieznanych źródeł)
Opcja 2 — build ze źródeł
Wymagania: Android Studio (najnowsza stabilna wersja), JDK 11+.
git clone https://github.com/ZorinOnTop/TwojaStokrotka.git
cd TwojaStokrotka
Następnie otwórz projekt w Android Studio i:
- poczekaj aż zakończy się Gradle sync
- podłącz telefon/emulator
- uruchom przez Run ▶ (moduł
app)
Albo z linii poleceń:
./gradlew assembleDebug
Gotowy plik APK znajdziesz w app/build/outputs/apk/debug/.
Wymagania
- Android 6.0 (API 23) lub nowszy
- Brak wymaganych usług Google Play
Stack technologiczny
- Kotlin
- Jetpack Compose (UI)
- Retrofit + Gson (sieć)
- Coil (ładowanie obrazów)
- DataStore Preferences (lokalne dane)
- ZXing (kody QR)
- Bez zależności od Google Play Services / Firebase
Uwaga prawna
Ten projekt nie jest oficjalną aplikacją sieci Stokrotka ani z nią powiązany. Nazwa i szata graficzna mają jedynie nawiązywać do funkcji aplikacji (kwiat/stokrotka), a nie ją imitować 1:1 pod kątem znaku towarowego. Jeśli coś budzi wątpliwości prawne, zgłoś to przez issues.
Wkład w projekt
Chcesz pomóc? Śmiało otwórz issue lub pull request. Przed większymi zmianami najlepiej najpierw otworzyć issue, żeby uniknąć dublowania pracy.
Licencja
MIT — zobacz plik LICENSE.