Cubiq
engineering.mdImplementacija

Implementacija

Cubiq iznutra

Iza svakog okreta kocke stoji vlastiti sustav: matematički model, 3D pogon i rješavač koji uzima u obzir ciljeve lekcije. Aplikacija za Android koristi Kotlin i Jetpack Compose.

Presjek projekta

redaka izvornog koda i tekstnih resursa
740 244
modula aplikacije
39
fizičkih redaka Kotlin izvan testova
136 019
jezične varijante
42
deklaracija testovatest* / androidTest* · @Test
1 624

stack.kt

Suvremeni Android skup tehnologija

Presjek projekta
Kotlin2.4.21
Compose BOM2026.09.00
Material 31.5.0-beta01
Adaptive1.3.0
Navigation 31.2.0
AGP9.4.1
KSP2.3.12
Gradle9.7.0
  • Kotlin
  • Jetpack Compose
  • Material 3
  • Adaptive
  • Navigation 3

Jetpack Compose i Material 3 određuju komponente i teme sučelja. Adaptive upravlja rasporedom prema veličini prozora, a Navigation 3 navigacijom i obnovom zaslona. Stanje dolazi putem Coroutines i Flow; Hilt povezuje module aplikacije.

architecture.kt

Neovisni slojevi aplikacije

app01Hilt / DI
feature07Compose / ViewModel
  • onboarding
  • learning
  • lesson
  • practice
  • progress
  • settings
  • events
domain07contracts / use cases
  • learning
  • lesson
  • practice
  • portability
  • progress
  • settings
  • events
data09repositories / storage
  • content
  • storage
  • learning
  • lesson
  • practice
  • portability
  • progress
  • settings
  • events
core14UI kit / cube / solver
  • common
  • model
  • designsystem
  • uikit
  • navigation
  • analytics
  • crashlytics
  • ads
  • billing
  • push
  • hardware
  • cube
  • scrambleimage
  • solver
baselineprofile01startup / frame timing

feature → domain ← data

modulesΣ 39
  • app1
  • baselineprofile1
  • core14
  • data9
  • domain7
  • feature7
Kotlin · physical LOCΣ 136 019
feature
82 86360.9%
core
21 16715.6%
data
14 34110.5%
app
9 5147.0%
domain
6 7595.0%
buildSrc
9610.7%
baselineprofile
4140.3%

Sučelje, domenski ugovori i podaci nalaze se u odvojenim modulima; Hilt povezuje implementacije. Compose prima nepromjenjivo stanje i eksplicitne događaje. Room čuva povijest i napredak učenja, DataStore postavke, a Navigation 3 obnavlja stogove odjeljaka.

  • Coroutines / Flow
  • Hilt
  • Room
  • DataStore

android-ux.md

UX prema preporukama za Android

Cubiq primjenjuje pristupe koje Google ističe u Apps Experience Program: Compose, prilagodljiv raspored i edge-to-edge.

Prema veličini prozora
Na širokom zaslonu teorija i praksa stoje jedna uz drugu. Na kompaktnom zaslonu sadržaj i navigacija prilagođavaju se dostupnom prostoru; raspored određuje veličina prozora.
Izvorna navigacija
Edge-to-edge uzima u obzir sistemske trake i tipkovnicu. Navigation 3 čuva stogove odjeljaka i podržava Predictive Back s pretpregledom povratnog prijelaza.
Čitljivost i pristupačnost
Svijetla i tamna tema, skaliranje teksta i semantičke oznake u navigaciji pomažu pri upotrebi aplikacije uz TalkBack i tipkovnicu. Pri velikom fontu nazivi odjeljaka ostaju dostupni čitaču zaslona.
Preporuke Google · Apps Experience Program
OpenGL ES 3.0

engine.glsl

Geometrija koja prati matematiku

moving cubies
26
facelets
54
meshes
8
triangles
2 964

GLSL shaderi izračunavaju PBR materijale, hrapavost i osvjetljenje okruženjem. Model i animacija su usklađeni: korak natrag primjenjuje obrnuti potez, a kamera uzima u obzir prostor između panela.

  • OpenGL ES 3.0
  • GLSL
  • PBR
  • Instancing

Stanje kocke / reprodukcija formula

