Flutter Documentations
Flutter Documentations
مقدمه3..................................................................................................................
2
مقدمه
در دنیای امروز ،تلفنهای هوشمند و اپلیکیشنهای موبایل نقش بسیار مهمی در زندگی روزمره ما ایفا میکنند.
از ارتباطات گرفته تا خرید ،آموزش و سرگرمی ،همهچیز به کمک اپلیکیشنها سادهتر و سریعتر شده است .به
همین دلیل یادگیری توسعه اپلیکیشنهای موبایل به یکی از مهارتهای پرتقاضا و ارزشمند در بازار کار تبدیل
شده است .یکی از بهترین و محبوبترین ابزارها برای ساخت این اپلیکیشنها ،فریمورک Flutterاست که
توسط شرکت گوگل ارائه شده است.
Flutterبه برنامهنویسان این امکان را میدهد که با استفاده از یک زبان برنامهنویسی ساده و قدرتمند به نام
،Dartاپلیکیشنهایی با کیفیت باال ،سرعت عملکرد عالی و طراحی جذاب برای سیستمعاملهای مختلف مانند
اندروید و iOSبسازند .یکی از مزیتهای برجسته ، Flutterقابلیت نوشتن یک بار کد و استفاده آن در چند
پلتفرم است که این موضوع زمان توسعه را بهطور قابل توجهی کاهش میدهد و هزینهها را مدیریت میکند.
در این خالصه درس ،شما با مفاهیم پایه و پیشرفته Flutterآشنا خواهید شد که شامل آشنایی با ویجتها،
مدیریت وضعیت برنامه ،ناوبری بین صفحات ،ارتباط با سرویسهای آنالین ،ذخیرهسازی دادهها و همچنین احراز
هویت کاربران است .هدف این مجموعه ،فراهم کردن دانش الزم برای ساخت اپلیکیشنهای کاربردی و حرفهای
به زبان ساده و قابل فهم است.
در کنار مباحث نظری ،مثالهای کاربردی و نکات مهمی ارائه شدهاند که به شما کمک میکنند مفاهیم را بهتر
درک کنید و در پروژههای عملی به کار ببرید .همچنین تاکید شده است که مفاهیم به گونهای آموزش داده شود
که دانشجویان بتوانند در امتحانات نهایی به راحتی پاسخگو باشند و مهارتهای الزم برای ورود به بازار کار را
کسب کنند.
با یادگیری فالتر ،نه تنها توانایی توسعه اپلیکیشنهای متنوع را خواهید داشت ،بلکه به دنیایی از ابزارها و
کتابخانههای قدرتمند دسترسی پیدا میکنید که مسیر حرفهای شما را هموارتر میکند .بنابراین توصیه میشود
تمام مباحث این خالصه درس را با دقت مطالعه کنید و تمرینهای عملی آن را انجام دهید تا به یک برنامهنویس
موبایل حرفهای تبدیل شوید.
3
معرفی فالتر و شروع کار
Flutterیک فریمورک متنباز از گوگل است که برای توسعه اپلیکیشنهای موبایل ،وب و دسکتاپ طراحی
شده است .مهمترین ویژگی Flutterاین است که با یک کدبیس واحد میتوان اپلیکیشنهایی با عملکرد باال و
ظاهر زیبا برای چند پلتفرم مختلف ساخت.
ویژگیها و مزایا:
شروع کار:
نکات مهم:
قبل از شروع ،حتما flutter doctorرا اجرا کنید تا محیط توسعه شما کامل و بدون خطا باشد.
با مفاهیم اصلی زبان Dartآشنا شوید تا برنامهنویسی راحتتر شود.
برای توسعه بهتر UIبهتر است با اصول طراحی رابط کاربری و ویجتها آشنا باشید.
4
آشنایی با ویجتها و طراحی صفحه
در Flutterهمه اجزای صفحه نمایش با ویجتها ساخته میشوند؛ ویجتها میتوانند ساده مثل متن یا پیچیده
مثل فرمها باشند.
StatefulWidget:ویجتی که دادههایش قابل تغییر است و به تغییرات واکنش نشان میدهد.
نکات مهم:
هر ویجت میتواند دارای فرزند یا چند فرزند باشد و با ترکیب آنها میتوان صفحات پیچیده ساخت.
استفاده صحیح از Paddingو Marginباعث زیبایی و خوانایی بهتر رابط کاربری میشود.
5
مدیریت صفحات و ناوبری
در اپلیکیشنهای چندصفحهای ،جابجایی بین صفحات اهمیت زیادی دارد . Flutterاین کار را با کالس
Navigatorانجام میدهد که عملکردی مشابه یک پشته دارد.
نکات مهم:
مدیریت پارامترهای ورودی به صفحات اهمیت دارد (مثالً ارسال شناسه یا دادهها به صفحه جدید).
برای طراحی صفحات پیچیده و حرفهای در Flutterاز ویجتهای متنوع استفاده میشود.
ویجتهای کاربردی:
6
طراحی ظاهری باBoxDecoration:
با این ویجت میتوان رنگ پسزمینه ،سایه ،گوشههای گرد و تصاویر پسزمینه را تنظیم کرد.
نکات مهم:
رعایت اصول طراحی UI/UXبرای تجربه بهتر کاربری ضروری است.
استفاده از تمها و استایلهای مشترک باعث یکپارچگی ظاهر برنامه میشود.
Responsive Designبرای نمایش صحیح در اندازههای مختلف صفحه نمایش بسیار مهم است.
مدیریت وضعیت یا State Managementیعنی کنترل دادههایی که روی نمایش برنامه تاثیر میگذارند.
StatelessWidget:
ویجتی که بعد از ساخته شدن تغییر نمیکند .مثالً دکمهای که فقط یک متن ثابت دارد.
StatefulWidget:
ویجتی که میتواند تغییر کند و با تغییر دادهها صفحه دوباره رندر شود.
{ )((setState
;count++
;)}
نکات مهم:
مدیریت وضعیت پیچیدهتر با روشهایی مثلBloc ، Providerیا GetXبهتر انجام میشود.
شناخت دقیق نوع داده و چرخه حیات ویجتها در انتخاب صحیح کمک میکند.
7
نحوه ارتباط با APIو دریافت دادههای آنالین
برای کار با دادههای آنالین و ارتباط با سرور از پروتکل HTTPاستفاده میشود .پکیج httpدر Flutterاین
امکان را فراهم میکند.
نکات مهم:
مدیریت خطاها مثل قطع بودن اینترنت یا پاسخ ناموفق سرور مهم است.
بهینهسازی درخواستها و کش کردن دادهها باعث افزایش سرعت و کاهش مصرف اینترنت میشود.
برای تعامل با سایر برنامههای دستگاه مانند مرورگر ،شمارهگیر یا پیامک از پکیج url_launcherاستفاده
میشود.
مثالها:
;))"launchUrl(Uri.parse("https://flutter.dev
8
شمارهگیری
;))"launchUrl(Uri.parse("tel:+1234567890
ارسال پیامک
;))"launchUrl(Uri.parse("sms:+1234567890
نکات مهم:
پیش از استفاده بهتر است بررسی شود که دستگاه امکان اجرای عملیات را دارد.
برای ذخیره دادههای کوچک و ساده مثل تنظیمات یا اطالعات کاربر از shared_preferencesاستفاده میشود.
این روش دادهها را به صورت کلید-مقدار در حافظه دستگاه ذخیره میکند.
ذخیره مقدار:
خواندن مقدار:
برای دادههای پیچیدهتر یا پایدارتر میتوان از پایگاه دادههای محلی مثل SQLiteیا پکیج Hiveاستفاده
کرد.
9
نکات مهم:
استفاده از پایگاه دادههای NoSQLیا SQLبرای دادههای پیچیده و حجیم پیشنهاد میشود.
Firebase Authenticationیک سرویس آماده برای مدیریت ورود ،ثبتنام و امنیت کاربران است .این
سرویس روشهای مختلفی مثل ایمیل/پسورد ،شماره موبایل ،حسابهای گوگل و فیسبوک را پشتیبانی میکند.
مراحل کلی:
مثال ثبتنام:
(await FirebaseAuth.instance.createUserWithEmailAndPassword
email: email, password: password
;)
نکات مهم:
در Firebaseمیتوان قوانین امنیتی برای دسترسی به دیتابیس و Storageتعریف کرد.
میتوان از امکانات پیشرفته مثل تایید دو مرحلهای نیز بهره برد.
10