Mobilna gra klikająca na Androida, w której odkrywasz 80 najsłynniejszych budynków i budowli świata — od Białego Domu po posągi Moai na Wyspie Wielkanocnej.
Cała aplikacja została stworzona w 100% metodą vibe coding — od pierwszej linijki kodu, przez architekturę, dobór 80 budynków, pobranie zdjęć, po debugowanie i optymalizację. Żadna linijka kodu nie została napisana ręcznie. Wszystko powstało przez konwersację z AI (Claude, Anthropic).
- Klikasz przycisk "KLIKNIJ MNIE"
- Licznik rośnie — pasek postępu pokazuje ile brakuje do kolejnego budynku
- Co 50 kliknięć odblokowujesz nowy budynek z całego świata
- Pojawia się karta ze zdjęciem, nazwą i opisem po polsku
- Odblokowane budynki trafiają do Historii odkryć (panel dolny)
- Po odblokowaniu wszystkich 80 budynków — specjalny ekran gratulacyjny
Łącznie potrzebujesz 4000 kliknięć żeby ukończyć grę.
Dodaj screenshoty do folderu
screenshots/i odkomentuj poniższe linie:
- 80 budynków do odblokowania — każdy z unikalnym zdjęciem i opisem po polsku
- Pasek postępu — wizualne odliczanie do kolejnego odblokowania (ProgressBar 0–50)
- System poziomów — POZIOM 1/80, POZIOM 2/80... aż do MAX LEVEL
- Odliczanie — "Nowa grafika za X kliknięć" pod paskiem postępu
- Ekran końca gry — dialog gratulacyjny z trofeum po odblokowaniu wszystkich budynków
- 100% offline — internet nie jest wymagany w żadnym momencie
- Wszystkie 80 zdjęć wbudowane w APK jako zasoby
drawable-nodpi - Brak uprawnień
INTERNETw manifeście — aplikacja nigdy nie łączy się z siecią - Zdjęcia pobrane z Wikimedia Commons podczas developmentu i dołączone do projektu
- Bounce na liczniku kliknięć — skalowanie 1.0 → 1.35 → 1.0 z OvershootInterpolator
- Slide-in karty budynku — przesunięcie Y + fade in z OvershootInterpolator
- Pulsujący ogień — ciągła animacja scale (1.0 → 1.12) + alpha (1.0 → 0.72) w pętli
- Animacja resetu — obrót + fade out, potem zoom-in z powrotem
- Animacja milestone — skalowanie 1.0 → 1.4 → 1.0 na trofeum i etykiecie
- Fade out motywacji — tekst motywacyjny wygasa po 2.8 sekundy
- Ciemny motyw — gradient tła od #0f172a do #1a1a2e
- Gradient na tytule — LinearGradient od złotego (#ffe066) do czerwonego (#e94560)
- Glow na tytule — czerwony cień (shadowColor #e94560, shadowRadius 24)
- Tagline — "klikaj i odkrywaj świat" w italiku pod tytułem
- Separator gradientowy — linia od przezroczystego przez czerwony do przezroczystego
- Karty budynków — ciemne (#1a1a3a) z zaokrąglonymi rogami i cieniem
- Stała pozycja przycisku — elementy motywacyjne jako INVISIBLE (nie GONE)
- Czcionka tytułu — sans-serif-black, letterSpacing 0.15
- BottomSheetDialog z ciemnym tłem (#0f172a) i drag handle
- Lista wszystkich odblokowanych budynków — najnowsze na górze
- Karty ze zdjęciami (90dp), nazwami i opisami (max 3 linie z ellipsize)
- Nagłówek z licznikiem: "Historia odkryć (X / 80)"
- Puste state: "Jeszcze nic tu nie ma. Odblokuj swój pierwszy budynek klikając!"
- CPS (kliknięć na sekundę) — rolling window 5 sekund, format "X.X klik/s"
- 18 napisów motywacyjnych — wyświetlane co 15 kliknięć z animacją fade out
- 8 napisów po resecie — rotacja motywacji przy każdym restarcie
- Motywacje przy milestone — dynamiczne teksty zależne od postępu ("Ostatnia dziesiątka!", "Tylko 3 budynki do końca!")
- SharedPreferences — automatyczny zapis licznika i listy odblokowanych budynków w
onStop() - Pełne przywracanie stanu — po ponownym uruchomieniu: licznik, poziom, pasek postępu, karta budynku, historia
- Powiadomienia push — przypomnienie po 4 godzinach nieaktywności przez WorkManager
- Kanał powiadomień — prawidłowa obsługa Android 8+ (NotificationChannel)
- Uprawnienia Android 13+ — prośba o POST_NOTIFICATIONS na Tiramisu+
| # | Budynek | Lokalizacja |
|---|---|---|
| 1 | Biały Dom | Waszyngton, USA |
| 2 | Burj Khalifa | Dubaj, ZEA |
| 3 | Katedra Notre-Dame | Paryż, Francja |
| 4 | Empire State Building | Nowy Jork, USA |
| 5 | Pałac Westminsterski | Londyn, Wielka Brytania |
| 6 | Koloseum | Rzym, Włochy |
| 7 | Sagrada Família | Barcelona, Hiszpania |
| 8 | Opera w Sydney | Sydney, Australia |
| 9 | Wieże Petronas | Kuala Lumpur, Malezja |
| 10 | Sobór Wasyla Błogosławionego | Moskwa, Rosja |
| 11 | Luwr | Paryż, Francja |
| 12 | Hagia Sophia | Stambuł, Turcja |
| 13 | Partenon | Ateny, Grecja |
| 14 | Wieża CN | Toronto, Kanada |
| 15 | Willis Tower | Chicago, USA |
| 16 | One World Trade Center | Nowy Jork, USA |
| 17 | Muzeum Guggenheima | Bilbao, Hiszpania |
| 18 | Flatiron Building | Nowy Jork, USA |
| 19 | Zakazane Miasto | Pekin, Chiny |
| 20 | Angkor Wat | Kambodża |
| 21 | Taj Mahal | Agra, Indie |
| 22 | Big Ben | Londyn, Wielka Brytania |
| 23 | Kreml | Moskwa, Rosja |
| 24 | Alhambra | Granada, Hiszpania |
| 25 | Mont Saint-Michel | Francja |
| 26 | Zamek Neuschwanstein | Bawaria, Niemcy |
| 27 | Akropol Ateński | Ateny, Grecja |
| 28 | Petra | Jordania |
| 29 | Chichen Itza | Meksyk |
| 30 | Machu Picchu | Peru |
| 31 | Wielki Mur Chiński | Chiny |
| 32 | Stonehenge | Anglia |
| 33 | Pałac Wersalski | Francja |
| 34 | Pałac Buckingham | Londyn, Wielka Brytania |
| 35 | Zamek Chambord | Francja |
| 36 | Krzywa Wieża w Pizie | Włochy |
| 37 | Chrysler Building | Nowy Jork, USA |
| 38 | Panteon | Rzym, Włochy |
| 39 | Fontanna di Trevi | Rzym, Włochy |
| 40 | Zamek Praski | Praga, Czechy |
| 41 | Zamek Wawelski | Kraków, Polska |
| 42 | Kopalnia Soli w Wieliczce | Polska |
| 43 | Auschwitz-Birkenau | Oświęcim, Polska |
| 44 | Zamek w Malborku | Polska |
| 45 | Stare Miasto w Warszawie | Polska |
| 46 | Teatr Maryjski | Sankt Petersburg, Rosja |
| 47 | Tower of London | Londyn, Wielka Brytania |
| 48 | Zamek Frontenac | Quebec City, Kanada |
| 49 | Burj Al Arab | Dubaj, ZEA |
| 50 | Marina Bay Sands | Singapur |
| 51 | Świątynia Lotosu | New Delhi, Indie |
| 52 | Bazylika Św. Piotra | Watykan |
| 53 | Zamek Edynburg | Szkocja |
| 54 | Tokyo Skytree | Tokio, Japonia |
| 55 | Zamek Osaka | Japonia |
| 56 | Mount Rushmore | Dakota Płd., USA |
| 57 | Pałac Potala | Lhasa, Tybet |
| 58 | Katedra w Kolonii | Niemcy |
| 59 | Pałac Schonbrunn | Wiedeń, Austria |
| 60 | Świątynie Abu Simbel | Egipt |
| 61 | Pałac Sztuk Pięknych | Meksyk |
| 62 | Chrystus Odkupiciel | Rio de Janeiro, Brazylia |
| 63 | Most Golden Gate | San Francisco, USA |
| 64 | Brama Brandenburska | Berlin, Niemcy |
| 65 | Błękitny Meczet | Stambuł, Turcja |
| 66 | Parlament w Budapeszcie | Węgry |
| 67 | Zamek Himeji | Japonia |
| 68 | Katedra w Mediolanie | Włochy |
| 69 | Bazylika Sacre-Coeur | Paryż, Francja |
| 70 | Pałac Zimowy | Sankt Petersburg, Rosja |
| 71 | Borobudur | Jawa, Indonezja |
| 72 | Meczet Szejka Zajida | Abu Zabi, ZEA |
| 73 | Pałac Gyeongbokgung | Seul, Korea |
| 74 | Wat Arun | Bangkok, Tajlandia |
| 75 | Hallgrimskirkja | Rejkiawik, Islandia |
| 76 | Posągi Moai | Wyspa Wielkanocna |
| 77 | Casa Mila (La Pedrera) | Barcelona, Hiszpania |
| 78 | Świątynia Nieba | Pekin, Chiny |
| 79 | Kopuła na Skale | Jerozolima |
| 80 | Reichstag | Berlin, Niemcy |
| Kontynent | Liczba budynków |
|---|---|
| Europa | 42 |
| Ameryka Północna | 13 |
| Azja | 16 |
| Ameryka Południowa | 3 |
| Afryka / Bliski Wschód | 4 |
| Oceania | 2 |
- Android 5.0+ (API 21)
- Android Studio z AGP 9.1.0+
git clone https://github.com/TWOJ_USERNAME/KlickAction.git
cd KlickAction
./gradlew assembleDebugAPK znajdziesz w app/build/outputs/apk/debug/.
Aby zainstalować na podłączonym urządzeniu:
./gradlew installDebugKlickAction/
├── app/
│ ├── build.gradle.kts # Zależności i konfiguracja modułu
│ └── src/main/
│ ├── AndroidManifest.xml # Manifest (tylko POST_NOTIFICATIONS)
│ ├── java/com/example/mojaaplikacja/
│ │ ├── MainActivity.kt # Główna aktywność — UI, logika, animacje (652 linie)
│ │ ├── Building.kt # Model danych + lista 80 budynków z opisami
│ │ └── ReminderWorker.kt # Powiadomienie push po 4h (WorkManager)
│ └── res/
│ ├── drawable/
│ │ ├── gradient_background.xml # Gradient tła aplikacji
│ │ ├── button_background.xml # Tło przycisku KLIKNIJ MNIE
│ │ ├── outline_button_bg.xml # Tło przycisku Historia
│ │ ├── progress_drawable.xml # Styl paska postępu
│ │ ├── separator_gradient.xml # Separator gradientowy
│ │ ├── ic_fire.xml # Ikona ognia (vector)
│ │ └── ic_trophy.xml # Ikona trofeum (vector)
│ ├── drawable-nodpi/ # 80 zdjęć budynków (~400-500px, JPEG)
│ │ ├── building_white_house.jpg
│ │ ├── building_burj_khalifa.jpg
│ │ ├── building_notre_dame.jpg
│ │ └── ... (80 plików)
│ ├── layout/
│ │ └── activity_main.xml # Layout główny (NestedScrollView)
│ ├── values/
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── themes.xml
│ └── mipmap-*/ # Ikony launchera
├── build.gradle.kts # Root build (AGP 9.1.0)
├── gradle.properties # Konfiguracja Gradle (bez deprecation warnings)
├── settings.gradle.kts
└── README.md
| Technologia | Zastosowanie |
|---|---|
| Kotlin | Język aplikacji (AGP 9.1.0 built-in, bez osobnego pluginu) |
| AndroidX AppCompat | Kompatybilność wsteczna do API 21 |
| AndroidX CardView | Karty budynków w UI i historii |
| AndroidX ConstraintLayout | Layout management |
| AndroidX WorkManager | Powiadomienia push po 4h nieaktywności |
| Material Design | BottomSheetDialog dla historii i ekranu końca |
| SharedPreferences | Zapis stanu gry (licznik + odblokowane budynki) |
| ObjectAnimator / AnimatorSet | Wszystkie animacje (bounce, pulse, slide-in, fade) |
| LinearGradient | Gradient na tytule (złoty → czerwony) |
| Wikimedia Commons | Źródło zdjęć budynków (pobrane offline podczas developmentu) |
- Brak Glide/Picasso/Coil — zdjęcia ładowane przez
setImageResource() - Brak OkHttp/Retrofit — zero zależności sieciowych
- Brak Coroutines — wszystko na main thread (UI-only app)
- Brak Kotlin plugin — AGP 9.1.0 ma wbudowany kompilator Kotlin
- Brak uprawnień INTERNET — aplikacja nigdy nie łączy się z siecią
Ta aplikacja jest eksperymentem w vibe coding — metodzie tworzenia oprogramowania, w której programista nie pisze kodu ręcznie, lecz prowadzi konwersację z AI, opisując co chce osiągnąć.
- Architektura projektu — podział na MainActivity, Building model, ReminderWorker
- Cała logika gry — licznik, milestone'y, zapis stanu, odtwarzanie po restarcie
- Layout XML — ciemny motyw, gradient tła, karty, pasek postępu, separator
- 6 rodzajów animacji — bounce, slide-in, pulse, fade, reset, milestone
- 80 budynków — dobór budowli z 6 kontynentów, opisy po polsku, pobranie zdjęć
- System motywacji — 18 + 8 wariantów tekstów motywacyjnych
- Historia odkryć — BottomSheetDialog budowany programowo w Kotlinie
- Ekran końca gry — dialog gratulacyjny z linkiem do strony autora
- Powiadomienia — WorkManager + NotificationChannel
- Debugowanie — rozwiązywanie błędów Gradle (deprecations AGP 9.1.0), rate limiting Wikimedia API, błędne hashe URL-i zdjęć, kotlinOptions incompatibility
- Migracja na offline — usunięcie Glide/OkHttp/Coroutines, pobranie 80 zdjęć z Wikimedia Commons, przejście na zasoby drawable
Cała aplikacja powstała w konwersacji z Claude (Anthropic) za pośrednictwem Claude Code (CLI).
Projekt edukacyjny. Zdjęcia budynków pochodzą z Wikimedia Commons (licencje Creative Commons).
Stworzono przez vibe coding z Claude (Anthropic) — vyltrixecho.pl