<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های احسان نصری</title>
        <link>https://virgool.io/feed/@ehsannasri</link>
        <description>من احسان نصری هستم و حدود 4 سال است که به شغل جذاب برنامه نویسی مشغولم و از حدود 2 سال پیش به برنامه نویسی اندروید توسط فلاتر روی آوردم و اینجام تا به شما کمک کنم تا با این تکنولوژی بیشتر آشنا شوید</description>
        <language>fa</language>
        <pubDate>2026-06-17 05:14:45</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1388500/avatar/3kSGi2.jpeg?height=120&amp;width=120</url>
            <title>احسان نصری</title>
            <link>https://virgool.io/@ehsannasri</link>
        </image>

                    <item>
                <title>حل خطای Mapping new ns Error در فلاتر</title>
                <link>https://virgool.io/@ehsannasri/%D8%AD%D9%84-%D8%AE%D8%B7%D8%A7%DB%8C-mapping-new-ns-error-%D8%AF%D8%B1-%D9%81%D9%84%D8%A7%D8%AA%D8%B1-lehsay0apa7f</link>
                <description>در این مقاله قصد داریم تا شما را با راه حل خطای Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01در فلاتر آشنا کنیماین خطا در زمان اجرا گرفتن از برنامه ایجاد شده و به صورت چند خط قرمز رنگ شبیه به تصویر زیر نمایش داده می شود و در رابطه با به روز رسانی gradle فلاتر - اندروید می باشد .تصویر خطای مورد نظر تقریبا به شکل زیر است و ممکن است نسبت به نام برنامه شما بعضی مقادیر کمی متفاوت باشندمتن خطا هم به شکل زیر است :برای حل این مشکل ابتدا به آدرس زیر بروید :Your_Flutter_App -&gt; android -&gt; build.gradleدر اینجا Your_Flutter_App همان نام پروژه شماستحالا قسمت dependencies را پیدا کرده و در جلوی خط کد زیر به جای عدد وارد شده عدد 7.0.2 را وارد نمایید :dependencies {classpath &#039;com.android.tools.build:gradle:7.0.2&#039;classpath &amp;quotorg.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version&amp;quot}حالا نوبت به بروز رسانی distributionUrl در آدرس Your_Flutter_Project -&gt; android -&gt; gradle -&gt; wrapper -&gt; gradle-wrapper.properties می رسد، با مراجعه به این فایل، آن را باز کرده و با URL زیر بروزرسانی نمایید .https\://services.gradle.org/distributions/gradle-7.2-all.zipحالا به فولدر برنامه خود رفته و در قسمت آدرس بار خود کلمه cmd را وارد نمایید و دستور flutter cleanرا وارد نماییددر این بخش و جلوی نام برنامه خود در CMD دستور flutter clean را وارد نماییدپس از اجرای دستور بالا نوبت به دستور نهایی و گرفتن خروجی از برنامه بدون ارور Map-ns می رسد .حالا مجدد در CMD خود عبارت flutter runرا زده و اجرا کنید و چند دقیقه صبر کنید تا پس از آپدیت gradle اندروید برنامه از این پس بدون خطای قبلی اجرا شودبرای مشاهده آموزش های تخصصی و رایگان در زمینه فریمورک فلاتر و زبان دارت می توانید به وبسایت ما به آدرس http://amadaylearn.com مراجعه نمایید امیدوارم از این آموزش لذت برده باشیددوست دار شما احسان نصری</description>
                <category>احسان نصری</category>
                <author>احسان نصری</author>
                <pubDate>Sun, 30 Jan 2022 17:40:07 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی ویجت Column در فلاتر</title>
                <link>https://virgool.io/@ehsannasri/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D9%88%DB%8C%D8%AC%D8%AA-column-%D8%AF%D8%B1-%D9%81%D9%84%D8%A7%D8%AA%D8%B1-hoyl8dwni36q</link>
                <description>معرفی ویجت Columnویجت Column ویجت های موجود در خود را که به آن ها children (فرزندان) این ویجت گفته می شود به صورت عمودی نمایش می دهد .ارور زرد مشکی انتهای ویجت Column به چه معناست ؟این ویجت children (فرزندان) خود را تا جایی که ارتفاع برنامه اجازه دهد به صورت عمودی می چیند و اگر نیاز دارید تا children (فرزندان) این ویجت به صورت عمودی اسکرول بخورند باید Column خود را درون یک ویجت SingleChildScrollView به عنوان Child قرار دهید تا پس از رسیدن محتوا به انتهای صفحه شما امکان اسکرول خوردن صفحه فعال شده باشد زمانی که محتویات ویجت Column بیش از ارتفاع برنامه شما باشد، با اروری شبیه به تصویر زیر روبرو می شوید ارور زرد مشکی فلاترتعیین جهت قرارگیری childrem (فرزندان) در ویجت Column :برای تعیین جهت قرارگیری children (فرزندان) در ویجت Column می توان از دو ابزار MainAxisAlignment و CrossAxisAlignment استفاده کرد .پراپرتی MainAxisAlignment :این پراپرتی جهت عمودی children (فرزندان) را در این ویجت مشخص میکند به این صورت که می توانید تعیین کنید children (فرزندان) در ابتدای صفحه ، وسط ، انتها یا با فاصله برابر از یکدیگر در صفحه قرار بگیرند .پراپرتی CrossAxisAlignment :این پراپرتی هم برای تعیین جهت قرارگیری children (فرزندان) به صورت افقی در صفحه کاربرد دارد و می توان تعیین کرد که آن ها در ابتدا، وسط یا انتهای ویجت مادر قرار بگیرند .برای مشاهده توضیحات کامل این ویجت به صورت ویدیویی می توانید به اینجا سر بزنید یا این آموزش را در وبسایت من به آدرس http://amadaylearn.com مشاهده نمایید .</description>
                <category>احسان نصری</category>
                <author>احسان نصری</author>
                <pubDate>Mon, 20 Dec 2021 17:44:19 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی ویجت Row در فلاتر</title>
                <link>https://virgool.io/@ehsannasri/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D9%88%DB%8C%D8%AC%D8%AA-row-%D8%AF%D8%B1-%D9%81%D9%84%D8%A7%D8%AA%D8%B1-a73tlknixxav</link>
                <description>ویجت Row ویجت های موجود در خود را که به آن ها children (فرزندان) این ویجت گفته می شود به صورت افقی نمایش می دهد .برای دریافت تمام عرض موجود در صفحه می توانید children (فرزندان) Row را به عنوان Child به یک ویجت Expanded نسبت دهید .این ویجت children (فرزندان) خود را تا جایی که عرض برنامه اجازه دهد به صورت افقی میچیند و اگر نیاز دارید تا children (فرزندان) این ویجت به صورت افقی اسکرول بخورند باید از ListView استفاده کنید و Direction ویجت ListView را برابر با Alignment.horizontal قرار دهید .ارور زرد مشکی انتهای ویجت Row به چه معناست ؟زمانی که محتویات ویجت Row بیش از عرض برنامه شما باشد، با اروری شبیه به تصویر زیر روبرو می شوید که در این موارد یا باید children (فرزندان) را کمتر کنید یا طبق دستوری که در بند قبلی توضیح داده شد از ListView استفاده کنید .ارور زرد مشکی ویجت Row در فلاترراست چین کردن محتوا در Row :برای راست چین کردن محتوا در Row می توانید از پراپرتی textDirection طبق مثال زیر استفاده کنید :Row(   
   textDirection: TextDirection.rtl,   
   children: &lt;Widget&gt;[     
   const FlutterLogo(),     
   const Expanded(       
      child: Text(&amp;quotFlutter&#039;s hot reload helps you quickly and easily &amp;quot),     
    ),     
   const Icon(Icons.sentiment_very_satisfied),   
 ], 
)هم چنین می توانید برای مشاهده آموزش راست چین کردن کل برنامه خود در 5 دقیقه این آموزش را مشاهده کنید .تعیین جهت قرارگیری childrem (فرزندان) در ویجت Row :برای تعیین جهت قرارگیری children (فرزندان) در ویجت Row می توان از دو ابزار MainAxisAlignment و CrossAxisAlignment استفاده کرد .پراپرتی MainAxisAlignment :این پراپرتی جهت افقی children (فرزندان) را در این ویجت مشخص میکند به این صورت که می توانید تعیین کنید children (فرزندان) در ابتدای صفحه ، وسط ، انتها یا با فاصله برابر از یکدیگر در صفحه قرار بگیرند .پراپرتی CrossAxisAlignment :این پراپرتی هم برای تعیین جهت قرارگیری children (فرزندان) به صورت عمودی در صفحه کاربرد دارد و می توان تعیین کرد که آن ها در ابتدا، وسط یا انتهای ویجت مادر قرار بگیرند .برای مشاهده توضیحات کامل این ویجت به صورت ویدیویی می توانید به اینجا سر بزنید یا این آموزش را در وبسایت من به آدرس http://amadaylearn.com مشاهده نمایید .</description>
                <category>احسان نصری</category>
                <author>احسان نصری</author>
                <pubDate>Mon, 20 Dec 2021 13:13:17 +0330</pubDate>
            </item>
                    <item>
                <title>تغییرات مهم در نسخه 2.8 فلاتر</title>
                <link>https://virgool.io/@ehsannasri/%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1%D8%A7%D8%AA-%D9%85%D9%87%D9%85-%D8%AF%D8%B1-%D9%86%D8%B3%D8%AE%D9%87-28-%D9%81%D9%84%D8%A7%D8%AA%D8%B1-hjl4ajmnbrxm</link>
                <description>تغییرات اساسی در فلاتر نسخه 2.8نسخه 2.8 فلاتر با مشارکت 207 نفر و 178 بازبینی در تاریخ 18 آذر 1400 ارائه شد . اما این ورژن جدید چه تغییراتی را شامل شده و قرار است شاهد چه پیشرفت هایی در آن باشیم ؟ افزایش پرفورمنس :طبق گفته توسعه دهندگان فلاتر، در این نسخه سعی شده تا برنامه های ساخته شده با این ابزار بتوانند بیشترین پوشش دستگاه را تا حال حاضر داشته باشند . به این معنی که تیم پشتیبانی فلاتر تلاش کرده تا بتواند برنامه های ساخته شده با این فریمورک را در دستگاه های بیشتری اجرا کند تا پوشش گسترده تری را شامل شود .مجموع تلاش هایی که در بالا ذکر شد باعث کاهش 50% سرعت اجرای برنامه ها در پایین ترین دستگاه تحت پوشش و 10% سرعت اجرای برنامه در بالاترین رده گوشی های بازار شد .پشتیبانی از WebView 3.0 توسط فلاتر 2.8 : در نسخه 2.8 فلاتر امکان پشتیبانی از webView 3.0 فراهم شده است .این پکیج علاوه بر ارسال درخواست به صورت GET از این پس درخواست های POST را هم پشتیبانی می کند .خداحافظی با نسخه Dev Channel :فلاتر تحت نسخه های زیر عرضه می شد که از این پس نسخه Dev Channel به دلیل استقبال زیر 3% خود از لیست این نسخه ها حذف می شود .نسخه های ارائه شده برای فلاتر به شرح زیر است :نسخه master :این نسخه عموما جهت تست و خطایابی نسخه های ارائه شده قبل از اعلام نهایی ریلیز می شود .نسخه beta :این نسخه حالت اولیه از هر نسخه فلاتر است که معمولا به دلیل داشتن باگ و خطاهای مختلف استفاده از آن توصیه نمی شود .نسخه stable :این نسخه همانطور که از نام آن پیداست، نسخه پایدار فلاتر محسوب شده و بیش از 90% توسعه دهندگان در حال استفاده از این نسخه می باشند .ادغام Dev Tools و SDK :از نسخه 2.8 به بعد، دیگر نیازی به نصب Dev Tools به صورت جداگانه ندارید، چرا که این ابزار به صورت مجتمع با SDK شما دانلود و نصب خواهد شد .ساخت UI فایربیس، با ویجت های جدید :فایربیس ابزاری جهت کاهش زمان و افزایش سرعت قسمت های مختلف برنامه به خصوص بخش ثبت نام، ورود، خروج و فراموشی کلمه عبور کاربران است .این ابزار قدرتمند که توسط خود گوگل معرفی شده و با فلاتر بسیار هماهنگ است در نسخه 2.8 توسط پکیج flutterfire_ui به فلاتر نزدیک تر شده و با استفاده از این پکیج امکان طراحی و توسعه بخش های مربوط به ثبت نام، ورود، خروج و فراموشی کلمه عبور با سرعت بسیار بالاتری انجام خواهد شد .اضافه شدن موتور بازی سازی Flame 1.0 به فلاتر 2.8 :از این پس با رونمایی از نسخه نهایی موتور بازی سازی Flame 1.0 و جوین شدن این موتور با فریمورک فلاتر می توانید هر نوع بازی 2 بعدی که فکرش را بکنید توسط این دو ابزار بسازید .برای مشاهده آموزش های بیشتر در زمینه برنامه نویسی فلاتر، می توانید به وبسایت بنده به آدرس Http://amadaylearn.com مراجعه نمایید .</description>
                <category>احسان نصری</category>
                <author>احسان نصری</author>
                <pubDate>Mon, 20 Dec 2021 12:39:07 +0330</pubDate>
            </item>
                    <item>
                <title>فلاتر یا ری اکت نیتیو ؟ آخرین آمارهای جهانی در سال 2021</title>
                <link>https://virgool.io/@ehsannasri/%D9%81%D9%84%D8%A7%D8%AA%D8%B1-%DB%8C%D8%A7-%D8%B1%DB%8C-%D8%A7%DA%A9%D8%AA-%D9%86%DB%8C%D8%AA%DB%8C%D9%88-%D8%A2%D8%AE%D8%B1%DB%8C%D9%86-%D8%A2%D9%85%D8%A7%D8%B1%D9%87%D8%A7%DB%8C-%D8%AC%D9%87%D8%A7%D9%86%DB%8C-%D8%AF%D8%B1-%D8%B3%D8%A7%D9%84-2021-akh1b5lhsb8c</link>
                <description>فلاتر (Flutter) و ری اکت نیتیو (React Native) هر دو پلتفرم های محبوبی در زمینه برنامه نویسی بصورت کراس پلتفرم برای اندروید و ios هستند، اما اینکه کدام یک از این تکنولوژی ها توانسته محبوبیت بیشتری کسب کند را باید از آمار موسسات معتبر جهانی جویا شد .در این مقاله هم که آمارها از سایت معتبر Statista Place گردآوری شده است قصد دارم تا به مقایسه محبوبیت این دو تکنولوژی در سال 2021 نسبت به هم بپردازیم پس با من همراه باشید .پیش از شروع به مطالعه آمارها بهتر است به چند سوال زیر پاسخ بدهمفلاتر (Flutter) چیست ؟فلاتر (Flutter) محیط توسعه ای است که توسط گوگل و در سال 2018 برای برنامه نویسی به صورت کراس پلتفرم و نیتیو ارائه شد .از فلاتر (Flutter) به صورت تخصصی می توان برای سیستم عامل های اندروید،  iosو هم چنین وب خروجی گرفت .ری اکت نیتیو (React Native) چیست ؟ری اکت نیتیو (React Native) نیز محیط توسعه ای است که توسط فیسبوک و در سال 2015 برای برنامه نویسی به صورت کراس پلتفرم و نیتیو ارائه شد .از ری اکت نیتیو (React Native) به صورت تخصصی می توان برای سیستم عامل های اندروید، ios، وب و دسکتاپ خروجی گرفت .بزرگترین تفاوت بین ری اکت نیتیو (React Native) و فلاتر (Flutter) چیست ؟فلاتر (Flutter) تمام برنامه را رندر کرده و سپس بومی می کند .ری اکت نیتیو (React Native) برنامه را به وسیله جاوا اسکریپت رندر و بومی می کند .و به همین دلیل است که آپدیت هایی مثل آپدیت 14 سیستم عامل ios روی برنامه های فلاتر (Flutter) تاثیر منفی نداشت اما روی برنامه های ری اکت نیتیو (React Native) تاثیر منفی داشت .آیا فلاتر (Flutter) از ری اکت نیتیو (React Native) سبقت خواهد گرفت ؟از ماه می سال 2021 فلاتر (Flutter) با یک پله عقب تر نسبت به ری اکت نیتیو (React Native) در جایگاه دوم ایستاده است و این برای ری اکت نیتیو (React Native) زنگ خطری بود که هر آن امکان تصاحب جایگاهش توسط فلاتر (Flutter) وجود دارد .تصویر زیر از جایگاه هریک از این تکنولوژی ها در بین معتبرترین فریمورک های جهان از سایت Stack Overflow  گرفته شده است .نکته جالب آمار بالا اینجاست که طبق تصویر زیر فلاتر (Flutter) در سال 2019 تقریبا در انتهای این لیست قرار داشت و این رشد چشمگیر نشان از پیشرو بودن این فریمورک نسبت به رقبای سر سخت خود دارد .اما نگاهی به آمار جستجوی گوگل کنسول نبرد شدید تری را بین این دو، نمایش می دهد پس از دو سال از صدر نشین بودن ری اکت نیتیو (React Native) فلاتر (Flutter) توانست در آپریل 2020 رکورد تعداد جستجو را هم از ری اکت نیتیو (React Native) برباید و این مساله هم می تواند نشانه ی دیگری از آینده این دو فریمورک محبوب باشد .طبق آماری که موسسه Statista در سال 2020 نسبت به سال 2019 منتشر کرد فلاتر (Flutter) توانسته بود با افزاش 9 درصدی محبوبیت خود نسبت به سال گذشته فاصله خود را با ری اکت نیتیو (React Native) به 3، برساند و ری اکت نیتیو (React Native) نیز نسبت به سال 2019 هیچ تغییری نکرده بود .اما این آمار زمانی جلب توجه کرد که این موسسه در جولای 2021 مجددا اطلاعات خود را به روز کرد و مشخص شد فلاتر (Flutter) با رسیدن به 42% محبوبیت توانسته گوی سبقت را از ری اکت نیتیو (React Native) با 38% محبوبیت برباید .اطلاعات ذکر شده در این مقاله ترجمه گزینش شده ای بود از وبسایت nomtek.com و تمام موارد در این وبسایت قابل مشاهده و صحت سنجی می باشد .برای مشاهده آموزش های پایه تا پیشرفته فریمورک فلاتر (Flutter) به سایت بنده به آدرس http://amadaylearn.com مراجعه کنید .</description>
                <category>احسان نصری</category>
                <author>احسان نصری</author>
                <pubDate>Mon, 13 Dec 2021 11:53:51 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی 10 ویجت و ابزار بسیار کاربردی فلاتر</title>
                <link>https://virgool.io/@ehsannasri/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-10-%D9%88%DB%8C%D8%AC%D8%AA-%D9%88-%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1-%D8%A8%D8%B3%DB%8C%D8%A7%D8%B1-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%D9%81%D9%84%D8%A7%D8%AA%D8%B1-pr97hgg76lzf</link>
                <description>معرفی 10 ویجت کابردی فلاترسلام دوستانامروز قصد دارم تا در رابطه با 10 ویجت بسیار کاربردی فریمورک فلاتر با شما صحبت کنم . این ویجت شامل مواردی به جزColumnRowContainerTextمی باشد چرا که همگی می دانیم که 4 ویجت بالا در رتبه ی اول استفاده در فلاتر قرار دارند و از این رو در ادامه می خواهیم 10 مورد بعدی را خدمت شما معرفی کنیم .شماره 1 : Safe Areaاین ویجت در زمانی که ما نمی توانیم یا نمی خواهیم از AppBar استفاده کنیم مورد استفاده قرار می گیرد، به این صورت که با wrap کردن Scaffold درون این ویجت، به برنامه می گوییم که تمام صفحه گوشی حتی قسمت status bar را هم به نمایش اپ ما اختصاص دهد .شماره 2 : Rich Textاین ویجت زمانی کاربرد دارد که می خواهیم در متن خاصی تنها کلمه یا قسمتی از متن را به صورت متفاوت نمایش دهیم . به طور مثال در نمایش متن Login in your account or Sign Up، می خواهیم Login  و Sign Up با رنگ دیگر و به صورت Bold نمایش داده شوند از این ویجت استفاده می کنیم .شماره 3 : ClipRRectاین ویجت برای گرد کردن لبه ی تصاویر یا ویجت های دیگر فلاتر و با استفاده از property موجود در آن یعنی border-radius این کار را انجام می دهد .شماره 4 : Media Queryویجت Media Query ویجتی جذاب برای تطبیق سایز ویجت های موجود در برنامه با سایز دیوایس های مختلف است، به طور مثال با استفاده از این ویجت می توانید تعیین کنید که برنامه شما در هر دیوایس و هم چنین در حالت افقی و عمودی با چه سایزی نمایش داده شود .شماره 5 : Future Builderاین ویجت یکی از کاربردی ترین ویجت های فلاتر می باشد که در زمان های جابجایی بین صفحات یا تغییر در آن ها اجازه مدیریت دیتاهای مورد نیاز برنامه از اینترنت را فراهم می کند، به این معنی که زمانی که از این ویجت استفاده می کنید می توانید جلوی بارگذاری چند باره اطلاعات از اینترنت را با تغییری کوچک در برنامه بگیرید و هزینه کاربر را کاهش داده و سرعت بارگذاری و استفاده از برنامه را افزایش چشمگیری دهید .شماره 6 : Flexibleاین ویجت با گرفتن نسبت های مورد نظر شما برای هر ویجت می تواند برنامه را در سایزهای مختلف دیوایس های مختلف با نسبت صحیح و مد نظر شما نمایش دهد، به طور مثال با دادن نسبت 3 به 1 بین دو ویجت خاص که در یک Row قرار دارند می توانید مطمئن باشید که برنامه در هر اندازه ای اجرا شود نسبت این دو ویجت نسبت به هم به اندازه درستی نمایش داده می شوند .شماره 7 : Sized Boxاز این ویجت برای ایجاد فاصله به صورت افقی یا عمودی استفاده می شود. به طور مثال شما بین دو ویجت text قصد ایجاد 10 پیکسل فاصله عمودی دارید، در این مواقع می توانید با استفاده از SizedBox و دادن مقدار Height 10 به آن این فاصله را ایجاد کنیدشماره 8 : Alignاین ویجت امکان تعیین جهت و مکان قرارگیری ویجت های دیگر را به ما می دهد، به این صورت که به طور مثال اگر بخواهید یک ویجت Container را به گوشه راست ویجت پدر خود ببرید می توانید با wrap کردن Container خود به درون Align و دادن مقدار bottomRight به آن این کار را انجام دهید .شماره 9 : Paddingاین ویجت مقدار فاصله ویجت های فرزند از لبه ی ویجت پدر را برای ما مشخص می کند، به طور مثال شما درون یک Container از ویجت Text به عنوان فرزند استفاده کرده اید و تمایل دارید Text شما که درون Container قرار دارد از لبه های Container شما 10 پیکسل فاصله داشته باشد، در این مواقع با استفاده از Padding می توانید این کار را انجام دهید .شماره 10 : MarginMargin دقیقا عملکردی مشابه Padding اما نسبت به فاصله لبه های ویجت شما با ویجت ها و لبه های برنامه به صورت بیرونی دارد، به طور مثال میخواهید Container خود را نسبت به ویجت کناری آن 10 پیکسل فاصله دهید تا لبه های آن ها به هم نچسبد، برای این کار می توانید از Margin کمک بگیرید .می توانید برای مشاهده آموزش های بیشتر در زمینه فلاتر به وبسایت من به آدرس http://amadaylearn.com مراجعه نمایید .</description>
                <category>احسان نصری</category>
                <author>احسان نصری</author>
                <pubDate>Sun, 12 Dec 2021 09:32:17 +0330</pubDate>
            </item>
                    <item>
                <title>ویجت در فلاتر چیست و چه کاربردی دارد ؟</title>
                <link>https://virgool.io/@ehsannasri/%D9%88%DB%8C%D8%AC%D8%AA-%D8%AF%D8%B1-%D9%81%D9%84%D8%A7%D8%AA%D8%B1-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D9%87-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%D8%AF%D8%A7%D8%B1%D8%AF-pn2fo49hrdd2</link>
                <description>ویجت در فلاتر چیست و چه کاربردی دارد ؟تقریبا می توان گفت هر چیزی در فلاتر یک ویجت است . به طور مثال زمانی که نیاز به ایجاد یک ستون از دیتا را دارید، میتوانید تمام دیتاهای خود را درون ویجتی به همین نام یعنی Column قرار دهید و اگر بخواهید این دیتاها به صورت سطری در برنامه نمایش داده شوند آن ها را درون ویجتی به نام Row قرار می دهید .اکثر ویجت ها در فلاتر فرزند می گیرند و عملکردی تقریبا شبیه به مفهوم ارث بری در شی گرایی دارند که در آن فرزند از پدر ارث بری می کند، به طور مثال اگر ویجت Column را به عنوان فرزند (child) به ویجتی به نام Container به عنوان پدر، بدهیم و به Container خود طول و عرض خاصی را نسبت بدهیم ویجت Column هم طبق همان طول و عرض عمل کرده و از آن خارج نمی شود .ساختار درختی ویجت ها در فلاتر :به دلیل امکان تعریف فرزند (child) یا فرزندان (children) در فلاتر امکان قرار دادن آن ها به صورت تو در تو و درختی وجود دارد .به طور مثال شما می خواهید در ستونی 4 سطر داشته باشید که هریک نام فردی را نمایش دهد اما در سطر دوم می خواهید نام دو نفر را نمایش دهید برای این کار می توانید کدی شبیه به کد زیر را در فلاتر بنویسید :Column(
 children:[
  Text (&#039;ehsan nasri&#039;),
  row(
   children:[
    Text (&#039;mahsa ebrahimi &#039;),
    Text (&#039;saber nasri&#039;),
    ],
  Text (&#039;hasan amiri&#039;),
 ],
),خروجی کد بالا :ehsan nasrimahsa ebrahimi saber nasrihasan amiriهمان طور که مشاهده می کنید در این بخش ابتدا درون ویجت Column به عنوان فرزند اول، نام ehsan nasri نمایش داده می شود، در سطر دوم از این ستون یک Row یا سطر تعریف کرده ایم که شامل دو نام mahsa ebrahimi و saber nasri می باشد که به صورت پشت سر هم و زیر نام ehsan nasri نمایش داده شده اند و در نهایت نام hasan amiri که در سطر سوم به نمایش در آمده است . در این مثال ما درون ویجت Column از ویجت های Text و Row به صورت تو در تو استفاده کردیم .ویجت ها یک عنصر در رابط کاربری یا UI را تعریف می کنند و عملکردی تقریبا مشابه با view در java دارند .ویجت ها چون چیزی را ترسیم نمی کنند در پردازش برنامه عملکردی بسیار سریعتر دارند و پردازش سبکی را برای سیستم ایجاد می کنند .از ویجت ها در تمام قسمت های فلاتر باید استفاده کرد، نکته مثبت این آپشن در فریمورک فلاتر این است که برنامه نویسان این تکنولوژی تقریبا هر چیزی را که مورد نیاز شما باشد به صورت ویجت عرضه کرده اند و می توانید با یک نگاه و جستجو در اینترنت یا داکیومنت فلاتر هر امکانی را به ساده ترین شکل ممکن به برنامه خود اضافه کنید و این قابلیت سرعت و حجم کدزنی شما را به شدت کاهش داده و خروجی برنامه را به استانداردهای روز نزدیک تر می کند .در قسمت های بعدی از این سری آموزش ها به معرفی ویجت ها به صورت تک به تک و با قابلیت ها و آپشن های موجود در آن ها خواهیم پرداخت . می توانید برای مشاهده آموزش های تخصصی در زمینه فلاتر به وبسایت بنده به آدرس http://amadaylearn.com  مراجعه و موارد بیشتری را در این زمینه آموزش ببینید .</description>
                <category>احسان نصری</category>
                <author>احسان نصری</author>
                <pubDate>Sat, 11 Dec 2021 11:09:16 +0330</pubDate>
            </item>
            </channel>
</rss>