פלאטר

**Flutter** היא ערכת פיתוח תוכנה (SDK) לבניית ממשק משתמש (UI) בקוד פתוח שנוצרה על ידי גוגל. Flutter משמשת לפיתוח אפליקציות עבור מספר פלטפורמות במקביל: אנדרואיד,iOS, Windows, Mac, Linux, Google Fuchsia web.

הגרסה הראשונה של פלאטר נודעה בשם הקוד "Sky" והופעלה על מערכת ההפעלה אנדרואיד. פרויקט זה נחשף באירוע של שפת דארט לשנת 2015, מתוך כוונה מוצהרת להיות מסוגל לרנדר מסך במהירות של 120 פריימים לשנייה. במהלך האירוע של גוגל בשנחאי, גוגל הודיעה על שחרור הדגמת שימוש בפלאטר, המהווה את המהדורה האחרונה לפני Flutter 1.0.

## ארכיטקטורה
המרכיבים העיקריים של פלאטר כוללים:
* שפת ופלטפורמת דארט
* מנוע רינדור
* הספרייה של גוגל שבאה יחד עם פלאטר
* ווידג'טים

### שפת Dart
אפליקציות פלאטר כתובות בשפת דארט ועושות שימוש ברבות מהתכונות המתקדמות יותר של השפה.

ב- Windows, macOS ו- Linux, ה-Flutter פועל במכונה ווירטואלית (Dart VM) הכוללת מנוע JIT. בזמן כתיבת קוד ודיבוג של אפליקציה, Flutter משתמש ב-JIT, ומאפשר  Hot reloading, בעזרתו ניתן להזרים שינויים לקובצי המקור של היישום בעודו פועל. כך ברוב המקרים שינויים בקוד המקור יכולים להשתקף מייד ביישום פועל ללא צורך בהפעלה מחדש או כל אובדן של מצב (State).  תכונה זו, המיושמת בפלאטר, זכתה לשבחים רבים  .

גרסאות Release של אפליקציות Flutter מתקמפלות מראש (AOT) באנדרואיד וגם ב- iOS,  מה שמאפשר את הביצועים הגבוהים של פלאטר במכשירים ניידים.

### המנוע הגרפי של פלאטר
המנוע של פלאטר, שנכתב בעיקר ב- C ++, מספק תמיכה ברינדור באמצעות ספריית הגרפיקה Skia של גוגל. בנוסף, הוא מתממשק עם תוכנות SDK ספציפיות לפלטפורמות כמו אלה המסופקות על ידי אנדרואיד ו- iOS . המנוע מאחורי פלאטר מרנדר את רכיבי היישום במהלך זמן הריצה. הוא מיישם את ספריות הליבה של פלאטר, כולל אנימציה וגרפיקה, קריאה וכתיבה של קבצים, תמיכה בנגישות, ארכיטקטורת תוספים, את תוכנית הריצה של דארט ועוד. מרבית המפתחים ישתמשו גם ב-Flutter Framework, המספק מסגרת מודרנית, ריאקטיבית, ומערך עשיר של רכיבי widget לפלטפורמה.

### ספריית הייסוד של גוגל עבור פלאטר
ספריית הייסוד, שנכתבה ב- Dart, מספקת דברים בסיסיים ופונקציות המשמשות לבניית יישומים באמצעות Flutter, כמו APIs לתקשורת עם המנוע. 

### ווידג'טים
עיצוב UI ב-Flutter כולל שימוש בקומפוזיציה להרכבה / יצירה של "ווידג'טים" מ- Widgets אחרים. למעשה כל עץ של רכיבים (ווידג'טים) שמורכב מפונקציית build() מכונה גם widget יחיד. הסיבה לכך היא שהווידג'טים הקטנים יותר מורכבים גם מ- Widgets קטנים עוד יותר, ולכל אחד מהם יש פונקציית build() משל עצמו. 

### ווידג'יטים ספציפיים לעיצוב
Flutter מכילה שתי קבוצות ווידג'טים התואמות לשפות עיצוב ספציפיות. ווידג'טים ל-Material Design מיישמים את שפת העיצוב של גוגל באותו שם, ווידג'טים *קופרטינו ([[קופרטינו|Cupertino]])* מיישמים את הנחיות הממשק האנושי של iOS של Apple.   

## דוגמת Hello World
תוכנית Hello world בפלאטר נראית כך: 
```dart
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'),
 ),
 ),
 );
 }
}
```


## היסטוריית גרסאות
ב-4 בדצמבר 2018, שוחררה Flutter 1.0 באירוע Flutter Live, המציין את הגרסה ה"יציבה" הראשונה של הפלטפורמה.

ב-11 בדצמבר 2019, שוחררה Flutter 1.12 באירוע העולמי של Flutter.

ב-6 במאי 2020, שוחררה Flutter 1.17.

ב-5 באוגוסט 2020, שוחררה Flutter 1.20.

ב-3 במרץ 2021 שוחררה Flutter 2.0.

## קהילה ישראלית
ל-Flutter קהילות רבות בעולם המאמצות את הטכנולוגיה הזו, ביניהם קבוצות Flutter Israel Developers, GDG, Google Developers Group, מתכנתים המוכרים כGDE- Google Developer- Expert.
## ראו גם
* React Native

## קישורים חיצוניים

* 

## הערות שוליים

קטגוריה:גוגל: תוכנה
קטגוריה:כלי תכנות
קטגוריה:תכנות מונחה-עצמים