Flutter مجموعة أدوات من Google لبناء تطبيقات iOS وAndroid من قاعدة كود واحدة. ترسم واجهتها بنفسها بدل استخدام عناصر كل منصة الأصلية، ما يعني أن التطبيق يبدو ويتصرف بشكل متطابق على الاثنين — ويُطلق في نحو 60٪ من الوقت الذي يستغرقه تطبيقان أصليان.
ما هي Flutter؟
معظم أدوات تعدد المنصات تترجم كودك إلى عناصر كل منصة الأصلية، ما يعني أن الكود نفسه ينتج نتائج مختلفة بدقة على iOS وAndroid وتقضي وقتًا حقيقيًا في التوفيق بينها. أما Flutter فيفعل شيئًا مختلفًا: إذ يأتي بمحرك عرض خاص به ويرسم كل بكسل بنفسه.
والنتيجة أن تطبيق Flutter متطابق فعلًا على المنصتين. فالزر هو الزر نفسه، والحركة تعمل بالسرعة نفسها، والتخطيط ينكسر عند العرض نفسه. ولشركة تملك نظام تصميم تريد احترامه، يستحق ذلك كثيرًا — فالبديل تطبيقان ينحرفان عن بعضهما عبر ثلاث سنوات من فروق منصات صغيرة.
وهو مكتوب بلغة Dart، وهي غير لافتة بمعنى جيد: فمن يعرف Java أو C# أو TypeScript يقرؤها فورًا.
متى نختار Flutter
حين يجب أن تغطي الميزانية المنصتين. فتطبيقان أصليان يعنيان قاعدتَي كود وفريقين ومجموعتَي أخطاء؛ وFlutter يعني واحدًا من كل. ولمعظم شركات الخليج، هذا الفارق يحسم ما إذا كان التطبيق سيوجد أصلًا.
وحين تكون الواجهة هوية المنتج لا هوية المنصة. فتطبيق حجز، أو ولاء، أو توصيل — هذه تريد أن تبدو كالعلامة لا كـ iOS. وFlutter يرسم ما صُمم بالضبط.
وحين يجب أن يبقى التطبيقان متزامنين. فميزة تُطلق مرة تظهر على المنصتين في آن، ما يزيل الوضع المألوف حيث يتأخر Android بثلاثة إصدارات لأنه ليس أولوية أحد.
متى لا نستخدم Flutter
حين يعتمد التطبيق على شيء تجيده منصة واحدة فقط — تكامل عميق مع HealthKit، أو ARKit، أو CarPlay، أو رفيق Apple Watch. يستطيع Flutter الوصول إلى الكود الأصلي عبر إضافات، لكن إن كان نصف التطبيق يفعل ذلك فالأصلي كان الجواب الصادق.
وحين يجب أن يبدو التطبيق كالمنصة بلا لبس. فبعض الجماهير يلاحظ، وتطبيق مصرفي يرسم عناصره بنفسه قد يُقرأ كشيء «ليس تمامًا» بشكل يكلّف ثقة.
ولتطبيق بسيط جدًا هو في جوهره موقع في غلاف. فتجربة ويب جوال مبنية جيدًا تكلّف أقل ولا تحتاج مراجعة متجر.
ما الذي نبنيه بـ Flutter
تطبيقات حجز وطلب
حيث يكون التطبيق هو المعاملة: اختر، وجدول، وادفع، وتتبع. المتجران من بناء واحد، مع اختبار مسار الدفع على أجهزة حقيقية على المنصتين قبل التقديم لا بعد أول رفض.
تطبيقات ميدانية وللسائقين
تطبيقات تُستخدم أثناء التنقل، على اتصالات سيئة، وغالبًا على أجهزة Android رخيصة. تخزين يعمل دون اتصال أولًا فتُزامَن مهمة أُنجزت في قبو حين تعود الإشارة بدل ضياعها — وهذا هو المتطلب الفعلي خلف معظم التطبيقات الميدانية.
تطبيقات عملاء لمنصة ويب قائمة
حين يعمل الموقع أصلًا وتريد الشركة حضورًا في المتاجر. يتحدث التطبيق إلى الواجهة البرمجية نفسها التي يستخدمها الويب، فيوجد مصدر حقيقة واحد وبلا واجهة خلفية ثانية تبقى متزامنة.
تطبيقات العربية أولًا
دعم الاتجاه من اليمين كامل ومدمج في الإطار لا مضاف، فينعكس التخطيط العربي بشكل صحيح بدل أن يكون نسخة مترجمة من تصميم من اليسار بنص مُبدَّل.
كيف نطلق مشاريع Flutter
التقديم للمتاجر جزء من المشروع لا فكرة لاحقة. فمراجعة Apple ترفض التقديمات الأولى روتينيًا لأسباب متوقعة — إقرارات خصوصية ناقصة، أو تسجيل دخول بلا مسار حذف حساب، أو لقطات بأحجام خاطئة — ونعالجها قبل التقديم بدل خسارة أسبوع لرفض.
وحساباتك أنت، وقوائم تطبيقك أنت، من البداية. فتطبيق منشور تحت حساب وكالة رهينة، وقد طُلب منا إنقاذ عدة تطبيقات كذلك.
ويُختبر على أجهزة Android منخفضة الفئة حقيقية لا على محاكٍ فقط. فهناك تكمن مشاكل الأداء.
ما تكلّفك Flutter
حجم التطبيق أكبر من الأصلي — فـ Flutter يشحن محرك عرضه مع التطبيق، ما يضيف قدرًا ملموسًا إلى التنزيل. وفي سوق يراقب فيه المستخدمون حصة بياناتهم، يستحق ذلك المعرفة قبل الالتزام.
وأي شيء أضافته المنصة الشهر الماضي يحتاج إضافة قبل أن يستطيع Flutter استخدامه، وأحيانًا لا توجد تلك الإضافة بعد فنكتبها. وهذه كلفة حقيقية وإن كانت عارضة.
وتجمّع توظيف Dart صغير. فإن كانت الخطة فريق جوال داخليًا في دبي، فلـ React Native مطورون متاحون أكثر، وسنقول ذلك.
حجم التطبيق أكبر من نظيره الأصلي — فالإطار يُطلق مع التطبيق. وعلى جهاز Android منخفض المواصفات بمساحة محدودة يهم ذلك أحيانًا، وفي معظم الأسواق لا يهم.
والتكامل العميق مع المنصة هو القيد الحقيقي. فالأدوات وتطبيقات الساعة والعمل الخلفي المعقد وكل ما يجب أن يبدو تمامًا كنظام التشغيل هي حيث يستحق البناء الأصلي كلفته، وسنقول ذلك بدل مطّ Flutter لتغطيته.
أسئلة تُطرح علينا عن Flutter
تبدأ تطبيقات الجوال من 25,000 دولار وتقع عادةً بين 35,000 و80,000 للمنصتين، حسب عدد الشاشات، وهل يعمل دون اتصال، وما الذي يتكامل معه. وتطبيقان أصليان يغطيان النطاق نفسه يكلّفان عادةً أكثر بنسبة 60–80٪.
نعم — آلاف منها على App Store، بما فيها من شركات كبيرة جدًا. فـ Apple ترفض التطبيقات لأسباب تتعلق بالسياسات لا بالأداة المستخدمة. وأسباب الرفض الشائعة إقرارات الخصوصية وحذف الحساب، ونعالج الاثنين قبل التقديم.
Flutter إن وجب أن يبدو التطبيق متطابقًا على المنصتين ومطابقًا لعلامتك تمامًا. وReact Native إن كان لديك فريق React للويب أصلًا، فهما يتشاركان اللغة وكثيرًا من المنطق. وكلاهما ناضج؛ والعامل الحاسم عادةً فريقك الحالي.
لمعظم تطبيقات الأعمال، نعم — لا يستطيع المستخدمون التمييز. وحيث يظهر الفرق هو الأطراف: إيماءات خاصة بالمنصة، وتكامل عميق مع النظام، وأدوات. وإن كانت تلك تهم منتجك، فذلك حجة للأصلي، وهي حجة حقيقية.