جهش به محتوا
ورود کاربران
وبلاگآموزش نرم‌افزارفلاتر چیست ؛ بررسی مزایا و معایب Flutter
هر زمان نیاز به کمک داشتید، در کنار شما هستیم . با ما تماس بگیرید ( 031-3626 0000 ) یا درخواست خود را به صورت آنلاین ثبت نمایید.

فلاتر چیست ؛ بررسی مزایا و معایب Flutter

ساخت برنامه های کامپیوتری در هر پلتفرمی که باشد می تواند جزو آن دسته از داستان ها قرار بگیرد که دردسر های خاص خود را دارد و باید گفت تقریبا در هیچ زمینه ای ساخت یک برنامه کار ساده ای نیست. البته در صورتی که شما آموزش های خود را تکمیل کرده و با دقت و تخصصی روی یک موضوع کار کنید و به آن علاقه داشته باشید، کار سختی هم نخواهد بود! پیشرفت تکنولوژی در ساخت برنامه ها در سال های گذشته با سرعت شگفت آوری نسبت به چند دهه گذشته خود پیش رفته است و کار به جایی رسیده که ساخت برنامه های مختلف روی پلتفرم هایی که هیچ ربطی به هم ندارند در یک پلتفرم امکان پذیر شده است و شما با طراحی یک برنامه می توانید خروجی متعددی را از آن بگیرید. در این مقاله با بررسی اینکه فلاتر چیست قصد داریم یکی از فریم ورک های برنامه نویسی را معرفی کنیم که با استفاده از آن می توان این مورد را به بهترین شکل ممکن پیاده سازی کرد.

گوگل که همیشه در ارائه تکنولوژی های جدید پیشاز بوده است این فریم ورک را بر مبنای یکی از قدیمی ترین امکانات برنامه نویسی یعنی همان Software Development Kit ها که به نام SDK ها شناخته می شوند ارائه کرده است. مجموعه امکاناتی که در کنار هم می توانند به برنامه نویس اختیار کار کردن در زمینه های متفاوت را داده و کتابخانه های مورد نیاز آن را در دسترس وی قرار خواهند داد. برای اینکه به صورت کامل درک کنیم که روش کاری فریم ورک فلاتر چیست و این SDK چطور به این قابلیت های سطح بالا دست پیدا کرده است لازم است کمی در مورد اینکه SDK ها چه هستند صحبت کنیم.

 

SDK چیست و به چه دردی می خورد

SDK یا همان Software Development Kit یکی از همراهان همیشگی برنامه نویس ها بوده است و برای خیلی از پلتفرم ها و فریم ورک های مختلف از آن استفاده می شود. در صورتی که شما با پلتفرم هایی مانند جاوا کار کرده باشید قطعا از این بسته های نرم افزاری استفاده کرده اید. این نوع از بسته ها معمولا به صورت یک برنامه پیش نیاز ارائه می شوند و ورژن های مختلف در آنها نقش بسیار مهمی در اینکه فریم ورک مورد نظر شما درست کار بکند و یا نه را دارند. در واقع این بسته های SDK یک مجموعه از ابزار های برنامه نویسی هستند، که بیشتر آنها را کتابخانه های کامپایل شده تشکیل می دهند.

SDK چیست

این کتابخانه ها با اضافه شدن به پروژه شما می توانند قابلیت های پیشرفته ای را به آن اضافه کنند که شما به جای چندین خط کد در زبان پایه صرفا با یک دستور می توانید یک کار چند مرحله ای را انجام دهید. در مورد SDK ها باید گفت که آنها سطوح مختلف را دارند. بعضی از آنها صرفا کتابخانه ها را ارائه می کند، بعضی دیگر از آنها می توانند به عنوان کامپایلر و همینطور دیباگر هم عمل کنند و در بعضی از این SDK ها می توانید به یک فریم ورک نرم افزاری هم برای ساخت برنامه ها دسترسی داشته باشید. به طور کلی می توان گفت که SDK ها طیف گسترده ای از انواع و قابلیت ها دارند.

ویژگی ای که خیلی از این SDK ها دارند این است که به طور خاص برای کار کردن روی یک سیستم عامل و یا سخت افزار خاص ارائه می شوند. از آنجا که کامپایلرها و همینطور معماری سیستم های مختلف می تواند روی کامپایل و تبدیل برنامه به کد زبان ماشین تاثیر داشته باشد این موضوع که یک معماری خاص از سی پی یو و یا یک سیستم عامل خاص از یک SDK ویژه برای یک زبان برنامه نویسی استفاده کند، موضوعی کاملا طبیعی خواهد بود.

به عنوان مثال وقتی که شما برای اندروید برنامه نویسی می کنید باید از یک SDK موسوم به JDK یا همان Java Development Kit استفاده کنید. iOS هم سیستم کاری خود را نیاز دارد که به آن iOS SDK گفته می شود. احتمالا با NET Framework SDK که از آن برای برنامه نویسی روی سیستم ویندوز و برنامه های آن چه برای ویندوز فون و چه برنامه های سیستمی استفاده می شود هم آشنایی داشته باشید.(برای اطلاعات بیشتر می توانید به مقاله .NET Core چیست مراجعه کنید.) تمامی این سیستم ها بسته های نرم افزاری ای هستند که با استفاده از آنها می توانید برای فریم ورک خاصی که دارند برنامه بنویسید.

البته بعضی از SDK ها هم وجود دارند که می توان از آنها برای موارد مختلف و قابلیت های ویژه و اضافی استفاده کرد. شرکت های زیادی هستند که قابلیت های جانبی را برای فریم ورک های مختلف ارائه می کنند و می توان گفت که SDK هایی را بدون وابستگی چندانی به سیستم و بیشتر برای برنامه ها و فریم ورک های مختلف ارائه می کنند که می توان از معروف ترین آنها به Facebook، Google، Smaato و همینطور InMobi اشاره کرد. عموم این SDK های نام برده شده که به صورت مستقل از پلتفرم هستند، برای این ارائه شده اند تا امکانات مربوط به تحلیل داده ها را انجام داده و به نوعی برای بررسی رفتار کاربران و تبلیغات مورد استفاده قرار می گیرند.

اما همین موضوع توانست به گوگل ایده ساخت یک SDK را بدهد که علاوه بر تحلیل های رفتاری کاربران می توانست یک برنامه را برای هر فریم ورکی آماده کند. این ایده در فلاتر پیاده سازی شد و اکنون نوبت به آن رسیده است که با هم به بررسی این موضوع بپردازیم که فلاتری چیست و چگونه کار می کند.

 

فلاتر چیست

در پاسخ به این سوال که فلاتر چیست باید بگوییم که یک بسته نرم افزاری یا همان SDK است که به صورت اپن سورس، توسط گوگل ارائه شده است و با استفاده از آن می توان برای طیف وسیعی از سیستم عامل ها برنامه نوشت. این SDK برای اولین بار در چهار سال پیش یعنی در سال 2017 ارائه شد. پروژه ای که گوگل آن را گسترش می داد با نام اولیه Sky شناخته می شد و تنها قرار بود تا یک پلتفرم برنامه نویسی برای زبان اندروید باشد که با استفاده از زبان برنامه نویسی Dart کار می کرد. Dart زبانی سطح بالا است که بیشتر برای فرانت اند ارائه شده است و در بخش های بعدی در مورد آن بیشتر صحبت خواهیم کرد.

فریم ورک فلاتر چیست

روند شروع پروژه Sky و فریم ورکی که دنبال می کرد تقریبا به صورت موازی با زبان Dart پیش می رفت و در سال 2015 کلید خورده بود. در سال 2017 این پروژه برای اندروید به ثمر رسید و تحت نام Flutter ارائه شد. اولین نسخه آپدیت شده و پایدار فلاتر در سال 2018 به نام Flutter 1.0 توسط تیم برنامه نویسی گوگل ارائه شد و ورژن پایدار بعدی که تیم توسعه شانگهای گوگل مسئولیت ارائه آن را بر عهده داشت با نام Flutter 1.12 در سال 2019 ارائه شدند. تمامی این موارد به صورت همگام با SDK ارائه شده برای زبان برنامه نویسی Dart پیش می رفت و وقتی که این SDK در سال 2020 ورژن 2.8 خود را ارائه کرد، فلاتر با ارائه ورژن 1.17 آن را به کار گرفت.

این نسخه را می توان یکی از نسخه های کلیدی و خاص برای این زبان معرفی کرد که با استفاده از آن بهبود های خوبی در کارکرد های مختلف این فریم ورک ظاهر شد که از مهمترین آنها می توانیم به افزایش کارایی در iOS تا حد چشمگیری اشاره کنیم. همینطور در ماه مارس سال 2021 گوگل با ارائه Flutter 2 سیستمی را ارائه کرد که همان کارایی را برای برنامه های ارائه شده روی ویندوز، مکینتاش و همینطور لینوکس را داشت. به طور کلی در مورد اینکه سیستم عامل های پشتیبانی شده توسط فلاتر چیست و برای چه سیستم عامل هایی می توان توسط فلاتر برنامه ساخت می توانیم این لیست را معرفی کنیم:

  1.  اندروید
  2.  آی او اس
  3.  لینوکس
  4.  مکینتاش
  5.  ویندوز
  6.  و همینطور گوگل فوشیما

 

همینطور این فریم ورک یک قابلیت خوب را دارد که می تواند از برنامه های نوشته شده با این فریم ورک در یک سیستم عامل نوعی API در اختیار سایر برنامه های سیستم عامل های دیگر قرار دهد و اینگونه برنامه های سیستم عامل های مختلف می توانند به راحتی با هم تبادل اطلاعات داشته و با استفاده از این رابط های کاربری برنامه نویسی از ماژول های ارائه شده روی سیستم عامل ها به صورت اشتراکی استفاده کنند. در ادامه در مورد اینکه ویژگی های اصلی فلاتر چیست و این فریم ورک از چه امکاناتی استفاده می کند صحبت خواهیم کرد.

 

ویژگی های اصلی فلاتر چیست

تا اینجای کار در مورد اینکه فلاتر چیست و قرار است چه کاری را برای ما انجام دهد صحبت کردیم و دیدیم که این فریم ورک می تواند چه کار هایی را برای ما انجام دهد. اکنون کم و بیش با اینکه ویژگی های فلاتر چیست آشنا شده ایم و دیدیم که این سیستم چه کارهایی را انجام می دهد. اما در مورد اینکه این کارها به صورت تکنیکی با استفاده از چه قابلیتی پیاده سازی می شوند، هنوز حرفی به میان نیامده است و اکنون می خواهیم در مورد آن صحبت کنیم.

ویژگی های اصلی فلاتر چیست

در بین تمامی ویژگی های رنگارنگ و خوبی که فلاتر می تواند به برنامه نویسان خود ارائه کند، اگر بخواهیم بگوییم که ویژگی اصلی فلاتر چیست می توانیم به چهار مورد اصلی اشاره کنیم که زیربنای اصلی تمام کارهایی که فلاتر انجام میدهد را تشکیل می دهند.

این چهار ویژگی کلیدی به این صورت معرفی می شوند:

 

استفاده از پلتفرم و زبان برنامه نویسی Dart

زبان برنامه نویسی دارت یک زبان برنامه نویسی است که توسط گوگل ارائه شد و برای اولین بار در سال ۲۰۱۱ ارائه شد. هدف اصلی این زبان برنامه نویسی این بود که در طراحی رابط کاربری برای اپلیکیشن های موبایل و همینطور وبسایت ها از آن استفاده شود. همینطور این زبان قابلیت ساخت برنامه های سرور و همینطور برنامه های دسکتاپ را دارا بود.

ویژگی های خوبی مانند چند پارادایمه بودن و همینطور به کارگیری کامل OOP یا همان برنامه نویسی شی گرا، و استایل برنامه نویسی با سینتکسی شبیه به زبان برنامه نویسی C باعث شد که این زبان تبدیل به یک زبان قدرتمند شود. دارت این قدرت را دارد که کد های نیتیو و همینطور کدهای JS را کامپایل کند و در واقع می تواند به نوعی کار Node JS را هم انجام دهد.(در صورتی که در مورد Node JS به اطلاعات بیشتری نیاز دارید می توانید به مقاله Node JS چیست مراجعه کنید.)

این زبان به صورت کراس پلتفرم بوده و اگر بخواهیم بگوییم که یکی از مهمترین دلایل پیشرفت فلاتر چیست به همین ویژگی زبان برنامه نویسی Dart اشاره کنیم. پلتفرم Dart در واقع برای فلاتر یک ماشین مجازی را راه اندازی می کند که کدهای این زبان را کامپایل کرده و می تواند آنها را اجرا کند. همینطور این زبان به فلاتر اجازه می دهد تا کد های نوشته شده را در لحظه کنترل کرده و آنها را دیباگ کند.

 

موتور فلاتر یا همان Flutter Engine

یکی دیگر از ویژگی هایی که رشد فلاتر را در پیش داشته است، موتور فلاتر یا همان Flutter Engine است که قدرت خوبی را برای این فریم ورک پیاده سازی می کند. این موتور که با زبان برنامه نویسی C++ برنامه نویسی شده است، کار رندرینگ خود را با استفاده از کتابخانه Skia که گوگل ارائه داده است انجام می دهد. همینطور می تواند یک رابطه قوی بین فلاتر و کتابخانه ها و SDK هایی باشد که برای سیستم های اندرویدی و همینطور iOS ارائه شده اند و امکانات مربوط به آنها را هم برای این سیستم پیاده سازی کرده است.

در مورد این موضوع که وظیفه اصلی موتور فلاتر چیست می توانیم بگوییم که این موتور قرار است کتابخانه های هسته و Core فلاتر، پلاگین های اصلی و همینطور ابزار های لازم برای شروع به کار موتور Dart را راه اندازی کند.

موتور فلاتر چیست

 

کتابخانه اصلی یا Foundation Library

یکی از بزرگترین پشتوانه هایی که فلاتر دارد یک کتابخانه بزرگ به نام Foundation Library است که برای Dart ارائه شده است و به نوعی اصلی ترین بخش در بین سایر کتابخانه هایی می باشد که فریم ورک فلاتر از آنها استفاده می کند. کاری که این کتابخانه انجام می دهد این است که کلاش های پایه و همینطور توابع مختلف را که برای ساخت برنامه ها مورد استفاده قرار می گیرند در اختیار برنامه نویس قرار می دهد.

از مهمترین کلاس ها و توابع ارائه شده توسط این بخش می توان به کلاس های مربوط به راه اندازی API ها که از آنها برای برقراری ارتباط با سایر برنامه ها استفاده می شود نام برد.

 

ویجت های طراحی شده یا Design-Specific Widgets

یکی دیگر از ویژگی های مهمی که می توان در بین ویژگی های اساسی فلاتر جای داد و آن را به عنوان یک عامل قدرتمند معرفی کرد ویجت هایی هستند که می توانند یک گروه کلی از امکانات طراحی را برای فلاتر فراهم کنند. در صورتی که بخواهیم بگوییم کار اصلی این ویجت ها در فلاتر چیست باید گفت که در واقع این ویجت ها همان متریال های مورد نیاز برای طراحی صفحات برنامه ها و فرم هایی است که یک اپلیکیشن با آنها کار خواهد کرد.

در مورد اینکه انواع ویجت های طراحی شده در فلاتر چیست باید دو دسته اصلی را نام برد:

  1. Material Design های طراحی شده با استفاده از زبان طراحی Google که توسط همین شرکت ارائه شده اند.
  2. ویجت های Cupertino که در واقع رابط کاربری ارائه شده برای iOS آنها را منتشر کرده است.

شما بسته به اینکه برنامه ای که در حال ساخت آن هستید بیشتر به کدام یک از این ماژول ها نیاز دارد می توانید ماژول مورد نیاز خود را از بین آنها انتخاب کرده و آن را به کار بگیرید. به طور کلی می توانیم بگوییم که فلاتر از نظر ویجت ها یک کتابخانه قوی را دارد و برای طراحی یک برنامه در آن به مشکلی بر نمی خوریم.

همانطور که دیدیم چهار اصل کلی زبان برنامه نویسی قوی، موتور پردازشی قدرتمند برای فریم ورک، کتابخانه های بزرگ و کامل، و همینطور ویجت های طراحی شده، مواردی هستند که می توان آنها را به عنوان یک پاسخ قاطع به این سوال که اصلی ترین ویژگی های فلاتر چیست ارائه کرد و می توان گفت که هر فریم ورکی که چنین ویژگی هایی داشته باشد یک فریم ورک آینده دار خواهد بود که ارزش کار کردن و همینطور آموزش را دارد.

 

بنا به روال معرفی هر فریم ورکی، وقت آن رسیده است که این موضوع را بررسی کنیم که مزیت استفاده از فلاتر چیست و چرا ما باید خود را با فریم ورکی درگیر کنیم که تازه وارد این حوزه شده است و معلوم نیست که قرار است به کجا برود و آیا اصلا پشتیبانی خواهد شد، و این موضوع که اصلا چرا باید خود را با زبان برنامه نویسی جدیدی درگیر کنیم. در ادامه به بررسی این سوال که مزایای فلاتر چیست خواهیم پرداخت.

 

مزایای فلاتر چیست

تا اینجای مقاله به صورت ضمنی ویژگی های فلاتر را بررسی کردیم و دیدیم که این سیستم چه قابلیت ها و ویژگی هایی را در اختیار ما قرار می دهد، فلاتر مزیت های زیادی را دارد که تا اینجا دیدیم نوشتن برنامه ها برای همه پلتفرم ها و سیستم عامل ها مهمترین آن است. در این قسمت می خواهیم سایر مزیت هایی را بررسی کنیم که یک برنامه نویس می تواند با استفاده از این فریم ورک بدست آورد را بررسی کنیم.

به طور کلی در پاسخ به اینکه مزایای فلاتر چیست این موارد قابل معرفی و ارائه هستند:

 

افزایش سرعت در توسعه برنامه ها

یکی از مهمترین و اصلی ترین مواردی که می توانیم در پاسخ به این سوال که مزایای فلاتر چیست به آن اشاره کنیم، بحث سرعت در پروژه های فلاتر است. در مورد فلاتر یک مزیت ویژه وجود دارد و آن این است که وقتی یک برنامه تولید شود می توان خروجی های مختلف را از آن گرفت. به همین علت هم می توان گفت که یک برنامه برابر با ساخت چند برنامه می باشد و مهمترین موردی که در اینجا پیش می آید بحث زمان است.

فلاتر از نظر زمان یک تک خال در آستین خود دارد و زمانی که برای سایر فریم ورک ها طول می کشد تا یک برنامه ساخته شود، برای فلاتر به صورتی عمل خواهد کرد که با همین یک بار طراحی برای همه فریم ورک ها خروجی داریم و در واقع یک گام جلوتر است. اگر به یک مدیر تیم برنامه نویسی چنین موضوعی گفته شود، مطمئنا به این مساله نه نخواهد گفت.

به طور کلی فلاتر از نظر سرعت یکی از فریم ورک های سریع به حساب می آید که قابلیت چند فریم ورکه بودن آن، باعث شده است که سریعتر هم باشد.

دلیل افزایش سرعت در فلاتر چیست

 

کاهش هزینه های تیم برنامه نویسی

یکی دیگر از مسائلی که همچنان مدیران را به استفاده از فلاتر ترغیب میکند بحث کاهش هزینه ها است که می توان گفت فلاتر توانسته است آن را از نصف کمتر هم کاهش دهد. وقتی روند ساخت یک برنامه و اپلیکیشن آغاز می شد، تا قبل از فلاتر تیم هایی به صورت مجزا روی ساخت وب سرور اپلیکیشن، ورژن های اندرویدی و ورژن های iOS و یا هر سیستم عامل دیگری شروع به کار می کردند، بدیهی است که این تیم ها دستمزد های خود را دارند و می توان گفت که دستمزد برنامه نویسی که بتواند کار را حرفه ای انجام دهد هم بالا خواهد بود. علاوه بر دستمزد باید هزینه هایی که برای ماژول های آماده مختلف و مواردی از این دست هم پرداخت می شود را در نظر داشته باشیم.

اما وقتی برای ساخت یک برنامه از فلاتر استفاده کنیم، ما صرفا یک تیم برنامه نویسی داریم و به صورت متمرکز به یک تیم حقوق پرداخت کرده و برای یک پلتفرم ماژول تهیه می کنیم. بدیهی است که هزینه تولید یک نرم افزار در این فریم ورک می تواند به شدت کاهش پیدا کند. کاهش هزینه ای که براساس یکی شدن تیم ها و ادغام هزینه های جانبی ماژول ها وجود دارد می تواند کمک بسیار خوبی به برنامه نویسان بکند تا از آنها برای کار خود استفاده کنند.

مورد دیگری که در اولین نگاه ممکن است خیلی بزرگ به نظر برسد اما واقعا یک عنصر حیاتی در کاهش هزینه ها به شمار می رود، رایگان بودن تمامی ابزارها است. به این صورت که شما هر چیزی را که نیاز داشته باشید می توانید به صورت کاملا رایگان از آن استفاده کنید و نیازی نیست که نگران هزینه ای برای فریم ورک ها و کتابخانه ها و حتی IDE ها باشید. تمامی سیستم هایی که با فریم ورک فلاتر کار می کنند آن را به صورت رایگان ارائه می کنند و هیچ چیزی در مورد کار با فلاتر وجود ندارد که برای تیم برنامه نویسی و روند پروژه هزینه بر باشد.

این کاهش هزینه در واقع یک افزایش سود دهی فوق العاده برای تیم خواهد بود. شاید روش ساخت ساده تر شود، اما ساخت برنامه ارزانتر نمی شود و می توان گفت که این کاهش هزینه ها در واقع یک افزایش سوددهی فوق العاده است.

 

انعطاف در طراحی رابط کاربری

افزایش سرعت و همینطور کاهش هزینه ها جزو واردی بودند که بیشتر به مدیران و اعضای رده بالا در تیم مربوط می شدند. اگر بخواهیم این سوال را مطرح کنیم که در بین امکانات ارائه شده برای برنامه نویسان مزیت فلاتر چیست می توانیم به موراد زیاد دیگری اشاره کنیم که یکی از آنها قابلیت های خوب و منعطفی است که فلاتر برای طراحی رابط کاربری در اختیار برنامه نویسان قرار می دهد.

اگر با سایر پلتفرم های برنامه نویسی آشنایی داشته باشید این موضوع را می دانید که در بعضی از آنها شما امکانات زیادی برای ساخت و طراحی رابط کاربری برنامه خود ندارید. در این مورد باید گفت که فلاتر برای طراحی یک رابط کاربری هیچ چیزی کم نگذاشته است. البته باید به این مورد هم اشاره کنیم که ماهیت زبان برنامه نویسی Dart از ابتدا بر اساس این موضوع پایه ریزی شده بود که یک زبان برای طراحی رابط کاربری و بخش فرانت اند باشد.

در مورد اینکه دقیقا معنی این مزیت از فلاتر چیست می توان گفت که وقتی یک برنامه نویس فرانت اند برای طراحی پشت سیستم می نشیند از فریم ورک دارت نه نمی شنود و هر کاری که از آن بخواهد را برای وی انجام خواهد داد. فلاتر تمام امکاناتی که یک برنامه نویس برای شکوفایی خلاقیت خود لازم دارد را در اختیار وی قرار خواهد داد.

وضعیت انعطاف پذیری در فلاتر چیست

 

بازدهی بالا و عملکرد خوب

خیلی از فریم ورک ها هستند که با امکانات خوبی جلو می آیند و وقتی مزایای آنها را می شماریم با یک لیست پر و خوب مواجه هستیم، ولی در عمل هزاران ایراد در کار ساخت برنامه با این فریم ورک ها وجود دارد و وقتی جلو برویم و بازدهی را ببینیم متوجه این موضوع خواهیم شد که داستان از چه قرار است. اما در مورد اینکه این اوضاع برای فلاتر به چه صورت می باشد باید بگوییم که در اینجا از این ایرادات خبری نیست.

اگر نظر برنامه نویسان و متخصصینی که برای طراحی برنامه ها و اپلیکیشن های مختلف از این برنامه استفاده می کنند را جویا شوید متوجه خواهید شد که اوضاع از چه قرار است. در این پلتفرم خبری از موارد دست و پا گیر نیست و می توان آن را به عنوان یک مورد خوب معرفی کرد.

 

ویجت های جذاب

یکی دیگر از موارد مهم که می توان آن را به عنوان یکی از مزایای کلیدی و مهم در فلاتر معرفی کرد وجود ویجت های آماده ای است که می توان از آنها برای طراحی رابط کاربری به صورت کاملا حرفه ای استفاده کرد. در واقع اگر بخواهیم بگوییم بهترین مزیت ارائه شده برای طراحان رابط کاربری در فلاتر چیست باید به همین موضوع اشاره کنیم و می توانیم بگویم که این ویجت ها کار طراحی را بسیار ساده می کنند.

از آنجا که فلاتر سن چندانی ندارد و این ویجت ها تازه ساخته شده اند، می توان گفت که این ویجت ها بر اساس جدیدترین متدهای طراحی ارائه شده اند و در واقع تعدادی المان بی کیفیت و قدیمی و از مد افتاده نیستند. خیلی از تیم های قدرتمند طراحی این ویجت ها را ارائه می کنند و می توان گفت که از نظر کیفیت و زیبایی در بالاترین رده ها قرار دارند. پس شما می توانید با استفاده از فریم ورک فلاتر به صورت کامل از این ویجت ها استفاده کرده و آنها را پیاده سازی کنید.

 

سادگی در یادگیری

یکی دیگر از مزایای اصلی که می توان در پاسخ به این سوال که مزایای استفاده از فلاتر چیست آن را معرفی کرد این است که زبان دارد با وجود این که زبانی جدید است و تازه ارائه شده است، هم داکیومنت های خوبی دارد و هم اینکه یادگیری آن ساده است و دردسر چندانی برای کاربران خود ایجاد می کند. همانطور که در بخش های قبلی هم به این موضوع اشاره کردیم، دارت یک زبان C-Style است. به این معنی که سینتکس آن شبیه به زبان C++ بوده که این ویژگی خیلی از زبان های دیگر است و عموم برنامه نویسان با آن راحت هستند.

در مورد منطق برنامه هم باید گفت که تفاوت چندانی با سایر زبان ها ندارد و روی هم رفته می توانیم بگوییم که برای یادگیری مورد خاصی وجود ندارد که برای ما مشکل ساز شود، البته بعضی از برنامه نویسان با آن مشکلاتی دارند و این زبان هنوز خود را در نظرسنجی ها ثابت نکرده است. اما باید گفت که خیلی از موارد مربوط به این موضوع در حال برطرف شدن است و دارت را می توان یک زبان کاملا جدید معرفی کرد که در حال پیشرفت است.

 

بازدهی نزدیک به برنامه های نیتیو

یکی دیگر از مواردی که ضروری است در بین سایر موارد برای سوال مزایای فلاتر چیست به آن اشاره کنیم، قابلیت تولید برنامه های قدرتمند است. شما می توانید با فریم ورک های مختلف برنامه های زیادی را برای هر فریم ورکی تولید کنید، اما این موضوع که آیا این برنامه ها می توانند مانند برنامه های نیتیو عمل کنند یا نه یکی از موضوعات مهم است.

به عنوان مثال وقتی شما با استفاده از زبان های وب مانند جاوا اسکریپت و یا HTML و CSS یک برنامه را ارائه می کنید که روی هر سیستم عامل قابل اجرا باشد، باید این موضوع را در نظر داشته باشید که این برنامه به هیچ عنوان نمی تواند مانند برنامه هایی که به صورت نیتیو نوشته می شوند عمل کند. به عنوان مثال یک برنامه نوشته شده با JS که روی موبایل های اندرویدی اجرا می شود، افت عملکردی کاملا محسوسی نسبت به یک برنامه دارد که با جاوا نوشته شده است.

اما در مورد فلاتر اوضاع کاملا متفاوت است. فلاتر برخلاف زبان های وب و سایر زبان های جهانی که بر روی همه سیستم عامل ها اجرا می شوند از یک کامپایلر فوق العاده قوی برخوردار است که می تواند به راحتی با معماری ماشین های مختلف و سیستم عامل های متعدد سازگار شده و برنامه را خیلی نزدیک به یک برنامه نیتیو اجرا کند، به این صورت که وقتی شما یک برنامه نوشته شده با فلاتر را با یک برنامه نیتیو مقایسه کنی، به هیچ عنوان متوجه تفاوت آنها نخواهید شد.

 

انجمن های برنامه نویسی در حال رشد

یک مورد مهم در مورد هر زبان برنامه نویسی انجمن های مختلف در مورد آن است. وقتی یک زبان بررنامه نویسی برنامه نویسانی را داشته باشد که آن را رشد و توسعه دهند و یا حتی از آن استفاده کنند این زبان پیشرفت کرده و قابلیت های جدید به آن اضافه می شود. فلاتر با وجود کم سابقه بودن نسبت به زبان های دیگر، انجمن های خود را تشکیل داده است و می توان گفت که این انجمن ها رشد خوبی را هم داشته اند.

این مورد را هم باید در نظر گرفت که ملحق شدن به این انجمن های تازه می تواند هر برنامه نویسی را به یک چهره مطرح در مورد این فریم ورک تبدیل کند و این می تواند برای آینده کاری چنین برنامه نویسی یک نکته طلایی باشد.

به طور کلی می توانیم بگوییم که فلاتر از آن دسته زبان هایی است که مزایای بسیاری برای استفاده از آن وجود دارد و می توان گفت که استفاده از آن با وجود اینکه یک فریم ورک تازه وارد است که از یک زبان برنامه نویسی تازه وارد هم استفاده می کند، کاری ساده و لذت بخش می باشد.

اکنون که می دانیم فلاتر چیست و چه مزایایی دارد لازم است تا در مورد این موضوع هم کمی صحبت کنیم که معایب این فریم ورک چیست و در کنار همه قابلیت هایی که برنامه نویسان از آنها بهره می گیرند باید چه نکاتی را برای استفاده از این فریم ورک مد نظر قرار دهند.

معایب استفاده از فلاتر چیست

هر برنامه نرم افزاری در کنار تمام قابلیت های خوب خود، همیشه چالش ها و معایبی هم دارد و می توانیم بگوییم که در علم کامپیوتر این یک اصل ثابت شده است. عوامل مختلفی مانند پایه های طراحی تا اندازه برنامه و کاری که می خواهد انجام دهد وجود دارند که می توان گفت روی دردسر هایی که یک برنامه و فریم ورک برای برنامه نویسان خواهد داشت و معایبی که برای کاربران نهایی خود دارد تاثیر می گذارند. عموما هر چه یک برنامه و یک فریم ورک پیچیده تر و بزرگتر باشد، معایب و چالش هایی که ایجاد می کند هم بزرگتر خواهد بود.

در رابطه با این موضوع که معایب فلاتر چیست باید بگوییم که فلاتر با این وجود که فریم ورکی پیچیده است و یک طیف گسترده از امکانات را ارائه می کند با این وجود به خاطر طراحی خوش ساخت و امکانات خوبی که گوگل برای آن ایجاد کرده است می توانیم بگوییم معایبی که دارد در سطح قابل قبولی قرار دارند و می توان آنها را به صورت کامل کنترل کرد.

برای پاسخ به این سوال که معایب و چالش های به کار گرفتن فلاتر چیست می توان این موارد را معرفی کرد:

سنگین شدن برنامه ها

یکی از موارد مهمی که باید در مورد فلاتر به خاطر داشت این است که برنامه هایی که با استفاده از این فریم ورک ساخته می شوند عموما برنامه هایی سنگین خواهند بود. این اتفاق به این دلیل می افتد که خیلی از کدهای موجود در این برنامه و هسته اصلی آن، به نحوی برنامه ریزی شده که روی هر سیستم پردازشی قابل پیاده سازی باشد و از این رو نمی توان از بهینه سازی هایی که هر سیستمی به صورت تخصصی برای خود انجام می دهد استفاده کرد. در واقع کدهای فلاتر یک کد عمومی و بزرگ است و همین موضوع باعث شده است تا برنامه های فلاتر کمی سنگین تر از بقیه برنامه ها باشند.

نیاز به کدنویسی پایه و زیاد

یکی دیگر از مواردی که می توان به نوعی آن را مرتبط به مورد قبلی دانست این است که برای طراحی یک برنامه ساده لازم است که حجم زیادی کد نویسی انجام گیرد و تمامی اقدامات پایه که ممکن است در فریم ورک های دیگر به صورت آماده ارائه شود، باید به صورت دستی انجام شود. این موضوع هم حجم کد را بالا می برد که نتیجه آن همان سنگینی برنامه خواهد بود و از آن مهمتر باعث می شود که کمی روند پروژه طولانی شده و زحمت برنامه نویسی زیاد شود.

وقتی برنامه نویسی بخواهد یک برنامه را با استفاده از این فریم ورک پیاده سازی کند باید این موضوع را در نظر داشته باشد که باید تمامی اقدامات پایه را برای این کار انجام دهد و نمی توان گفت که برنامه نویسی با فلاتر کاری سبک و کم زحمت است که براحتی می توان با آن یک برنامه را برای چند پلتفرم ارائه کرد. در این رابطه باید گفت که کدنویسی زیادی برای برنامه های مختلف باید انجام گیرد.

ویجت های فلاتر چیست

 

پیچیدگی های زبان دارت

مورد دیگری که باید در مورد فلاتر به آن توجه کرد این است که این سیستم در حال استفاده از یک زبان برنامه نویسی جدید است. همین موضوع می تواند کمی معادلات را به هم بزند و یک مدیر پروژه باید آن را در نظر داشته باشد. در این رابطه باید بگوییم که استفاده از زبان دارت برای برنامه نویسی می تواند پیچیدگی هایی داشته باشد که کمی ناملموس باشند. به هر حال زبانی که جدیدا ارائه شده است و نسبت به سایر زبان های برنامه نویسی که جا افتاده اند و زوایای مختلف آنها بررسی شده است کمی بیشتر نیاز به کار کردن دارد و باید برای استفاده از آن با احتیاط بیشتری برخورد کرد.

دارت یک زبان پیچیده و جدید است که ممکن است خیلی از برنامه نویسان به آن علاقه ای نداشته باشند یا برای آنها ناملموس باشد و همینطور هم هست. در حقیقت زبان دارت پیچیدگی هایی دارد که برای خیلی از برنامه نویسان به سختی قابل درک بوده و ممکن است برنامه نویسی که برای شما یک بازدهی خوب را با استفاده از زبان های دیگر و در پلتفرم های دیگر داشته است، نتواند همان بازدهی را با استفاده از فریم ورک فلاتر از خود نشان دهد. از این رو شما با این تصور که فلاتر می تواند مسیر شما را کوتاه کند پروژه خود را آغاز کرده و با یک بازدهی پایین مواجه خواهید شد که می تواند مدت زمان ساخت پروژه را افزایش دهد.

در نظر داشته باشید که اگر می خواهید یک پروژه خود را با استفاده از زبان برنامه نویسی فلاتر شروع کنید، ممکن است که درگیر این پیچیدگی ها شده و بهتر است این موارد را حتما در زمانبندی ها و ددلاین های خود خصوصا برای بار اول در نظر داشته باشید.

به طور کلی می توان همین موارد را برای پاسخ به این سوال که معایب فلاتر چیست مطرح نمود و باید گفت که این موارد به راحتی قابل حل بوده و فلاتر به صورت کلی یکی از فریم ورک های خوب و کاربردی شناخته می شود.

اکنون تمامی مواردی که باید در مورد اینکه فریم ورک فلاتر چیست و چه کاری را برای ما انجام می دهد بررسی می کردیم را بررسی کرده ایم و دیدیم که داستان به چه صورتی می باشد اما در مورد اینکه این فریم ورک چه رقبایی دارد و آیا فریم ورک دیگری هم هست که بتواند چنینی سطحی از کرا را برای ما انجام دهد وجود دارد یا خیر، هنوز حرفی به میدان نیامده است. در ادامه مقاله راجع به اینکه وضعیت رقبای فلاتر چیست و کارهایی که آنها می توانند انجام دهند به صورت کامل صحبت خواهیم کرد.

 

مقایسه فلاتر و سایر رقبا

وقتی که یک تکنولوژی در این دنیا ایجاد شود، سایر شرکت ها و ارائه کنندگان نیز به دنبال آن به راه خواهند افتاد و باید گفت که در دنیای برنامه نویسی عموما انحصار بی معنی است. در مورد تمامی این کارهایی که فلاتر برای ما انجام می دهد هم باید گفت که همین داستان صحیح می باشد و رقبای مختلف و زیادی برای فلاتر وجود دارند که می توانند همین کار ها را انجام دهند. البته باید گفت که وجود تاثیراتی که پشتیبانی حرفه ای گوگل روی آن ایجاد کرده است در گسترش استفاده از آن و برنامه هایی که با آن می توان ساخت تاثیر بسیار زیادی گذاشته است و سطح آن را از رقبای خود بالاتر آورده است. اما در گل باید بگوییم که کار سایر رقبای فلاتر نیز به خوبی در حال دنبال شدن است.

اکثر این فریم ورک ها جزو پروژه های تحقیقاتی در حال توسعه هستند اما از بین آنها می توان به موارد کاربردی خوبی اشاره کرد. در صورتی که بخوایم برترین رقبایی که فلاتر دارد را ارائه کنیم، به مقایسه های مختلفی نیاز داریم و باید جهت های مختلفی را بررسی کنیم که در ادامه هر کدام از آنها را بررسی خواهیم کرد.

 

