معماري فلاتر
متمايزترين و منحصر ترين چيز در خصوص فلاتر معماري و پياده سازي ميباشد كه آن را به يك پلتفرم بسيا طراحي اپليكيشن در مشهد ر قوي تبديل مي نمايد.
معماري فلاتر را مياقتدار بهتيتر گروهاي از لايههاي منعطف در لحاظ گرفت كه در بالاي سيستم متبوع فناوري قرار مي گيرند.
هر كدام از اين لايه ها به Flutter اذن ميدهد تا پياده سازي نرم افزار را از پلتفرم underlying به فريمورك Flutter كه قادر است بوسيله توسعه و گسترش دهندگان غرض قرار گيرد، انتزاعي نمايد.
فلاتر حول شالوده لايه ها سازماندهي گرديده است.
هر لايه مبتني بر لايه پيشين تاسيس شده است.
از نمودار صورت تحت قادر خواهيم بود بخش سطح ذيل Flutter را يك موتور درست شده در C++ مشاهده كنيم.
اين نگهباني از رندر سطح تحت را با به كارگيري از كتابخانه گرافيكي Skia Google ارائه ميدهد.
نصيب سطح بالاي نمودار فريموركي ميباشد كه به لهجه دارت مندرج ميباشد.
اين كتابخانه براي مدير برنامه كودك ، حركات ، رندر ، ويجت ها و مورد ها ديگر آماده مي نمايد.
با تك تك اين لايه ، بسطدهنده ميتواند با استعمال از اركان در صدر با كد كمتر شغل هاي بيشتري اعمال دهد يا اين كه براي سفارشي كردن بعضي رفتارهاي نرم افزار خويش به ذيل برود.
در شالوده پلتفرم، embedder پلتفرم “close to the metal” ايفا ميشود و به صورت غيروابسته براي هر سكوي هدفي پياده سازي گرديده است كه فلاتر روي آن اعمال ميشود.
نقش اساسي Embedder ارائه كلاسها و كتابخانههاي ضروري ميباشد كه مستقيماً با سيستم غرض تعامل دارا هستند.
در سطح آجل سلسله مراتب فلاتر را داريم ، كه مسئول بخش اعظمي از خصوصيت هاي پر رنگ پلت هيبت ميباشد.
در قلب اين rendering engine ميباشد كه رابط كاربري Flutter و ويجتها را تقويت مينمايد.
كامپوننت هاي مرتبطي كه وارد موتور فلاتر ميشوند دربرگيرنده كانال ، هواخواهي از پلاگين ، فولدرهاي ريل تايم و كامپايلر براي گويش دارت ميباشند.
سيستمها و كتابخانههاي ضروري كه اذن ميدهند كد فلاتر پيش از رابطه با سيستم underlying ، از روش embedder ، جاري ساختن گردد ، در اينجا گنجانده گرديدهاند.
در تعامل با موتور، بالاترين لايه در معماري Flutter خويش فريمورك ميباشد.
گسترش دهندگان لايه Flutter نسبتاًً آحاد مجال خويش را صرف تايپ كردن ورودي در آن مي نمايند ، اين لايه همينطور يك كوتاه نويسي شل ميان پيشرفت دهندگان براي ارجاع به Flutter SDK تحت عنوان يك تك تك ، ارائه ميدهد.
درين لايه فريمورك ، ويجتهاي رابط كاربري ، كامپوننت هاي نرم افزار و رابطهايي قرار داراهستند كه به ايجاد كرد اپهاي كراس پلتفرم ميپردازند.
بر حسب بايستگي ، فريمورك Flutter مشتمل بر كامپوننت هاي diverging UI هم براي استاندارد پياده سازي متريال گوگل (اين نوع پياده سازي خاص اندرويد ميباشد كه به صورت كلي در همگي اپليكيشن هاي اندرويد مشاهده ميكنيم.) و هم براي كتابخانه هاي پياده سازي Cupertino اپل (اين نوع پياده سازي منحصر iOS ميباشد كه به صورت كلي در كليه نرم افزار هاي iOS مشاهده ميكنيم.) ميباشد.
معماري مدل layered component فلاتر به نرم افزارها اذن ميدهد تا نسبتاً متمركز و بي آلايش در كوشش خويش بمانند.
اين اذن ميدهد تا صرفا كاپوننت هاي نرمافزار را كه براي اجراي اپ اصلي مورد نياز ميباشد ، درج نمايد، به استثناي نصيب هايي كه آن ها نيازي ندارند و به كارگيري نميكنند.
مقايسه فلاتر با بقيه فريمورك ها
در نصيب انتها قصد داريم فلاتر را با بقيه فريمورك هاي حريف خويش يعني react native و xamarin مقايسه كنيم.
اما قابل ذكر ميباشد ما در نوشتهي علمي ي شناخت با زامارين در اكثري از مناطق اين مقايسه را با دقت بر روي زامارين اعمال داديم.
البته درين قسمت تمركز ما بر روي فلاتر و قصد ارائه ي مورد ها بيشتري براي مقايسه هستيم.
مقايسه با react native
بياييد يك نمونه از يك منش كراس پلتفرم در حيث بگيريم تا ببينيم اين فريمورك ها چه كاستي هايي ميتوانند داشته باشند.
Xamarin با به كارگيري از ويندوز به بسط ي نرمافزار هاي كراس پلتفرمي ياري مي نمايد كه از حيث فايده وري و مجال كامپايل چندان ريلكس وجود ندارد.
هنگامي به پلتفرمهاي ديگر نگاه مي كنيم ، React Native را مياقتدار تحت عنوان يك كدام از شايسته ترين فريمورك هاي كراس پلتفرم در لحاظ گرفت، ولي به شدت به كامپوننت هاي OEM متكي ميباشد.
React Native معني پل را در سيستم هاي WebView بسط ميدهد و از آن خير صرفا براي خدمات ، بلكه براي تشكيل داد ويجت ها نيز به كار گيري مي نمايد.
اين حقيقتاً از حيث عملكردي خطرناك ميباشد.
مثلا ، ممكن ميباشد يك كامپوننت صدها توشه در حين يك كارتون ساخته گردد ، البته به جهت گسترش مضمون پل ، اين كامپوننت ممكن ميباشد تا حد متعددي نمايد خواهد شد.
اين قادر است به اشتباهات ديگري نيز سبب ساز گردد، به خصوص در اندرويد كه متفرق ترين سيستم استدلال ميباشد.
Flutter در اين زمينه در مقايسه با فريمورك هاي ديگر بسيار خوب شغل مي نمايد ، چون نرم افزار هاي تشكيل شده با اين فريمورك مانند جاوا اسكريپت به مكان JIT (Just In Time) با AOT (Ahead Of Time) كامپايل ميگردد.
همينطور معنا پل را حذف مي نمايد و به پلتفرم OEM متكي وجود ندارد.
اين به كامپوننت هاي سفارشي اذن ميدهد تا از مجموع پيكسل هاي مو جود در برگه استعمال نمايند.
اين يعني چي ؟ اصولاً بدين معنا ميباشد كه نرم افزار در هر ورژن از اندرويد و iOS يكسان اكران ميدهد.
در كل مي اقتدار اذعان كرد Flutter پل و پلتفرم OEM را حذف كرد و به مكان آن از Widgets Rendering براي شغل با canvas و event ها استفاده نمود.
و از Platform Channels براي استعمال از خدمات به كار گيري مي نمايد.
خلال اين ، به كار گيري از API هاي پلتفرم با mesغير مجاز مي باشدing system ناهمزمان سخت وجود ندارد ، بدين مفهوم كه در حالتي كه نياز به استعمال از يك خصوصيت خاص اندرويد يا اين كه iOS داريد، ميتوانيد آن را به راحتي ايفا دهيد.
Flutter همينطور توليد افزونه ها را با به كار گيري از شبكه هايي كه ميتواند به وسيله هر بسط دهنده تازه مصرف شود، قابليت پذير مي نمايد.
براين اساس، به ذكر معمولي : يك توشه كدنويسي فرمائيد ، و از آن در تمامي جا به كارگيري فرماييد!
بازدید: