Cubiq
engineering.mdUygulama

Uygulama

Cubiq'in iç yapısı

Küpün her dönüşü özel bir sisteme dayanır: matematiksel model, 3D motoru ve ders hedeflerini dikkate alan bir çözücü. Android uygulaması Kotlin ve Jetpack Compose kullanır.

Proje anlık görüntüsü

kaynak ve metin kaynağı satırı
740 244
uygulama modülü
39
testler dışında fiziksel Kotlin satırı
136 019
dil varyantı
42
test bildirimitest* / androidTest* · @Test
1 624

stack.kt

Modern Android teknoloji yığını

Proje anlık görüntüsü
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 ve Material 3 arayüz bileşenlerini ve temalarını belirler. Adaptive pencere boyutuna göre düzeni, Navigation 3 ise gezinmeyi ve ekranların geri yüklenmesini yönetir. Durum Coroutines ve Flow üzerinden gelir; Hilt uygulama modüllerini bağlar.

architecture.kt

Bağımsız uygulama katmanları

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%

Arayüz, alan sözleşmeleri ve veriler ayrı modüllerdedir; Hilt uygulamaları birbirine bağlar. Compose değişmez durum ve açık olaylar alır. Room geçmişi ve öğrenme ilerlemesini, DataStore ayarları saklar; Navigation 3 bölüm yığınlarını geri yükler.

  • Coroutines / Flow
  • Hilt
  • Room
  • DataStore

android-ux.md

Android önerilerine göre UX

Cubiq, Google'ın Apps Experience Program kapsamında öne çıkardığı yaklaşımları uygular: Compose, uyarlanabilir düzen ve edge-to-edge.

Pencere boyutuna göre
Geniş ekranda teori ve alıştırma yan yana görünür. Kompakt ekranda içerik ve gezinme mevcut alana uyum sağlar; düzeni pencerenin boyutu belirler.
Yerel gezinme
Edge-to-edge sistem çubuklarını ve klavyeyi dikkate alır. Navigation 3 bölüm yığınlarını korur ve geri geçişin ön izlemesiyle Predictive Back desteği sunar.
Okunabilirlik ve erişilebilirlik
Açık ve koyu temalar, metin ölçeklendirme ve gezinmedeki anlamsal etiketler uygulamayı TalkBack ve klavyeyle kullanmaya yardımcı olur. Yazı boyutu büyüdüğünde bölüm adları ekran okuyucu için erişilebilir kalır.
Google önerileri · Apps Experience Program
OpenGL ES 3.0

engine.glsl

Matematiği izleyen geometri

moving cubies
26
facelets
54
meshes
8
triangles
2 964

GLSL shader'ları PBR malzemelerini, pürüzlülüğü ve çevre aydınlatmasını hesaplar. Model ve animasyon uyumludur: bir adım geri gitmek ters hamleyi uygular, kamera da paneller arasındaki boş alanı dikkate alır.

  • OpenGL ES 3.0
  • GLSL
  • PBR
  • Instancing

Küp durumu / formül oynatma

Tür bilgisi taşıyan gösterim, hamlelere ve tutarlı küp durumlarına dönüştürülür. Renderer kuyruğu, parça ve facelet kimliklerini koruyarak katman dönüşlerini canlandırır. Formül gerçek hamle dizisi olarak, oynatma, duraklatma ve tempo ayarıyla yürütülür.

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

İleri adım yeni hamleyi canlandırır; geri adım ters hamleyi uygular. Konuma atlama temel sahneyi ve hedef diziyi geri yükler. İptal, sonraki hamlelerin verilmesini durdurur; başlamış dönüş tamamlanır. EGL yaşam döngüsü pause/release işlemlerini yönetir; GL yoksa öğrenme yolu 3D olmadan kullanılabilir kalır.

solver.kt

Ders hedeflerine uygun çözüm

  • BFS
  • Beam search
  • F2L

Özel çözücü, mevcut dersin formülleri ve yardımcı hamleleriyle çözüm kurar. SolverRequest; küp durumu, hedef parçalar, kilitli hedefler, izin verilen formüller, durumlar ve yönelim içerir. Planlayıcı öğrenme hedeflerinin sırasını izler ve çözülmüş parçaları korur.

Fazlara özel planlama sınırlı BFS, ışın araması ve F2L durum tanımayı kullanır. Doğrulama parça bileşimini, çevirmeleri, burulmaları ve permütasyon paritesini kontrol eder. Arama politikası derinliği ve ışın genişliğini sınırlar. Ders değişimi aramayı iptal eder ve eski sonucu engeller.

Sonuç PracticePlan olur: adımlar, formül başvuruları, görüntüleme zaman çizelgesi ve yürütme zaman çizelgesi. Açıklama eğitim yönelimini korur; motor tam yürütme dizisini alır. Sonuçlar: plan / solved / invalid input / no constrained path.

  1. Küp durumu
  2. Model doğrulama
  3. Öğrenme planı
  4. 3D alıştırma

content.md

İçerik derleme sürecinden geçer

Teori 756 Markdown belgesinde saklanır, alıştırmalar 336 yerelleştirilmiş senaryoda tanımlanır. Gradle çeviri yapısını ve 316 özgün çizime yapılan başvuruları doğrular. Grafikler Blender/Cycles ile hazırlanmıştır; Android motoru ayrı prosedürel geometri kullanır.

workflow.md

Kod olarak belgeler / ajan iş akışı

AGENTS.md
48
README.md
16

Depo, ajanlarla geliştirme için düzenlenmiştir: AGENTS.md hiyerarşisi sorumlulukları, mimari kısıtları ve doğrulama kapılarını belirler; README.md modül sözleşmelerini, KDoc API ve değişmezleri açıklar.

Mimari, tasarım ve yerelleştirme sözleşmeleri kodla birlikte sürümlenir. PLAN.md kapsamı ve devri kaydeder; sözleşme değişiklikleri ilgili sorumlu belgeleri günceller. Kontroller ve üretim Gradle üzerinden yürür; CI her iki mağaza varyantını derler.

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%
Kalite ve sayım yöntemi

Testler imkânsız küp durumlarını, çözülmüş katmanların korunmasını, öğrenme planlarını, eski isteklerin iptalini, oturumların geri yüklenmesini ve veri içe aktarmayı kapsar. CI her iki mağaza varyantını derler; sürüm kontrolleri R8, APK/AAB, sağlama toplamları ve yerel kütüphanelerin 16 KB sayfalar için hizalanmasını içerir.

Kotlin hacmi; yorumlar, boş satırlar, buildSrc ve benchmark kodu dahil, test dizinleri hariç fiziksel satırlarla sayılır. Test sayısı çalıştırmaları değil, 1 343 JVM bildirimi ve 281 Android bildirimini ifade eder. Belgeler yedek metni içerir; bir senaryonun bulunması her derste alıştırma olduğu anlamına gelmez.

baselineprofile · @Test
3

Toplam metin, takip edilen UTF-8 dosyalarındaki fiziksel satırları sayar: kaynaklar, testler, XML/JSON kaynakları, Markdown içeriği, yerelleştirme, belgeler, build araçları ve web kaynakları. Yorumlar, boş satırlar ve dil kopyaları dahildir. Medya, üretilen ve build çıktıları, üçüncü taraf kodu, hizmet yapılandırması ve geçici PLAN.md hariçtir. Bu, projenin metin girdilerinin hacmidir; çalıştırılabilir LOC değildir.

Cubiq'i keşfet