مقایسه فلاتر و ریکت جی اس

مورد عجیبی که ممکن است در بررسی های خود به آن برخورد کرده باشید این است که یک کتابخانه ساده که اصلا در بین فریم ورک ها طبقه بندی نمی شود، توانسته است خود را به یک فریم ورک همه کاره مانند فلاتر بیرساند و در کمال تعجب باید گفت که این موضوع صحت دارد. هر چند که ریکت حتی یک فریم ورک هم نیتس اما قابلیت هایی که برای ایجاد و ساخت کامپوننت های UI دارد باعث شده است که بتوان از آن برای ساخت تمامی برنامه هایی که فلاتر آنها را ایجاد می کند استفاده کرده و در این خصوص می تواند با فلاتر رقابت کند.

در نظر داشته باشید که وقتی بخواهیم به این سوال که رقبای فلاتر چیست پاسخ دهیم لازم است هر فریم ورک و یا ابزاری که می تواند کارایی فلاتر را برای ما داشته باشد و به جای آن در یک پروژه مورد استفاده قرار بگیرد را بررسی کنیم و هدف ما این نیست که صرفا به فریم ورک های هم سطح آن بپردازیم. ابزار ریکت یکی از آن ابزار هایی است که خود را تا این اندازه بالا شیده و در هر نوع از برنامه ها از برنامه های موبایل گرفته تا سیستم های مدیریت محتوا می تواند ایفای نقش کند.

در مقاله ریکت چیست به صورت کامل در مورد این کتابخانه بزرگ جاوا اسکریپت و کارایی ای هایی که از خود نشان می دهد صحبت کرده ایم و دیدیم که داستان به چه شکلی است. اما در صورتی که بخواهیم بگوییم اوضاع رقابت بین ریکت و فلاتر چیست باید گفت که کار با ریکت ساده تر بوده اما شما به فریم ورک های کمکی نیز نیاز پیدا خواهید کرد. هر چند که شما می توانید بعضا یک برنامه زیباتر و حرفه یا تر را در مدت زمان کمتری با ریکت بسازید اما برای بک اند آن کار زیادی را پیش رو دارید و همینطور باید گفت که به دانش برنامه نویسی بیشتری نیاز خواهید داشت. در حالی که در فلاتر شما تنها فریم ورک فلاتر را برای این کار نیاز دارید. البته از نظر زبان برنامه نویسی هر دوی آنها فرانت و بک را به صورت تک زبانه پیاده سازی می کنند که در این حالت ریکت بخاطر داشتن زبان محبوب و پر کاربرد جاوا اسکریپت از فلاتر جلوتر می باشد.

در نتیجه برای مقایسه فالاتر و ریکت باید گفت که فلاتر جامع تر و کامل تر است و با کار سر راست تر می تواند چند نسخه برنامه بسازد ولی ریکت در کار اینکه محبوب تر وبده و کار با آن راحت است در بک اند های خود نیاز به کار بیشتری نسبت به فلاتر دارد.

 

مقایسه فلاتر و DevExpress

بدیهی است که وقتی گوگل زبان دارت را بر می دارد و برای خودش یک فریم ورک همه کاره را راه اندازی می کند که پتانسیل در اختیار گرفتن ابتکار عمل در تمامی حوزه های برنامه نویسی را دارد، سایر غول هایی که تا دیروز خود را مالک این حوزه می دانسته اند هم دست به کار می شوند. در مورد اینکه اوضاع رقابت DevExpress و فلاتر چیست باید گفت که این فریم روک یکی از مهره های دشت مایکروسافت است که قرار است همان کاری که فلاتر با زبان دارت می کند را برای برنامه نویسانی که با ASP و C# انجام می دهند انجام دهد و به طور کلی قرار است که هر چه که در بستر نرم افزاری .Net Framework و .Net Core ارائه می شود را به هم تبدیل کند و خروجی های متعدد برای هر کدام ارائه کند.

کار کردن با این فریم ورک می تواند برای برنامه نویسانی که با زبان های مایکروسافتی آشنایی دارند و باید گفت که تعداد آنها اصلا کم نیست و خیلی از برنامه نویسان قدیمی و با سابقه را شامل می شوند می توانند به جای مهاجرت به فریم ورک جدیدی گوگل از آنچه که مایکروسافت برای آنها ارائه کرده است استفاده کنند. هر چند که به نظر می رسد این ایده هنوز برای مایکروسافت به آن صورت که برای گوگل واضح است و می داند داستان از چه قرار است واضح و شفاف نشده باشد و این فریم ورک کارایی چندانی را بدست نیاورده است. اما در کل می توان گفت که کار برنامه نویسان .NET را راه می اندازد.

 

مقایسه فلاتر و Selenium WebDriver

این مجموعه نیز مانند فلاتر می تواند ساخت کلیه برنامه ها را انجام داده اما باید گفت که تمامی برنامه هایی  که با سلنیوم ساخته می شود باید به وسیله مرورگر ها ایجاد شود. در واقع سلنیوم یک مجموعه کتابخانه برای ابزار های تحت مرورگر می باشد که مجموعه کاملی را برای کاربران خود ایجاد می کند و خیلی از برنامه نویسان و حرفه ای ها در حوزه IT از آن استفاده می کنند. مجموعه ابزار سلنیوم کی مجموعه بسیار کمتر شناخته شده در مقابل فلاتر می باشد که باید از این نظر گفت فلاتر بسیار کارآمدتر عمل خواهد کرد.

در صورتی که عامل زبان فارسی و منابع آموزشی را هم در این مقایسه وارد کنیم باید گفت که نام سلنیوم در مقابل فلاتر رنگ می بازد و بهتر است که روی فلاتر تمرکز کنید تا به سراغ این فریم ورک که همچنان در فاز توسعه خود قرار دارد بروید.

 

مقایسه فلاتر و سوئیفت (Swift)

