React Native 0.80 وExecuTorch: بداية قوية للذكاء الاصطناعي المحلي في تطبيقات الموبايل
يوليو 28, 2025🚀 الجديد في React Native 0.80 بالتفصيل
الإصدار React Native 0.80 يعتبر نقطة تحول حقيقية في عالم تطوير تطبيقات الموبايل باستخدام React Native. التحديثات اللي جات في الإصدار ده مش بس بتحسن الأداء، لكن كمان بترفع كفاءة عملية التطوير، وتجهز المشروع للمستقبل من ناحية المعمارية، التوافق مع الأنظمة، والذكاء الاصطناعي المحلي.
🧩 أهم التحسينات اللي جات في React Native 0.80:
- دمج React 19.1: النسخة دي بتدّي ثبات أكتر، وكمان بتقدّم owner stack جديدة بتساعد في تتبع الأخطاء بشكل أوضح وأسهل في أدوات التطوير (DevTools).
- تحسين JavaScript APIs: تم منع استخدام الاستيرادات العميقة (deep imports)، وده هيخلي الكود أنضف وأسهل في التتبع، وكمان هيقلل مشاكل التوافق مع التحديثات الجاية.
- TypeScript Strict API (اختياري حاليًا): تم تقديم مجموعة جديدة من أنواع TypeScript أكثر صرامة، مولدة مباشرة من الكود الأصلي، وده مفيد جدًا للمشاريع اللي بتعتمد على الأمان النوعي في الكود.
- تجميد المعمارية القديمة (Legacy Architecture): بداية من الإصدار ده، الدعم الرسمي للمعمارية القديمة توقف، وكل التحسينات الجاية هتكون مبنية على الـ New Architecture.
- تحسين سرعة البناء على iOS: من خلال استخدام Prebuilt Dependencies، تم تقليل وقت البناء بشكل ملحوظ بنسبة تصل لـ 12%.
- تقليل حجم التطبيق على Android: باستخدام تقنية Interprocedural Optimization (IPO)، تم تقليل حجم الـ APK بحوالي 1 ميجا بايت بدون خسارة أداء.
- Hermes كمحرك افتراضي: بقى Hermes هو محرك JavaScript الرسمي، وتم فصل JavaScriptCore كحزمة اختيارية في حال احتجت تستخدمه.
التحديث ده مهم جدًا لأي فريق بيشتغل على مشاريع طويلة المدى، وخصوصًا المشاريع اللي فيها فريق كبير، أو فيها اعتماد على TypeScript، أو محتاجة استقرار وتوافق مع المستقبل.
🤖 مكتبة ExecuTorch: الذكاء الاصطناعي المحلي بدون إنترنت
ExecuTorch هي مكتبة جديدة من Meta Software Mansion، الهدف منها إنك تقدر تشغل نماذج ذكاء اصطناعي (LLMs) مباشرة على الجهاز، بدون أي اتصال خارجي. الإصدار الحالي v0.4.0 بيقدم دعم لتشغيل موديلات قوية زي: LLAMA 3، Qwen 3، Phi 4 Mini، Hammer 2.1، وغيرهم.
ده معناه إنك تقدر تبني تطبيقات فيها ذكاء اصطناعي فعّال، من غير ما تبعت بيانات للسيرفر، وده له 3 مميزات ضخمة:
- 🔒 خصوصية أعلى، لأن البيانات مش بتخرج من الجهاز.
- ⚡️ سرعة تنفيذ أعلى، لأن مفيش انتظار لرد API خارجي.
- 📶 يعمل Offline، حتى من غير إنترنت.
أهم الخصائص اللي ExecuTorch بتقدمها:
- تشغيل LLMs بشكل كامل على الجهاز.
- دعم Tool Calling، يعني تقدر تخلي النموذج يتفاعل مع الوظائف المحلية جوه التطبيق.
- تحويل صوت لنص (STT) بلغات متعددة.
- دعم Embeddings للبحث أو التصنيف.
🧪 كود عملي: ازاي تستخدم موديل LLAMA مع ExecuTorch
المثال الجاي بيشرح استخدام hook اسمها useLLM
لتشغيل موديل LLM محليًا:
// Example: Using ExecuTorch with LLAMA model
import { useLLM, LLAMA3_2_1B, LLAMA3_2_TOKENIZER, LLAMA3_2_TOKENIZER_CONFIG } from 'react-native-executorch';
const llm = useLLM({
modelSource: LLAMA3_2_1B,
tokenizerSource: LLAMA3_2_TOKENIZER,
tokenizerConfigSource: LLAMA3_2_TOKENIZER_CONFIG,
});
تقدر دلوقتي تستخدم llm.run()
وتبعتله input من المستخدم ويرجعلك output من الذكاء الاصطناعي بدون أي اتصال خارجي.
📌 متطلبات تشغيل ExecuTorch
- React Native 0.76 أو أحدث (ويُفضل 0.80)
- تفعيل New Architecture
- Android 13+ أو iOS 17+
- تمكين TurboModules في إعدادات المشروع
💡 نصايح
لو بتفكر تدخل في الذكاء الاصطناعي المحلي، اتبع الخطوات دي:
- ابدأ مشروع جديد باستخدام React Native 0.80 وفعّل New Architecture من الأول.
- جرب موديل صغير زي
Hammer 2.1
أوPhi 4 Mini
الأول، وبعدها وسّع حسب احتياجك. - تابع أداء الجهاز وسعة الذاكرة علشان تتأكد إن الموديل مش تقيل على الأجهزة.
- استفيد من TypeScript Strict API لتقليل الأخطاء أثناء التطوير.
- لو بتستخدم Expo، اتأكد إنك مفعّل Custom Development Client.
👏 الخلاصة: التحديث ده مش مجرد تحسين، دي خطوة كبيرة تجاه مستقبل التطبيقات الذكية اللي بتشتغل بكفاءة، بدون نت، وبأعلى خصوصية. سواء بتبني تطبيق تعليمي، أداة ذكاء اصطناعي، أو مجرد عايز ترفع أداء مشروعك...
المدونة
البرمجة الكائنية (OOP) – المفاهيم الأساسية
أغسطس 09, 2025
البرمجة الكائنية التوجه (Object Oriented Programming - OOP) هي أسلوب حديث في تطوير البرمجيات يُقسّم التطبيق إلى وحدات تسمى كائنات (Objects) تتفاعل م...
إزاي OAuth بيشتغل
يونيو 29, 2025
إزاي OAuth بيشتغل؟ OAuth هو بروتوكول بيخلّي التطبيقات تقدر تدخل على بياناتك بطريقة آمنة من غير ما تدّيهم الباسورد بتاعك. زي مثلًا لو حبيت تطبيق ينشر...
حلل مشروع Laravel بـ Introspect
يوليو 01, 2025
حلل كود Laravel باستخدام Laravel Introspect لو بتعمل Refactor كبير أو بتبني أدوات Dev، Laravel Introspect بيسمحلك تستعلم عن الكود: فيوز، مودلز، رو...
إتقان التكرار غير المتزامن في JavaScript باستخدام Array.fromAsync()
يوليو 27, 2025
🔍 ما هي Array.fromAsync() بالضبط؟ Array.fromAsync() هي دالة static من كائن Array، شبيهة بالدالة Array.from()، لكن الفرق الجوهري هو أن Array.fromAs...
مقارنة بين Scopes + Traits × UseEloquentBuilder في Laravel
يوليو 13, 2025
في Laravel، بنحتاج دايمًا نكتب استعلامات شبه بعض في أكتر من مكان. Laravel بتوفر طريقتين أساسيين نقدر نستخدمهم علشان نرتّب الاستعلامات دي: Scopes + Tra...
الدليل الكامل لتحديثات ECMAScript 2025 للمطورين
يوليو 06, 2025
📘 شرح تفصيلي لتحديثات ECMAScript 2025 جميع مميزات ECMAScript 2025، مع أمثلة عملية وفهم ليه الميزة دي مهمة لأي مبرمج واجهة أمامية. ١. مجموعات مسما...
