Maksutov Design MAKSUTOV DESIGN
v1.3 الأحدث Expo SDK 54 React Native TypeScript أولوية التخزين المحلي

Zaymy App

تطبيق جوال للقروض الشخصية: سجّل المبلغ، والمدة، والفائدة، والحساب، واحصل على إشعار قبل تاريخ الاستحقاق، وأغلق الدين، وحدّث سمعتك. دون خادم أو تسجيل: تبقى البيانات على الجهاز.

01 / product scope

هذا التطبيق يدور حول الدين، لا حول شاشة محفظة

8 شخصيات استشارية: لكل منها نبرتها ودورها ومجموعة نصائحها الخاصة.
56 نصيحة سياقية: 7 شاشات مضروبة في 8 شخصيات.
0 خطأ TypeScript مذكور في ملاحظات الإصدار بعد تدقيق الكود.
3 إصدارات عامة: الاستقرار، والتبعيات، والأمان.

02 / stack & tags

يكاد كل الكود مكتوبًا بـTypeScript، والبنية واضحة من أول نظرة

Zaymy تطبيق جوال يعمل محليًا بالكامل: تتبع القروض، والمواعيد، والفائدة، وتذكيرات push، والسمعة، والإنجازات، وتهيئة المستخدم، ومستويات مدفوعة عبر RevenueCat.

الأهم هنا ليس نموذج “إقراض / اقتراض”، بل السلوك بعد الحفظ: يُجدول الإشعار، وحذف القرض يُلغي push القديم، ولا تُفقد الحالة عند التحديثات المتزامنة.

UX/UI Expo React Native TypeScript Expo Router Push AsyncStorage RevenueCat Reanimated Haptics أولوية التخزين المحلي الشخصيات
TypeScript
99.9%
JavaScript
0.1%

03 / release log

تُظهر الإصدارات كيف جرى تنظيم التطبيق تدريجيًا

v1.3

إصلاحات أمنية

يعالج هذا الإصدار خطأين محددين: الوصول المجاني إلى Premium عبر بديل الإنتاج الوهمي، وإشعارات قديمة متبقية بعد حذف القرض.

  • أصبحت `purchasePremium()` و`restorePurchases()` في وضع البديل الوهمي تعمل فقط ضمن `__DEV__`.
  • بيئة الإنتاج بدون RevenueCat تُرجع الآن خطأ بدلاً من منح وصول مجاني إلى Premium.
  • أصبحت `removeLoan()` تُلغي إشعار push المجدول قبل حذف السجل.
release notes
v1.2

تنظيف التبعيات والأمان

نظّف هذا الإصدار التبعيات، وأزال خطر إرسال بيانات اعتماد بالخطأ إلى المستودع.

  • نُقلت 33 حزمة تشغيل من `devDependencies` إلى `dependencies`.
  • استُبدلت بيانات اعتماد Apple في `eas.json` بمتغيرات بيئة.
  • أُضيفت شهادات التوقيع، وmobileprovision، وkeystore، ومفاتيح الخدمة إلى `.gitignore`.
release notes
v1.1

إصلاح الأخطاء والاستقرار

أول تدقيق كبير للكود: أُصلحت حالات فقدان البيانات، وتعطل الواجهة، وعدة حالات حدّية في التنقل.

  • أصبحت `useCallback` تقرأ الحالة الحالية عبر `useRef`، دون فقدان صامت للبيانات.
  • أصبحت AsyncStorage تُقرأ عبر تحليل آمن، وتُنقّى المبالغ والسمعة عند التحميل.
  • استُبدلت `router.replace` بـ`router.push`، ولم يعد زر “رجوع” يكسر مسار التنقل.
release notes

04 / file map

الملفات الرئيسية

05 / next projects