Cubiq
engineering.mdकार्यान्वयन

कार्यान्वयन

Cubiq के भीतर

क्यूब का हर घुमाव एक खास प्रणाली पर निर्भर है: गणितीय मॉडल, 3D इंजन और हल खोजने वाला सॉल्वर, जो पाठ के लक्ष्यों को ध्यान में रखता है। Android ऐप Kotlin और Jetpack Compose में लिखा गया है।

प्रोजेक्ट स्नैपशॉट

स्रोत और टेक्स्ट संसाधनों की पंक्तियाँ
740 244
ऐप मॉड्यूल
39
टेस्ट के बाहर Kotlin की भौतिक पंक्तियाँ
136 019
भाषा के रूपांतर
42
टेस्ट घोषणाएँtest* / androidTest* · @Test
1 624

stack.kt

आधुनिक Android स्टैक

प्रोजेक्ट स्नैपशॉट
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 और Material 3 इंटरफ़ेस के घटक और थीम तय करते हैं। Adaptive विंडो के आकार के अनुसार लेआउट संभालता है, और Navigation 3 नेविगेशन व स्क्रीन बहाली संभालता है। स्थिति Coroutines और Flow से आती है; Hilt ऐप के मॉड्यूल जोड़ता है।

architecture.kt

ऐप की स्वतंत्र परतें

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%

इंटरफ़ेस, डोमेन अनुबंध और डेटा अलग मॉड्यूल में हैं; Hilt कार्यान्वयनों को जोड़ता है। Compose को अपरिवर्तनीय स्थिति और स्पष्ट इवेंट मिलते हैं। Room इतिहास और सीखने की प्रगति, DataStore सेटिंग रखता है, और Navigation 3 अनुभागों के स्टैक बहाल करता है।

  • Coroutines / Flow
  • Hilt
  • Room
  • DataStore

android-ux.md

Android की सिफ़ारिशों के अनुसार UX

Cubiq में Google के Apps Experience Program में बताए गए तरीके लागू हैं: Compose, अनुकूलनीय लेआउट और edge-to-edge।

विंडो के आकार के अनुसार
चौड़ी स्क्रीन पर सिद्धांत और अभ्यास साथ-साथ दिखते हैं। छोटी स्क्रीन पर कंटेंट और नेविगेशन उपलब्ध जगह के अनुसार ढलते हैं; लेआउट विंडो के आकार से तय होता है।
नेटिव नेविगेशन
Edge-to-edge सिस्टम बार और कीबोर्ड को ध्यान में रखता है। Navigation 3 अनुभागों के स्टैक सुरक्षित रखता है और वापस जाने के ट्रांज़िशन की झलक के साथ Predictive Back का समर्थन करता है।
पठनीयता और सुलभता
हल्की और गहरी थीम, टेक्स्ट का आकार बदलना और नेविगेशन में सिमैंटिक लेबल, ऐप को TalkBack और कीबोर्ड के साथ इस्तेमाल करने में मदद करते हैं। बड़े फ़ॉन्ट पर भी अनुभागों के नाम स्क्रीन रीडर के लिए उपलब्ध रहते हैं।
Google की सिफ़ारिशें · Apps Experience Program
OpenGL ES 3.0

engine.glsl

गणित के अनुसार ज्यामिति

moving cubies
26
facelets
54
meshes
8
triangles
2 964

GLSL शेडर PBR सामग्री, खुरदरापन और परिवेश की रोशनी की गणना करते हैं। मॉडल और ऐनिमेशन में तालमेल रहता है: एक कदम पीछे जाने पर उलटी चाल लागू होती है, और कैमरा पैनलों के बीच खाली जगह को ध्यान में रखता है।

  • OpenGL ES 3.0
  • GLSL
  • PBR
  • Instancing

क्यूब की स्थिति / फ़ॉर्मूला प्लेबैक

टाइपयुक्त नोटेशन चालों और संगत क्यूब स्थितियों में बदलता है। रेंडरर की कतार परतों के घुमाव ऐनिमेट करती है और हिस्सों व फ़ेसलेट की पहचान बनाए रखती है। फ़ॉर्मूला वास्तविक चालों के क्रम में चलता है, जिसमें प्ले, पॉज़ और गति का नियंत्रण है।

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

आगे का कदम नई चाल ऐनिमेट करता है; पीछे का कदम उलटी चाल लागू करता है। किसी स्थिति पर जाने से मूल दृश्य और लक्ष्य क्रम बहाल होता है। रद्द करने से अगली चालें भेजना रुकता है; शुरू हो चुका घुमाव पूरा होता है। EGL जीवनचक्र pause/release संभालता है; GL न मिलने पर भी सीखने का रास्ता 3D के बिना उपलब्ध है।

solver.kt

पाठ के लक्ष्यों के अनुसार हल

  • BFS
  • Beam search
  • F2L

