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.
👏 الخلاصة: التحديث ده مش مجرد تحسين، دي خطوة كبيرة تجاه مستقبل التطبيقات الذكية اللي بتشتغل بكفاءة، بدون نت، وبأعلى خصوصية. سواء بتبني تطبيق تعليمي، أداة ذكاء اصطناعي، أو مجرد عايز ترفع أداء مشروعك...
المدونة
يوليو 31, 2025
Hook useCallback في React يُستخدم لإنشاء نسخة ثابتة من دالة (callback) بحيث لا يُعاد إنشاؤها إلا إذا تغيرت الـ dependencies المحددة. الهدف الأساسي م...
أغسطس 03, 2025
أصدرت Laravel النسخة 12.21.0 بمزايا برمجية هامة تساهم في كتابة كود أنظف وأسهل في الصيانة. من أهمها دالة whereValueBetween() الجديدة، بالإضافة إلى...
يوليو 02, 2025
تجاوز $fillable بأمان باستخدام forceFill() في Laravel جربت تستخدم create() في Laravel ولاقيت إن حقول زي role أو status مش بتتحفظ؟ ده بسبب حماية Larav...
يوليو 07, 2025
إزاي نعمل كاش لتقارير بفترة زمنية ثابتة إزاي نولّد تقارير ضخمة في الخلفية باستخدام الـ Job Queues 1. 🧠 كاش للتقارير بفترة زمنية ثابتة لو ع...
أغسطس 06, 2025
عند بناء تطبيقات باستخدام React، هناك حاجة إلى إدارة البيانات التي تتغير نتيجة تفاعل المستخدم أو جلب البيانات من مصادر خارجية. توجد ثلاث وسائل رئيسي...
يوليو 01, 2025
مكونات واجهة المستخدم والتفاعل الأساسية في React Native React Native بتوفرلك مجموعة قوية من المكونات الجاهزة اللي تقدر تستخدمها لبناء تطبيقات موباي...