در ابتدای کار باید گفت که سوئیفت یک زبان است و نه یک فریم ورک! زبانی که از آن برای نوشتن برنامه های پلتفرم ها مختلف مک و اپل استفاده می شود و می تواند برنامه های موبایل های iOS، iPad ها، خود سیستم عامل مکینتاش و همینطور پلتفرم ها و سیستم ها عامل اپل واچ را با استفاده از آن توسعه داد. رویکردی که در سوییفت وجود دارد این است که شما با برنامه نویسی یک برنامه بتوانید آن را در تمامی ابزار هایی که اپل ارائه می کند برنامه نویسی کنید و باید گفت که اوضاع برنامه نویسی خوب و بازار کار درست و حسابی ای را هم برای خود ایجاد کرده است.

فریم ورکی که برای استفاده از سوئیفت می توانید به سراغ آن بروید Cocoa Touch نام دارد که تمامی این کارها را برای شما هندل کرده و می تواند خروجی های مختلف را برای یک برنامه ایجاد کند. از نظر عملکرد می توان گفت که سوییفت و فریم ورک آن شباهت های زیادی را به زبان دارت و فلاتر دارند. اما باید گفت که انحصاری که سوییفت برای ایجاد برنامه های مختلف روی آن ایجاد می کند کمی دردسر ساز است. البته باید گفت که خود مکینتاش و آی او اس سیستم هایی هستند که اصطلاحا به آن ها Unix Like گفته می شود و به این معناست که تمامی سیستم هایی که بر اساس پایه های یونیکس و یا لینوکس های سازگار با آن مانند FreeBSD طراحی شده اند هم می توانند این برنامه ها را اجرا کنند.

در واقع شما با یادگیری این زبان می توانید برای طیف لینوکس بزرگی برنامه نویسی کنید، اما باید در نظر داشته باشید که کتابخانه ها و ماژول هایی که در کتابخانه هایی نظیر Cocoa Touch ارائه می شود برای آی او اس ارائه شده و ممکن است سایر لینوکس ها پیش نیاز هایی که نیاز دارد را نداشته باشند.

پس در مورد اینکه نتیجه مقایسه سویفت و فلاتر چیست باید گفت که هر دوی آنها امکانات خوبی را برای ساخت یک برنامه و خروجی گرفتن روی چند پلتفرم ساختاری مختلف در اختیار شما قرار می دهند اما فلاتر مجموعه گسترده تری را برای شما فراهم می کند و می توان گفت که حوزه کاری ای که سوئیفت دارد کمی محدود تر می باشد و ماژول های که برای ان ارائه شده صرفا به آی او اس محدود است.

 

مقایسه فلاتر و OutSystems

در بین تمامی رقبایی که تا الان برای فلاتر بررسی کرده این سایت OutSystem را بتوانیم عملیاتی ترین و جدی ترین رقیب آن بررسی کنیم که کار خود را چند سالی است با یک سیستم یکپارچه و هیبریدی حرفه ای شروع کرده است و سابقه طولانی تری در این زمینه دارد. البته باید گفت که OutSystem بیشتر یک سرویس است که شکرت OutSystem آن را ارائه می کند، نه یک فریم ورک که به راحتی آن را روی سیستم خود بیاورید و با آن کار کنید.

در مورد اینکه این سیستم چیست و چطور کار می کند باید گفت که این سیستم در واقع یک سیستم طراحی برنامه های سازمانی به صورت برنامه های موبایل و برنامه های تحت وب روی کلود است که با استفاده از یک رابط گرافیکی سطح بالا در اختیار کاربران قرار می دهد و برنامه های متعددی برای سازمان ها در بستر کلود آن ایجاد شده و مورد استفاده قرار می گیرد. در واقع در اینجا یک برنامه در بستر خود OutSystem پیاده سازی و اجرا می شود و برای استفاده از آن هم نیاز به پرداخت هزینه است.

شاید برای یک توسعه دهنده این شرایط ایده آل نباشند ولی باید گفت در عمل این شرکت توانسته رشد بسیار خوبی را برای خود دست و پا کرده و به فروش های بسیار بالایی دست پیدا کند که آن را یک استارتاپ مورد توجه شرکت های برنامه نویسی کرده است. در مورد اینکه اوضاع مقایسه بین OutSystem و فلاتر چیست باید گفت که هر چند که OutSystem هم همین موارد را ارائه می کند اما نمی توان آن را یک فریم ورک دانست زیرا خیلی از جزئیات برنامه نویسی با این سیستم از دید ما پنهان بوده و همینطور نمی توان خروجی را به صورتی که نیاز داشت از روی آن دانلود کرد و شما باید سرویس را تحت میزبانی OutSystem نگه دارید. پس باید گفت که برنامه ای که روی این بستر ساخته شود تابعی از قوانین آن بوده و استقلال ندارد. از طرفی هزینه های نگهداری هم می تواند در مرور زمان از هزینه برنامه های ساخته شده با  فلاتر بالاتر برود.

 

نتیجه گیری

در این مقاله در مورد اینکه فلاتر چیست و چه کاری را برای ما انجام خواهد داد، صحبت کردیم و دیدیم که چگونه می توان با به کارگیری این فریم ورک برای هر پلتفرم و سیستم عاملی برنامه نوشت. فلاتر در واقع فریم ورکی است که به شما این امکان را می دهد که با بهره مندی از ویژگی های قدرتمندی که دارد با برای هر سیستم عاملی برنامه بنویسید. شاید این سوال برای شما پیش آمده باشد که معمولا فریم ورک ها و برنامه های کراس پلتفرم روی یک پلتفرم که به نوعی نیتیو است قوی تر از بقیه عمل می کنند. اما اگر بخواهیم بگوییم که این وضعیت در مورد فریم ورک فلاتر چیست می توانیم بگوییم که برنامه های نوشته شده با آن، روی تمامی پلتفرم هایی که برای آنها خروجی گرفته شود کار می کند.

کلا می توان استفاده ار این فریم ورک را یک کار پر مزیت معرفی کرد و از آنجا که لازم نیست دو تیم برنامه نویسی به صورت مجزا روی ورژن های مختلف از دو فریم ورک کار کنند، یک گزینه کم هزینه به شمار می رود، همینطور سرعت تولید نرم افزار نیز در آن بالا رفته و می توان گفت که یک گزینه خوب و محبوب برای مدیران است. در مورد اینکه برنامه نویسی با آن چطور خواهد بود هم باید بگوییم که کاری ساده است و یادگیری آن انرژی و وقت زیادی لازم ندارد، و جوامع کاربری آن نیز در حال پیشرفت هستند.

این مقاله برای شما مفید بود؟
بلهخیر

دیدگاهتان را بنویسید

Solve : *
1 + 8 =