آموزش فلاتر (Flutter)

دسته بندی: برنامه نویسی موبایل

آموزش فلاتر

در این صفحه می خوانید:

معرفی فلاتر (Flutter)

فلاتر (Flutter)  یک کیت توسعه نرم افزار UI اوپن سورس است که توسط گوگل ساخته شده است. جهت توسعه برنامه های کاربردی برای Android، iOS، Windows، Mac، Linux، Google Fuchsia و وب استفاده می شود. نسخه اول Flutter با نام رمزگذاری شده "Sky" شناخته شد و روی سیستم عامل اندروید اجرا شد. این برنامه در اجلاس برنامه نویس Dart 2015 رونمایی شد، با هدف اعلام شده که قادر به ارائه مداوم با سرعت 120 فریم در ثانیه است.

همچنین فلاتر (Flutter) یک فریمورک اوپن است که در سال 2017 توسط گوگل معرفی شد و به کمک آن می توانید اپلیکیشن های نیتیو (Native) برای اندروید و iOS بسازید. شما به کمک فلاتر می توانید با یک بار کدنویسی یک اپلیکیشن زیبا و نیتیو طراحی کنید که روی اندروید و iOS قابل اجرا است. همچنین شما میتوانید طراحی رابط کاربری اپلیکیشن های Native که با کاتلین، جاوا و یا سوئیفت می نویسید را نیز با Flutter انجام دهید.

تاریخچه فلاتر (Flutter)

اولین نسخه فلاتر به نام Sky برای سیستم عامل اندروید ارائه شد. این برنامه در نشست توسعه دهندگان دارت سال 2015 معرفی شد. گوگل در نشست توسعه دهندگان Google در شانگهای در تاریخ 4 دسامبر 2018 اعلام کرد در رویدادی به نام Flutter Live نسخه اول فلاتر را معرفی خواهد کرد. در خلال اصلی روزهای توسعه دهنده Google در شانگهای، Google اعلام کرد انتشار پیش نمایش 2 Flutter که آخرین نسخه بزرگ قبل از Flutter 1.0 است. در تاریخ 4 دسامبر 2018، Flutter 1.0 در رویداد Flutter Live منتشر شد و اولین نسخه "پایدار" Framework را نشان داد. در 11 دسامبر سال 2019، Flutter 1.12 در رویداد Flutter Interactive منتشر شد، اعلام شد که Flutter اولین پلتفرم UI است که برای محاسبات محیطی طراحی شده است. در رویداد Flutter Live اولین نسخه پایدار این فریمورک معرفی و منتشر شد.

معماری فلاتر (Flutter)

معماری فلاتر

اجزای اصلی فلاتر عبارتند از:

پلتفرم دارت

برنامه های Flutter به زبان دارت نوشته شده اند و از بسیاری از ویژگی های پیشرفته تر این زبان استفاده می کنند. در ویندوز، macOS و لینوکس از طریق پروژه جاسازی نیمه رسمی Flutter Desktop، Flutter در دستگاه مجازی Dart اجرا می شود که دارای یک موتور کامپایل Just In Time است. در هنگام نوشتن و اشکال زدایی برنامه، Flutter از تلفیقی Just In Time استفاده می کند و امکان Hot Reload داغ را فراهم می کند، که با استفاده از آن می توانید تغییرات در فایل های منبع را به یک برنامه در حال اجرا تزریق کنید. فلاتر با پشتیبانی از Hot Reload، این امر را گسترش می دهد، جایی که در بیشتر موارد تغییر در کد منبع می تواند بلافاصله در برنامه در حال اجرا بدون نیاز به راه اندازی مجدد یا از بین رفتن حالت منعکس شود. این ویژگی که در فلاتر اجرا شده است ستایش گسترده ای را به دست آورده است. نسخه های منتشر شده از برنامه های Flutter با تلفیقی پیش از زمان (AOT) در Android و iOS گردآوری شده است و باعث می شود عملکرد عالی Flutter در دستگاه های تلفن همراه امکان پذیر باشد.

موتور فلاتر

موتور Flutter، که در درجه اول در سی پلاس پلاس نوشته شده است، با استفاده از کتابخانه گرافیکی Skia Google، پشتیبانی رندر سطح پایین را ارائه می دهد. علاوه بر این، آن را با SDK های خاص برای سیستم عامل مانند برنامه های ارائه شده توسط Android و iOS واسط برقرار می کند. Flutter Engine یک ران تایم قابل حمل برای میزبانی از برنامه های Flutter است. این کتابخانه کتابخانه های اصلی Flutter، از جمله انیمیشن و گرافیک، فایل و شبکه I / O، پشتیبانی از قابلیت دسترسی، معماری افزونه و یک ابزار زمان اجرا و کامپایل Dart را پیاده سازی می کند. بیشتر توسعه دهندگان با Flutter از طریق Flutter Framework تعامل می کنند، که یک فریمورک رسپانسیو مدرن و مجموعه غنی از ویجت های پلتفرم، چیدمان و پایه را فراهم می کند.

