طلبت عروض أسعار لتطبيقك، فوصلك عرض يذكر Flutter، وآخر يذكر React Native، وثالث يقول إنه سيبني تطبيقين Native منفصلين بسعر أعلى بوضوح. كل جهة تشرح أن اختيارها هو الأصح، ولكي تقرر يكفي أن تعرف ماذا يعني كل خيار لميزانيتك ولسرعة التحديث ولمن سيصون التطبيق بعد سنتين.
ما معنى تطبيق Native؟
تطبيق Native يعني تطبيقين منفصلين: واحد لـ iPhone بلغة Swift، وآخر لـ Android بلغة Kotlin. كل منهما يستخدم أدوات الشركة المصنعة مباشرة، فيحصل على أفضل وصول لإمكانات الجهاز وعلى الميزات الجديدة فور صدورها.
الثمن واضح: كل ميزة تُبنى مرتين، وتُختبر مرتين، وتحتاج غالباً مطوراً متخصصاً لكل نظام. وحين تريد تعديل شاشة واحدة، يتغير الأمر في مكانين.
ما هو Flutter وما هو React Native؟
كلاهما يكتب شيفرة واحدة تعمل على iOS وAndroid. Flutter من Google ويُكتب بلغة Dart، ويرسم واجهته بنفسه، لذلك يبدو التطبيق متطابقاً تقريباً على النظامين. React Native من Meta ويُكتب بـ JavaScript أو TypeScript، ويعتمد على مكونات النظام نفسه، ويناسب الفرق التي تعمل أصلاً بـ React في مواقع الويب.
التقنيتان مستخدمتان في تطبيقات تجارية كبيرة، ولكل منهما مجتمع واسع ومكتبات جاهزة للدفع والخرائط والإشعارات. الفرق بينهما يهم المطورين أكثر مما يهمك، وما يهمك هو خبرة الفريق الذي سيبني بأي منهما.
ما الفرق الذي يهمك كصاحب عمل؟
| المعيار | Flutter أو React Native | Native لكل نظام |
|---|---|---|
| التكلفة الأولية | أقل عادة، شيفرة واحدة | أعلى، تطبيقان |
| إضافة ميزة جديدة | مرة واحدة للنظامين | مرتان |
| الأداء في تطبيق طلبات أو حجوزات | جيد جداً | جيد جداً |
| ميزات الجهاز الجديدة | تصل بعد أن تدعمها المكتبات | متاحة مباشرة |
| إيجاد مطور بديل | متاح | تحتاج مطورين لكل نظام |
في أغلب التطبيقات التجارية التي نبنيها لعملاء في الأردن والسعودية، شيفرة واحدة للنظامين هي الخيار المنطقي. وهذا أحد العوامل التي نشرحها في ما الذي يحدد تكلفة التطبيق.
متى يستحق Native تكلفته الأعلى؟
حين يعتمد التطبيق على قدرات الجهاز بعمق أو يحتاج أداءً عالياً في كل لحظة. أمثلة: ألعاب ثقيلة، معالجة صوت أو فيديو لحظية، ربط بأجهزة عبر Bluetooth لها بروتوكولات خاصة، أو ميزات خاصة بنظام واحد مثل الساعة الذكية والودجات المعقدة.
وهناك حالة أبسط: إذا كان التطبيق داخلياً لموظفيك ويعمل على أجهزة Android فقط تشتريها الشركة، فتطبيق Native لنظام واحد قد يكون أوضح وأرخص من أي حل آخر.
وإذا كان لديك فريق تقني داخلي يعمل بلغة معينة، فخذ خبرته في الحساب. التطبيق سيُصان سنوات، ومن الأسهل أن يفهمه فريقك أو يستلمه منك لاحقاً إن كان مبنياً بتقنية يعرفها.
هل تصلح الشيفرة نفسها للموقع ولوحة الإدارة؟
جزئياً. Flutter يستطيع بناء نسخة ويب من التطبيق، وهناك مكتبات تجعل React Native يعمل في المتصفح. هذا مفيد لبعض الأدوات الداخلية، لكنه نادراً ما يكون الخيار الأفضل لموقع عام يجب أن يظهر في Google ويُفتح بسرعة.
لوحة الإدارة التي يعمل عليها فريقك من الحاسوب تُبنى عادة كتطبيق ويب منفصل. ما يتشارك فعلاً بين التطبيق والموقع واللوحة هو الخادم والواجهة البرمجية API وقاعدة البيانات، وهذا الجزء هو الأثقل في أغلب المشاريع. إذا بُني جيداً، تستطيع لاحقاً تغيير شاشات التطبيق أو تقنيتها دون أن تعيد بناء كل شيء.
هل تدعم هذه التقنيات العربية جيداً؟
نعم، الثلاثة تدعم اللغة العربية والاتجاه من اليمين إلى اليسار. المشاكل التي نراها تأتي من التنفيذ: أسهم لا تنعكس، أرقام وتواريخ مختلطة الاتجاه، خطوط عربية غير مريحة في الأحجام الصغيرة، ونصوص تنقطع لأن الشاشة صُممت للإنجليزية أولاً. اطلب من أي جهة أن تريك تطبيقاً عربياً بنته وتجربه بنفسك على هاتفك.
ما الذي تسأله لمن يعرض عليك التقنية؟
إجابات هذه الأسئلة تخبرك أكثر من اسم التقنية نفسه:
- لماذا اخترتم هذه التقنية لتطبيقي تحديداً؟
- هل سأملك الشيفرة المصدرية وحسابات المتاجر باسم شركتي؟
- لو توقف التعاون، هل يستطيع مطور آخر أن يكمل العمل بسهولة؟
- كيف تتعاملون مع تحديثات iOS وAndroid السنوية، وكم تكلف؟
- هل يمكن أن أجرب تطبيقاً سابقاً لكم بنفس التقنية؟
الإجابة المقنعة عن السؤال الأول تذكر شيئاً من تطبيقك أنت: عدد المستخدمين، أو ميزة في الجهاز، أو نظام يجب الربط معه. أما الإجابة العامة فتعني غالباً أن الجهة تبني بتقنية واحدة لكل المشاريع، وهذا لا بأس به إن كانت تناسب مشروعك. وتابع ما يحدث بعد الإطلاق في صيانة التطبيق وتحديثات الأنظمة.
نختار التقنية بحسب ما يحتاجه التطبيق ضمن خدمة تطبيقات الجوال. أرسل لنا وصف تطبيقك أو العروض التي وصلتك، ونشرح لك الفرق بينها بلغة واضحة.
أسئلة يطرحها شركاؤنا
هل التطبيق المبني بـ Flutter أبطأ من Native؟
في التطبيقات التجارية المعتادة مثل الطلبات والحجوزات والمتاجر، لا يلاحظ المستخدم فرقاً عادة. الفرق يظهر في التطبيقات الثقيلة مثل الألعاب ومعالجة الفيديو اللحظية.
هل أستطيع تغيير التقنية لاحقاً؟
ممكن، لكنه يعني إعادة كتابة التطبيق في الغالب. لذلك يستحق القرار بعض الوقت في البداية، وأهم ما فيه أن تملك الشيفرة المصدرية وأن تكون التقنية معروفة لمطورين آخرين.
أيهما أرخص في الصيانة؟
شيفرة واحدة للنظامين تعني عادة عملاً أقل في كل تحديث. لكن تحديثات Flutter وReact Native نفسها تحتاج متابعة، فلا تتوقع صيانة بلا تكلفة في أي خيار.