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

UX وفق توصيات Android

يطبق 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

حالة المكعب / تشغيل الصيغ

تتحول الكتابة ذات الأنواع إلى حركات وحالات متسقة للمكعب. تحرّك قائمة انتظار العارض دوران الطبقات، مع الحفاظ على هوية القطع وعناصر facelet. تُشغّل الصيغة كتسلسل حركات فعلية، مع تشغيل وإيقاف مؤقت وضبط الإيقاع.

  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