अपना सॉल्वर मौजूदा पाठ के फ़ॉर्मूलों और सहायक चालों से हल बनाता है। SolverRequest में क्यूब की स्थिति, लक्षित हिस्से, लॉक किए गए लक्ष्य, अनुमत फ़ॉर्मूले, मामले और दिशा होते हैं। प्लानर सीखने के लक्ष्यों का क्रम मानता है और हल किए गए हिस्सों की रक्षा करता है।

चरण-विशिष्ट योजना सीमित BFS, बीम सर्च और F2L मामलों की पहचान इस्तेमाल करती है। सत्यापन हिस्सों के समूह, फ्लिप, ट्विस्ट और परम्यूटेशन पैरिटी की जाँच करता है। खोज नीति गहराई और बीम की चौड़ाई सीमित करती है। पाठ बदलने पर खोज रद्द होती है और पुराने नतीजे लागू नहीं होते।

नतीजा PracticePlan है: कदम, फ़ॉर्मूला संदर्भ, डिस्प्ले टाइमलाइन और एक्ज़ीक्यूशन टाइमलाइन। व्याख्या पाठ की दिशा बनाए रखती है; इंजन को पूरा निष्पादन क्रम मिलता है। परिणाम: plan / solved / invalid input / no constrained path।

  1. क्यूब की स्थिति
  2. मॉडल की जाँच
  3. सीखने की योजना
  4. 3D अभ्यास

content.md

कंटेंट बिल्ड प्रक्रिया से गुजरता है

सिद्धांत 756 Markdown दस्तावेज़ों में रखा जाता है, और अभ्यास 336 स्थानीयकृत परिदृश्यों में परिभाषित है। Gradle अनुवादों की संरचना और 316 मौलिक चित्रों के संदर्भ जाँचता है। ग्राफ़िक्स Blender/Cycles में तैयार किए गए हैं; Android इंजन अलग प्रक्रियात्मक ज्यामिति इस्तेमाल करता है।

workflow.md

कोड की तरह दस्तावेज़ / एजेंट कार्यप्रवाह

AGENTS.md
48
README.md
16

रिपॉज़िटरी एजेंटों के साथ विकास के लिए व्यवस्थित है: AGENTS.md का पदानुक्रम स्वामित्व, वास्तु संबंधी सीमाएँ और सत्यापन गेट तय करता है; README.md मॉड्यूल अनुबंध, KDoc API और अपरिवर्तनीय शर्तें बताते हैं।

वास्तु, डिज़ाइन और स्थानीयकरण के अनुबंध कोड के साथ संस्करण नियंत्रण में रहते हैं। PLAN.md कार्यक्षेत्र और हस्तांतरण दर्ज करता है; अनुबंध बदलने पर ज़िम्मेदार दस्तावेज़ भी बदलते हैं। जाँच और जनरेशन Gradle से होते हैं; CI दोनों स्टोर रूपांतरों का बिल्ड बनाता है।

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%
गुणवत्ता और गिनती की विधि

टेस्ट असंभव क्यूब स्थितियों, हल की गई परतों को सुरक्षित रखने, सीखने की योजनाओं, पुराने अनुरोध रद्द करने, सत्र बहाल करने और डेटा आयात को कवर करते हैं। CI दोनों स्टोर रूपांतरों का बिल्ड बनाता है; रिलीज़ जाँच में R8, APK/AAB, चेकसम और 16 KB पेजों के लिए नेटिव लाइब्रेरी का संरेखण शामिल है।

Kotlin का आकार भौतिक पंक्तियों में गिना गया है, जिसमें टिप्पणियाँ, खाली पंक्तियाँ, buildSrc और बेंचमार्क कोड शामिल हैं, लेकिन टेस्ट डायरेक्टरी नहीं। टेस्ट संख्या का अर्थ 1 343 JVM घोषणाएँ और 281 Android घोषणाएँ है, चलाए जाने की संख्या नहीं। दस्तावेज़ों में फ़ॉलबैक टेक्स्ट शामिल है; परिदृश्य होने का मतलब हर पाठ में अभ्यास होना नहीं है।

baselineprofile · @Test
3

कुल टेक्स्ट, ट्रैक किए गए UTF-8 स्रोत, टेस्ट, XML/JSON संसाधन, Markdown कंटेंट, स्थानीयकरण, दस्तावेज़, बिल्ड टूल और वेब स्रोत की भौतिक पंक्तियाँ गिनता है। टिप्पणियाँ, खाली पंक्तियाँ और भाषाओं की प्रतियाँ शामिल हैं। मीडिया, जनरेटेड/बिल्ड आउटपुट, वेंडर कोड, सेवा कॉन्फ़िगरेशन और अस्थायी PLAN.md बाहर हैं। यह प्रोजेक्ट के टेक्स्ट इनपुट का आकार है, निष्पादन योग्य LOC नहीं।

Cubiq को जानें