BUILD
مشكلة شخصية في الجدولة واللياقة، تحوّلت إلى منتج Android أصلي.
- تطبيق Android أصلي
- منتج
- Kotlin, Jetpack Compose, Material 3
نظرة عامة
BUILD تطبيق شخصي على Android لإدارة اللياقة والروتين اليومي. يجمع التمارين والتغذية وشرب الماء والمكمّلات والتذكيرات والملاحظات في مكان واحد، ويتكيّف عندما تتغيّر الجداول.
المشكلة
عادةً ما تتوزّع التمارين والتغذية والروتين اليومي على تطبيقات وملاحظات منفصلة، ولا يتعامل أيٌّ منها جيدًا مع أسبوع لا يسير وفق الخطة. كانت نقطة البداية شخصية: إبقاء روتين متغيّر منظّمًا دون التنقّل بين عدة أدوات.
المقاربة
بدلًا من متتبّع بسيط، يتعامل BUILD مع الروتين كبيانات منظّمة مرتبطة بجدول زمني. تقف التمارين والمجموعات والتكرارات والتقدّم جنبًا إلى جنب مع التغذية والبروتين وشرب الماء والمكمّلات، وتُجدول التذكيرات انطلاقًا من هذه البيانات، ويمكن إعادة تنظيم الخطة عند تغيّر الجدول.
- جدول المستخدم
- منطق التطبيق (MVVM)
- بيانات Room
- تخطيط ديناميكي
- التذكيرات
مساهمة عمر
- تحويل مشكلة روتين شخصية إلى تعريف منتج
- بناء التطبيق بشكل أصلي بلغة Kotlin مع Jetpack Compose وMaterial 3
- هيكلة التطبيق وفق MVVM وتدفّق بيانات أحادي الاتجاه
- تنفيذ التخزين الدائم عبر Room والتحديث التفاعلي عبر Coroutines وFlow
- جدولة التذكيرات عبر AlarmManager
- إضافة اختبارات مؤتمتة بـ JUnit وRobolectric وRoborazzi
ماذا يفعل
- تتبّع التمارين: التمارين والمجموعات والتكرارات والتقدّم
- تتبّع التغذية والبروتين وشرب الماء
- المكمّلات الغذائية
- التذكيرات والملاحظات
- روتين ديناميكي يتكيّف مع تغيّر الجداول
- تصميم Material 3 وتخطيطات متجاوبة ووضع داكن
البنية
- الواجهة: Jetpack Compose مع Material 3
- طبقة العرض: MVVM مع تدفّق بيانات أحادي الاتجاه
- البيانات: قاعدة بيانات Room كمصدر وحيد للحقيقة
- التزامن: Kotlin Coroutines وFlow للتحديثات التفاعلية
- الجدولة: AlarmManager للتذكيرات
- الجودة: اختبارات JUnit وRobolectric ولقطات الشاشة عبر Roborazzi
قرارات أساسية
- Kotlin أصلي بدلًا من غلاف ويب؛ فالتذكيرات والبيانات دون اتصال تحتاج إلى المنصّة
- Room مصدرًا وحيدًا للحقيقة، مع Flow لإبقاء الواجهة متزامنة
- تدفّق بيانات أحادي الاتجاه ليبقى التطبيق الغني بالميزات قابلًا للتنبّؤ
- اختبارات مؤتمتة، بما فيها اختبارات لقطات الشاشة، منذ البداية
التحدّي الحقيقي
الجزء الصعب ليس التتبّع، بل التغيير. فالروتين الذي يتبدّل يحتاج إلى بيانات وجدولة وتذكيرات تبقى متّسقة مع بعضها.
النتيجة
تطبيق Android أصلي يعمل ببيانات منظّمة وجدولة ديناميكية وتذكيرات وتخزين دائم واختبارات مؤتمتة، بُني حول روتين شخصي.
التقنيات
Kotlin
Jetpack Compose
Material 3
MVVM
Room
Coroutines & Flow
AlarmManager
JUnit · Robolectric · Roborazzi
لماذا يهم
هندسة منتجات أصلية: نقل مشكلة يومية من فكرة إلى تطبيق جوّال منظّم ومختبَر.
المشروع التالي
أدخِل موضوعًا، واحصل على مسار منظّم لتعلّمه.