کتابخانه Foundation

کتابخانه Foundation، که در دارت نوشته شده است، کلاس ها و کارکردهای اساسی را ارائه می دهد که برای ساخت برنامه های کاربردی با استفاده از Flutter، مانند API برای ارتباط با موتور استفاده می شود.

ویجت ها

طراحی UI در Flutter شامل استفاده از ترکیب برای جمع آوری / ایجاد "ویجت" از سایر ویجت ها است. ترفند درک این موضوع این است که بدانیم هر درخت از اجزای سازنده (ویجت) که تحت یک روش واحد ()build ساخته می شود نیز به عنوان یک ویجت واحد گفته می شود. این بدان دلیل است که آن ویجت های کوچکتر نیز از ویجت های حتی کوچکتر ساخته شده اند و هرکدام یک روش ()build ساخت خاص خود را دارند. اینگونه است که فلاتر از ترکیب استفاده می کند.

اسناد می گویند: "ویجت توضیحات تغییرناپذیر بخشی از رابط کاربری است." یک انسان به شما خواهد گفت که این یک طرح است، که یک روش بسیار ساده تر برای فکر کردن در مورد آن است. با این وجود، باید به خاطر داشته باشید که انواع مختلف ویجت ها در Flutter وجود دارد، و شما نمی توانید همه آنها را ببینید یا لمس کنید. متن یک ویجت است، اما TextStyle آن نیز وجود دارد که مواردی مانند اندازه، رنگ، خانواده فونت و وزن را تعریف می کند. ویجت هایی وجود دارند که چیزهایی را نمایان می کنند، ویژگی هایی را نشان می دهند (مانند TextStyle) و حتی دیگران که کارهایی را انجام می دهند مانند FutureBuilder و StreamBuilder.

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

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

ویجت های مخصوص طراحی

فریمورک Flutter شامل دو مجموعه ویجت است که با زبان های طراحی خاص مطابقت دارد. ویجت های Design Material زبان طراحی گوگل را با همین نام پیاده سازی می کنند، و ویجت های Cupertino دستورالعمل های رابط انسانی در iOS را طراحی می کنند.

ویژگی های فلاتر (Flutter)

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

  • Hot Reload

ویژگی Hot Reload Flutter به شما کمک می کند تا به سرعت و به راحتی آزمایش کنید، رابط کاربر را ایجاد کنید، ویژگی های خود را اضافه کنید و اشکالات را برطرف کنید. Hot Reload با تزریق فایل های کد منبع به روز شده در دستگاه در حال اجرا Dart Virtual (VM) کار می کند. بعد از اینکه کلاس های VM با نسخه های جدید زمینه ها و توابع به روزرسانی می کنند، فریمورک Flutter بطور خودکار درخت ویجت را مجدداً بازسازی می کند و به شما امکان می دهد تا به سرعت اثرات تغییرات خود را مشاهده کنید.

فلاتر

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

  • توسعه کراس پلتفرم

CPD باعث صرفه جویی در وقت، انرژی و پول می شود. با استفاده از Flutter، شما باید یک بار کد را بنویسید، آن را برای دو برنامه حفظ و استفاده کنید. نیاز به تهیه کد متفاوتی برای یک بستر متفاوت است. با استفاده از Flutter، می توانید برای پلتفرم Fuchsia که یک سیستم عامل آزمایشی است که در Google انجام می شود، تلاش کنید.

  • ویژگی های قابل دسترس نیتیو و SDK ها

روند توسعه برنامه شما از طریق کدهای نیتیو Flutter، ادغام های شخص ثالث و API های سیستم عامل آسان و لذت بخش می شود. بنابراین، شما می توانید به راحتی به ویژگی های نیتیو و SDK ها در هر دو سیستم عامل اندروید و iOS دسترسی پیدا کرده و از زبان های برنامه نویسی پرکاربرد مانند Kotlin و Swift استفاده مجدد کنید.

  • کد مینیمال

فلاتر با استفاده از زبان برنامه نویسی دارت توسعه یافته است. دارت از ترکیب JIT و AOT استفاده می کند که به بهبود زمان کلی راه اندازی، عملکرد و سرعت بخشیدن به عملکرد کمک می کند. JIT سیستم عملکرد را با عملکرد Hot Reload بهبود می بخشد. این نرم افزار UI را بدون تلاش برای ساختن یک محصول جدید، تازه می کند.

فلاتر و دارت

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

فلاتر و فایربیس

