قاعدة كود واحدة ترسم بكسلاتها بنفسها — iOS وأندرويد متطابقان، يُطلقان معاً.
Flutter هي عُدّة واجهات Google لبناء تطبيقات مُترجَمة أصلياً من قاعدة شيفرة Dart واحدة. وعلى خلاف الأُطر التي تغلّف المكوّنات الأصلية، يرسم Flutter كل بكسل بنفسه عبر محرّكه الخاص (Impeller) — ولهذا يبدو تطبيق Flutter ويتحرّك بالشكل نفسه تماماً على هاتف Android عمره ثلاث سنوات كما على أحدث iPhone.
We reach for Flutter when a single codebase is the right call for the product — and go fully native when it isn't. Where we do use it, we pair it with native Swift/Kotlin modules when a package falls short — payments SDKs, background audio, IoT bridges — so clients get cross-platform economics without cross-platform compromises.
السؤال الحقيقي ليس أبداً «هل Flutter جيّد؟» — بل Flutter مقابل React Native مقابل الذهاب إلى الأصلي بالكامل. وهكذا نرسم الخطّ.
| العنصر | Flutter | React Native | Native (Swift / Kotlin) |
|---|---|---|---|
| اللغة | Dart | JavaScript / TypeScript | Swift & Kotlin |
| كيف تُرسَم الواجهة | محرّك عرض خاص — متطابق بالبكسل على كل جهاز | يُترجَم إلى مكوّنات أصلية حقيقية لكل منصّة | مكوّنات المنصّة الخاصة، مباشرةً |
| الأداء | مُترجَم إلى شيفرة آلة؛ وحركة 60–120 إطاراً/ثانية هي القاعدة | سريع، لكن جسر JavaScript قد يتلكّأ تحت الحِمل الثقيل | السقف — لا شيء بينك وبين العتاد |
| شيفرة مشتركة عبر المنصّات | ~95% — الواجهة مشمولة | ~85% — الواجهة مشتركة في معظمها، تبقى خصوصيات المنصّة | 0% — قاعدتا شيفرة، وفريقان |
| مظهر المنصّة وإحساسها | واجهة متّسقة تضع العلامة أولاً؛ تحاكي المنصّة عند الحاجة | الأقرب إلى الإحساس الأصلي جاهزاً | أصلي تماماً، دائماً |
| التوظيف والمنظومة | مجموعة كفاءات أصغر، وحزم أصلية قوية جداً | ضخمة — أي مطوّر React يمكنه المساهمة | عميق لكنه موزّع على فريقين متخصّصين |
| تكلفة منصّتين | ≈ 1.1× تطبيق واحد | ≈ 1.2× تطبيق واحد | ≈ 1.9× تطبيق واحد |
في 8 من كل 10 مشاريع نراها، يكون Flutter هو القرار الصحيح: فريق واحد، ومسار إصدار واحد، ولا انحراف بصري بين المنصّات. ولا نتجاوزه إلا حين تتوقّف حياة التطبيق على قدرة أصلية حصرية.
Tell us what you're building. We'll tell you honestly whether Flutter is the right tool for it.