# فلاتر (نرم‌افزار)

فلاتر|  |
| نویسنده(های) اصلی | گوگل |
| توسعه‌دهنده(ها) | انجمن گوگل |
| مخزن | * github.com/flutter/flutter
 |
| نوشته‌شده با | سی سی پلاس‌پلاس دارت (زبان برنامه‌نویسی) |
| پلت‌فرم | اندروید، آی‌اواس، گوگل فیوشا، وب، مایکروسافت ویندوز، مک‌اواس و لینوکس |
| مجوز | پروانه بی‌اس‌دی |
| وبگاه | flutter.dev |

**فلاتر** (انگلیسی: Flutter)، یک واسط کاربری کیت توسعه نرم‌افزار متن‌باز است که توسط گوگل طراحی و ساخته شده‌است. فلاتر برای توسعه برنامه‌های کاربردی برای سکوهای اندروید، آی‌اواس، مایکروسافت ویندوز، مک‌اواس، لینوکس، گوگل فیوشا و وب استفاده می‌شود.
اولین نسخه فلاتر با اسم رمز «آسمان» و بر روی سیستم‌عامل اندروید اجرا می‌شد. از فلاتر در سال ۲۰۱۵ در همایش توسعه دهندگان دارت با هدف اعلام شده که قادر به ارائه مداوم با سرعت ۱۲۰ فریم در ثانیه است، رونمایی شد. در جریان نطق اصلی روزهای توسعه‌دهندگان گوگل در شانگهای، گوگل نسخه ۲ پیش نمایش فلاتر را منتشر کرد که آخرین نسخه بزرگ قبل از فلاتر ۱٫۰ است. در ۴ دسامبر ۲۰۱۸، فلاتر ۱٫۰ در مراسم زنده فلاتر منتشر شد که اولین نسخه پایدار این چهارچوب را نشان می‌دهد. در ۱۱ دسامبر ۲۰۱۹ فلاتر ۱٫۱۲ در رویداد Flutter Interactive منتشر شد.

## معماری چهارچوب

اجزای اصلی فلاتر شامل موارد زیر است:

* سکوی دارت
* موتور فلاتر
* کتابخانه پایه
* ابزارک‌های مخصوص طراحی

### سکوی دارت

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

برنامه‌های فلاتر با زبان دارت نوشته می‌شوند و از ویژگی‌های پیشرفته فراوان آن سود می‌برند.

بر روی ویندوز، سیستم‌عامل مک و لینوکس به وسیله پروژه جاسازی رومیزی نیمه رسمی فلاتر، فلاتر بر روی ماشین مجازی دارت که دارای ویژگی کامپایل درجا استفاده می‌کند. در زمان نوشتن یا اشکال‌زدایی برنامه، فلاتر از کامپایل درجا برای تازه‌سازی داغ(hot reload) که باعث تزریق کد منبع تغییر یافته به برنامه درحال اجرا می‌شود استفاده می‌کند. فلاتر این امکان را با پشتیبانی از بارگیری مجدد حالتمند گسترش می‌دهد، در نتیجه در بیشتر مواقع تغییرات در کد منبع می‌تواند در برنامه درحال اجرا، بدون نیاز به راه‌اندازی مجدد یا از دست دادن حالت منعکس شوند.

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

### موتور فلاتر

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

### کتابخانه پایه

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

### ابزارک‌ها

#### ابزارک‌های مخصوص طراحی

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

## مثال، برنامه «سلام، دنیا!»

کد برنامه «سلام، دنیا!» در فلاتر به این صورت نوشته می‌شود :

```
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'),
 ),
 ),
 );
 }
}

```

## منابع

* مشارکت‌کنندگان ویکی‌پدیا. «Flutter (software)». در *دانشنامهٔ ویکی‌پدیای انگلیسی*، بازبینی‌شده در ۱۲ نوامبر ۲۰۱۹.

## پیوند به بیرون

* وبگاه رسمی