ما هي نقطة قوة فلاتر ؟

ثريدات برمجية 243 ما هي نقطة قوة فلاتر ؟

لو لسة مش عارف إيه نقطة قوة فلاتر، واللي خليته أقوى من كل ال Cross platforms التانية وبفرق واضح، ومن أكتر التقنيات الواعدة، يبقى البوست دة ليك. مبدأياً فيه اختصارين محتاجين نعرف بيشيروا لإيه: الأول : OS ودة بيشير للoperating system معين، يعني أندرويد مثلاً أو IOS

الثاني : OEM widgets ودي معناها original equipment manufacturer يعني ال Widgets الخاصة بنظام معين، كمثال مثلاً، الآب بار في الأندرويد مثلاً. دلوقتي الكود ال Native كان بيتكتب إزاي؟ بص على الصورة الأولى، هتلاقي إني بكتب كود بالجافا مثلا، فبيتحول مباشرةً لل OEM widget الخاصة بالأندرويد،

جميل؟ جميل.. المشكلة بقى بتحصل في الصورة التانية، إني لما أكتب كود بالجافا وآجي أحاول أنفذه على ال IOS OEM widgets مش هينفع، زي ما في الصورة باين كدة كأن مثلث بيدخل في مربع، يعني مش هينفع، آخره يشتغل على الأندرويد اللي هو مخصص ليه. ال cross platform بقى عمل إيه؟ بص في الصورة

التالتة، هناخد مثال React native مثلاً، مطورين الريأكت قالوا إنهم هيعملوا Bridge (يعني جسر) بين الكود وبين ال OEM widgets وظيفة الجسر دة إنه يحول الكود لكود native بالظبط على حسب النظام اللي شغالين عليه سواء أندرويد أو IOS .. ال bridge فكرة جميلة وجديدة، ولكنها بطيئة بعض الشيء،

نظراً لإنك بتضطر تعدي عليها الأول وبعدين تحول الكود، أضف إلى ذلك إن من عيوبها إن أحيانا ال OEM widgets مابتبقاش متشابهة في OS المختلفة (يعني شكل ال App bar مثلا مش شبه بعضه في IOS والأندرويد والويب مافيهوش أصلاً) فبالتالي التطبيق لما بتخلصه وتيجي تجربه على OS مختلفة هتلاقي شكله مختلف

قنية flutter بقى عملت إيه؟ قالتلك ارمي ال OEM widgets دي خالص ماتلزمناش (الصورة الرابعة)، فلاتر استخدمت Engine قوي جداً اسمه Skia بيعمل Rendering (بيرسم) ال widget هو بنفسه، مالهوش دعوة أندرويد ولا IOS ، بيرسم كله بنفس الشكل بغض النظر عن ال OS المستخدم، وبالتالي مش

بيوفر وقت ال Bridging لأ دة كمان هيقدر يدعم OS مختلفة زي الويب والديسكتوب، وكمان هيبقى على كل ال Platforms بنفس الشكل.

كتبه @p_4all