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 في إعدادات المشروع

💡 نصايح

لو بتفكر تدخل في الذكاء الاصطناعي المحلي، اتبع الخطوات دي:

  1. ابدأ مشروع جديد باستخدام React Native 0.80 وفعّل New Architecture من الأول.
  2. جرب موديل صغير زي Hammer 2.1 أو Phi 4 Mini الأول، وبعدها وسّع حسب احتياجك.
  3. تابع أداء الجهاز وسعة الذاكرة علشان تتأكد إن الموديل مش تقيل على الأجهزة.
  4. استفيد من TypeScript Strict API لتقليل الأخطاء أثناء التطوير.
  5. لو بتستخدم Expo، اتأكد إنك مفعّل Custom Development Client.

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

المدونة

تحديث Laravel 12.18.0

يونيو 17, 2025

تحديث Laravel 12.18.0 صدر نسخه Laravel 12.18.0 فيها شوية ميزات جامدة كده: توابع لتشفير وفك تشفير النصوص باستخدام Stringable ديركت في chain strings...

دليل للأنيميشن المتحركة بالسكّول بس بـ CSS

يونيو 26, 2025

دليل للأنيميشن المتحركة بالسكّول بـ CSS دلوقتي تقدر تربط الأنيميشن بتاعتك بـ السكّول من غير جافاسكريبت — كله CSS بحت. 1. التلات مكونات بتوع...

استخدام useCallback في React: الفوائد، القيود، والممارسات المثالية

يوليو 31, 2025

Hook useCallback في React يُستخدم لإنشاء نسخة ثابتة من دالة (callback) بحيث لا يُعاد إنشاؤها إلا إذا تغيرت الـ dependencies المحددة. الهدف الأساسي م...

إزاي OAuth بيشتغل

يونيو 29, 2025

إزاي OAuth بيشتغل؟ OAuth هو بروتوكول بيخلّي التطبيقات تقدر تدخل على بياناتك بطريقة آمنة من غير ما تدّيهم الباسورد بتاعك. زي مثلًا لو حبيت تطبيق ينشر...

Notifire + FCM مع Laravel

سبتمبر 13, 2025

لو محتاج تبعت إشعارات Push من تطبيق Laravel سواء للموبايل أو للويب، فالحل الأسرع والأبسط هو إنك تستخدم Notifire اللي بيربط Laravel مباشرةً مع Fireba...

تجاوز $fillable بأمان باستخدام forceFill() في Laravel

يوليو 02, 2025

تجاوز $fillable بأمان باستخدام forceFill() في Laravel جربت تستخدم create() في Laravel ولاقيت إن حقول زي role أو status مش بتتحفظ؟ ده بسبب حماية Larav...