فایربیس (Firebase) یک بستر توسعه نرم افزار موبایل و وب است که در سال 2011 توسط Firebase. Inc ایجاد و سپس توسط گوگل در سال 2014 ارائه آمد. فایربیس یک ارائه دهنده سرویس Backend-as-a-a-Service یا به اختصار BaaS واقع در سان فرانسیسکو، کالیفرنیا است که به کاربران امکان می دهد بدون نیاز به زبان های برنامه نویسی سمت سرور، برنامه هایی را برای وب و رابط های موبایل ایجاد کنند. Firebase به توسعه دهندگان این امکان را می دهد که از زبان های برنامه نویسی سمت سرور دور شوند و بیشتر بر روی ایجاد یک تجربه بهتر کاربر تمرکز کنند. می توان آن را به عنوان یک بسته نرم افزاری از یک سرور، API و دیتا استور که به زبان عمومی نوشته شده است، مشاهده کرد تا برنامه نویسان آن را به راحتی در نیازهای خود تغییر دهند.

Flutter و Firebase دست به دست هم می دهند تا به شما در ساخت برنامه های تلفن همراه در زمان ضبط کمک کنند. Flutter SDK گوگل برای ساخت برنامه های موبایل برای iOS و Android است. Firebase به شما امکان می دهد بدون حفظ سرورهای شخصی خود، به خدمات پس زمینه برنامه های تلفن همراه از جمله تأیید اعتبار، ذخیره سازی، بانک اطلاعاتی و هاستینگ دسترسی پیدا کنید.

مثال های فلاتر (Flutter)

Hello World در فلاتر چنین است:

import 'package:flutter/material.dart';
void main() => runApp(HelloWorldApp());

class HelloWorldApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Hello World App', home: Scaffold( appBar: AppBar( title: Text('Hello World App'), ), body: Center( child: Text('Hello World'), ), ), ); } }

آیا این نوشته را دوست داشتید؟
packtpub-flutter-in-7-days

آموزش فلاتر در 7 روز


به کمک این دوره شما اعتماد به نفس لازم برای ساخت رابط کاربری سفارش سازی شده را برای پروژه های خود با استفاده از فلاتر بدست خواهید آورد. شما در 7 روز، ...

1398/07/24 13276 بازدید
packtpub-mastering-flutter

آموزش تسلط بر فلاتر


در این دوره شما اپلیکیشن های جدید را با استفاده از ویژگی های مختلف Flutter ایجاد خواهید کرد. شما تنها با یک codebase برای اندروید و iOS اپلیکیشن ایجاد...

1398/07/15 4329 بازدید
packtpub-dart-2-in-7-days

آموزش دارت 2 در هفت روز


این دوره با آماده سازی محیطی برای توسعه Dart و Flutter شروع می شود تا در این محیط اولین اپلیکیشن خود را بسازید. سپس نحوه ایجاد متغیرها، انجام عملیات و...

1398/02/29 10004 بازدید
packtpub-flutter-app-development-for-beginners

توسعه اپلیکیشن با فلاتر برای تازه کاران


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

1398/02/23 12950 بازدید
linkedin-learning-google-firebase-for-flutter

آموزش Google Firebase برای فلاتر


به کمک این دوره می توانید اپلیکیشنی با استفاده از Flutter در سمت موبایل، Firebase در بک اند و Cloud Firestore برای ذخیره داده ایجاد کنید....

1398/02/12 3503 بازدید
skillshare-flutter-zero-to-professional-cross-platform-development-for-ios-android

فلاتر (Flutter) صفر تا حرفه ای: ابزار توسعه چندسکویی برای اندروید و iOS


فلاتر یک کیت توسعهٔ نرم‌افزار (SDK)، برای برنامه کاربردی موبایل، مکمل چارچوب، ابزارک ها (widgets) و ابزارها می باشد، که به توسعه دهندگان یک روش موثر ب...

1398/02/07 23084 بازدید
packtpub-real-world-projects-with-flutter

پروژه های دنیای واقعی با استفاده از فلاتر (Flutter)


این دوره برای توسعه دهندگانی است که فلاتر (Flutter) را تاکنون مطالعه کرده اند، اما در مراحل بعدی توسعه خود به برخی موانع برخورد کرده اند. این بدین منظ...

1398/02/05 8560 بازدید
packtpub-learning-dart-build-your-first-app-with-flutter

یادگیری دارت (Dart) - ایجاد اولین برنامه کاربردی با فلاتر (Flutter)


شما با فلاتر (Flutter) و دارت، برنامه های کاربردی برای هر Play Store و App Store توسعه خواهید داد. برنامه های کاربردی ساخته شده با فلاتر، بسیار سریع ه...

1398/02/05 4749 بازدید
pluralsight-flutter-the-big-picture

دوره Flutter The Big Picture


این دوره به آموزش ساخت اپلیکیشن برای iOS و Android با Flutter و ابزارهای آن می پردازد. همچنین استفاده از Android Studio / IntelliJ و ویژوال استودیو کد...

1398/01/28 3990 بازدید
pluralsight-flutter-getting-started

آموزش شروع کار با Flutter


Flutter یک پلتفرم جدید تلفن همراه است که توسط گوگل پشتیبانی می شود. در این دوره با ساخت اپلیکیشن ها با Flutter، ساخت یک برنامه Hello World با Flutter،...

1397/07/01 6435 بازدید زیرنویس دارد