معماري فلاتر
متمايزترين و منحصربهفرد ترين چيز در خصوص فلاتر معماري و پياده سازي ميباشد كه آن را به يك پلتفرم بسيار طراحي اپليكيشن در مشهد قادر تبديل مي نمايد.
معماري فلاتر را مياقتدار بهتيتر تيماي از لايههاي منعطف در لحاظ گرفت كه در بالاي سيستم متبوع فناوري قرار ميگيرند.
هركدام از اين لايه ها به 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 همينطور توليد افزونه ها را با به كارگيري از شبكه هايي كه ميتواند بوسيله هر توسعه و گسترش دهنده نو مصرف شود، قابليت و امكان پذير مي نمايد.
براين اساس، به ذكر بي آلايش : يك توشه كدنويسي نمائيد ، و از آن در تمامي جا استعمال نماييد!
بازدید: