مشخصات مقاله
معماری فلاتر (flutter)
فلاتر یک فریمورک محبوب و قدرتمند توسعه نرمافزار از گوگل است که برای ساخت برنامههای موبایل، وب و دسکتاپ طراحی شده است. این فریمورک با ارائه ابزارهای مختلف و یک سیستم ویجتبنیان، توسعه برنامههای زیبا و کارآمد را به شیوهای ساده و موثر ممکن میسازد. در این مقاله، به بررسی اجزای اصلی معماری فلاتر خواهیم پرداخت، که شامل Flutter Engine، Foundation Library، ویجتها و ویجتهای خاص طراحی میشوند. این اجزا چگونه با هم کار میکنند تا یک تجربه برنامهنویسی یکپارچه و قدرتمند را فراهم کنند، توضیح داده خواهد شد. همچنین، به بررسی نحوه مدیریت تعاملات کاربری و وضعیت برنامهها در فلاتر خواهیم پرداخت، تا درک بهتری از قابلیتهای این فریمورک به دست آید.
در این قسمت قصد داریم به معماری فریمورک فلاتر بپردازیم. معماری فلاتر عمدتاً از چهار جزء تشکیل شده است.
- 1. Flutter Engine
- 2. Foundation Library
- 3. Widgets
- 4. Design Specific Widgets
Flutter Engine
این موتور کلیدی است که کدهای برنامههای فلاتر را اجرا میکند و بر پایه زبان C++ ساخته شده است. به کمک کتابخانه گرافیکی Skia، مسئول نمایش گرافیکها و انیمیشنهاست.
Foundation Library
مجموعهای از ابزارها و کتابخانهها به زبان Dart که به توسعهدهندگان کمک میکند برنامههای فلاتر را بسازند. این کتابخانهها بنیانی برای ساخت ویجتها و سایر جزئیات برنامه هستند.
Widgets
در فلاتر، ویجتها قطعات اصلی رابط کاربری هستند. هر چیزی در برنامه به شکل ویجت است و ویجتها میتوانند شامل ویجتهای دیگر نیز باشند.
در فلاتر، همه چیز یک ویجت می باشد که مفهوم اصلی این فریم ورک است. ویجت در فلاتر اساساً یک جزء رابط کاربری است که بر نمای و رابط برنامه تأثیر می گذارد و آن را کنترل می کند. ویجت یک توصیف غیرقابل تغییر بخشی از رابط کاربری است و شامل گرافیک، متن، اشکال و انیمیشن هایی است که با استفاده از ویجت ها ایجاد می شوند. ویجت ها مشابه اجزای React هستند.
در Flutter، برنامه خود یک ویجت است که شامل بسیاری از ابزارک های فرعی است. این بدان معناست که برنامه ویجت سطح بالایی است و رابط کاربری آن با استفاده از یک یا چند children widgets ساخته شده است که شامل ویجت های فرعی فرزند است. این ویژگی به شما کمک می کند تا به راحتی یک رابط کاربری پیچیده ایجاد کنید.
می توانیم آن را با استفاده از مثال hello world ایجاد شده در بخش قبل درک کنیم. در ادامه قصد داریم مثال را با نمودار زیر توضیح دهیم.

در مثال بالا می بینیم که تمام اجزاء ویجت هایی هستند که حاوی ویجت های فرزند هستند. بنابراین، برنامه Flutter خود یک ویجت است.
طراحی ویجت های خاص
فلاتر دو مجموعه ویژه از ویجتها دارد: یکی برای طراحی متریال گوگل که در اندروید استفاده میشود و دیگری برای سبک کوپرتینو که در iOS به کار میرود. این ویجتها ظاهر برنامهها را متناسب با سیستم عامل هدف میسازند.
Gestures
اینها به برنامههای فلاتر اجازه میدهند که به تعاملات کاربران مثل لمس و کشیدن پاسخ دهند.
State Management
بخشی از فلاتر که مربوط به مدیریت تغییرات در دادهها یا وضعیت برنامه است. وقتی دادهها تغییر کنند، ویجتها به طور خودکار بروزرسانی میشوند.
لایه ها (Layers)
لایهها مفهوم مهمی از فریمورک فلاتر هستند که از نظر پیچیدگی در دستههای متعددی دستهبندی می گردند و در رویکرد بالا به پایین مرتب میشوند. بالاترین لایه رابط کاربری اپلیکیشن است که مخصوص پلتفرم های اندروید و iOS است. دومین لایه بالاتر شامل تمام ویجت های Flutter است. لایه بعدی لایه اجرا است. سپس، لایهها به Gestures، foundation library، engineو در نهایت کدهای ویژه پلتفرم اصلی پایین میروند. نمودار زیر لایه های توسعه اپلیکیشن Flutter را مشخص می کند.
