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 সম্পর্কে জানুন