Tipizirana notacija pretvara se u poteze i usklađena stanja kocke. Red renderer pogona animira okrete slojeva, čuvajući identitet dijelova i facelet elemenata. Formula se reproducira kao niz stvarnih poteza, s pokretanjem, pauzom i podešavanjem tempa.

  1. Notation
  2. Cube state
  3. Move queue
  4. OpenGL ES 3.0

Korak naprijed animira nov potez; korak natrag primjenjuje obrnuti potez. Prijelaz na poziciju obnavlja osnovnu scenu i ciljni niz. Otkazivanje zaustavlja izdavanje sljedećih poteza; započeti okret se završava. Životni ciklus EGL obrađuje pause/release; bez GL put učenja ostaje dostupan bez 3D.

solver.kt

Rješenje prema ciljevima lekcije

  • BFS
  • Beam search
  • F2L

Vlastiti rješavač gradi rješenje od formula i pomoćnih poteza trenutačne lekcije. SolverRequest sadrži stanje kocke, ciljne dijelove, zaključane ciljeve, dopuštene formule, slučajeve i orijentaciju. Planer poštuje redoslijed nastavnih ciljeva i štiti već složene dijelove.

Planiranje po fazama koristi ograničeni BFS, pretraživanje snopom i prepoznavanje F2L slučajeva. Validacija provjerava sastav dijelova, prevrtanja, uvijanja i paritet permutacija. Pravila pretraživanja ograničavaju dubinu i širinu snopa. Promjena lekcije otkazuje pretraživanje i sprječava zastarjeli rezultat.

Rezultat je PracticePlan: koraci, reference na formule, vremenska crta prikaza i vremenska crta izvršavanja. Objašnjenje čuva nastavnu orijentaciju; pogon dobiva puni niz za izvršavanje. Ishodi: plan / solved / invalid input / no constrained path.

  1. Stanje kocke
  2. Provjera modela
  3. Plan učenja
  4. 3D vježba

content.md

Sadržaj prolazi kroz izgradnju

Teorija je u 756 Markdown dokumenata, a praksa je opisana u 336 lokaliziranih scenarija. Gradle provjerava strukturu prijevoda i reference na 316 autorskih ilustracija. Grafika je pripremljena u Blender/Cycles; Android pogon koristi zasebnu proceduralnu geometriju.

workflow.md

Dokumentacija kao kod / rad s agentima

AGENTS.md
48
README.md
16

Repozitorij je organiziran za razvoj s agentima: hijerarhija AGENTS.md određuje odgovornosti, arhitekturna ograničenja i validacijske provjere; README.md opisuju ugovore modula, KDoc API i invarijante.

Ugovori arhitekture, dizajna i lokalizacije verzioniraju se uz kod. PLAN.md bilježi opseg i predaju rada; promjene ugovora ažuriraju nadležnu dokumentaciju. Provjere i generiranje idu kroz Gradle; CI gradi obje varijante za trgovine.

physical text linesΣ 740 244
Resources / localization
399 56854.0%
Kotlin · non-test
136 01918.4%
Lesson Markdown
132 64217.9%
Kotlin · JVM tests
46 6456.3%
Kotlin · Android tests
13 6361.8%
Build tooling / web
8 9851.2%
Documentation
2 7490.4%
Kvaliteta i metodologija brojanja

Testovi obuhvaćaju nemoguća stanja kocke, očuvanje složenih slojeva, planove učenja, otkazivanje zastarjelih zahtjeva, obnovu sesija i uvoz podataka. CI gradi obje varijante za trgovine; provjere izdanja uključuju R8, APK/AAB, kontrolne zbrojeve i poravnanje native biblioteka za stranice od 16 KB.

Opseg Kotlin koda broji fizičke retke, uključujući komentare, prazne retke, buildSrc i benchmark kod, bez testnih direktorija. Broj testova označava 1 343 JVM deklaracija i 281 Android deklaracija, a ne izvršavanja. Dokumenti uključuju zamjenski tekst; postojanje scenarija ne znači vježbu u svakoj lekciji.

baselineprofile · @Test
3

Ukupan tekst broji fizičke retke u praćenim UTF-8 datotekama: izvornom kodu, testovima, XML/JSON resursima, Markdown sadržaju, lokalizaciji, dokumentaciji, build alatima i web izvorima. Uključuje komentare, prazne retke i jezične kopije. Isključuje medije, generirane i build izlaze, kod dobavljača, konfiguracije servisa i privremeni PLAN.md. To je opseg tekstnih ulaza projekta, a ne izvršivi LOC.

Upoznaj Cubiq