Skip to content

vyltrixecho/KlickAction

Repository files navigation

KlikAction

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).


Jak działa gra

  1. Klikasz przycisk "KLIKNIJ MNIE"
  2. Licznik rośnie — pasek postępu pokazuje ile brakuje do kolejnego budynku
  3. Co 50 kliknięć odblokowujesz nowy budynek z całego świata
  4. Pojawia się karta ze zdjęciem, nazwą i opisem po polsku
  5. Odblokowane budynki trafiają do Historii odkryć (panel dolny)
  6. Po odblokowaniu wszystkich 80 budynków — specjalny ekran gratulacyjny

Łącznie potrzebujesz 4000 kliknięć żeby ukończyć grę.


Screenshoty

Dodaj screenshoty do folderu screenshots/ i odkomentuj poniższe linie:


Funkcje

Rozgrywka

  • 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

Offline

  • 100% offline — internet nie jest wymagany w żadnym momencie
  • Wszystkie 80 zdjęć wbudowane w APK jako zasoby drawable-nodpi
  • Brak uprawnień INTERNET w manifeście — aplikacja nigdy nie łączy się z siecią
  • Zdjęcia pobrane z Wikimedia Commons podczas developmentu i dołączone do projektu

Animacje

  • 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

UI / Design

  • 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

Historia odkryć

  • 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!"

Statystyki i motywacja

  • 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!")

Zapis i powiadomienia

  • 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+

Pełna lista 80 budynków

# 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

Podział geograficzny

Kontynent Liczba budynków
Europa 42
Ameryka Północna 13
Azja 16
Ameryka Południowa 3
Afryka / Bliski Wschód 4
Oceania 2

Wymagania

  • Android 5.0+ (API 21)
  • Android Studio z AGP 9.1.0+

Budowanie

git clone https://github.com/TWOJ_USERNAME/KlickAction.git
cd KlickAction
./gradlew assembleDebug

APK znajdziesz w app/build/outputs/apk/debug/.

Aby zainstalować na podłączonym urządzeniu:

./gradlew installDebug

Struktura projektu

KlickAction/
├── 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

Technologie

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)

Czego nie używamy

  • 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ą

Vibe Coding — jak powstała ta aplikacja

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ąć.

Co zostało stworzone przez AI

  • 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

Narzędzie

Cała aplikacja powstała w konwersacji z Claude (Anthropic) za pośrednictwem Claude Code (CLI).


Licencja

Projekt edukacyjny. Zdjęcia budynków pochodzą z Wikimedia Commons (licencje Creative Commons).


Autor

Stworzono przez vibe coding z Claude (Anthropic) — vyltrixecho.pl

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors