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

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

فلاتر (انگلیسی: 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'),
        ),
      ),
    );
  }
}

منابع

ویرایش
  1. "FAQ - Flutter". Retrieved 2018-08-08.
  2. Chris Bracken. "Release v0.0.6: Rev alpha branch version to 0.0.6, flutter 0.0.26 (#10010) · flutter/flutter". GitHub. Retrieved 2018-08-08.
  3. "Flutter SDK releases". flutter.dev.
  4. "Flutter makes it easy and fast to build beautiful mobile apps. : flutter/flutter". July 29, 2019 – via GitHub.
  5. "Google's "Fuchsia" smartphone OS dumps Linux, has a wild new UI". Ars Technica.
  6. Amadeo, Ron (1 May 2015). "Google's Dart language on Android aims for Java-free, 120 FPS apps". Ars Technica.
  7. "Speed Up Native Development As Google Flutter Comes Out Of Beta" (به انگلیسی). Appetiser Apps. Retrieved 2018-12-21.
  8. Lelel, Wm (26 February 2018). "Why Flutter Uses Dart". HackerNoon. Retrieved 5 December 2018.
  9. stephenwzl (2018-08-01). "Flutter's Compilation Patterns". ProAndroidDev. Retrieved 2018-12-06.
  10. "Technical Overview - Flutter". flutter.dev (به انگلیسی). Retrieved 2017-12-13.
  11. "foundation library - Dart API". docs.flutter.dev (به انگلیسی). Retrieved 2017-12-13.
  12. "Material Design Widgets - Flutter". flutter.dev (به انگلیسی). Retrieved 2017-12-13.
  13. "Cupertino (iOS-style) Widgets - Flutter". flutter.dev (به انگلیسی). Retrieved 2017-12-13.
  14. "Human Interface Guidelines". developer.apple.com (به انگلیسی). Retrieved 2019-10-08.

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

ویرایش