פלאטר
מפתח | חברת גוגל, Greg Spencer, Adam Barth, Jonah Williams, Ian Hickson |
---|---|
מחזור חיים | 23 באוקטובר 2014 – הווה (10 שנים) |
גרסה אחרונה | 3.24.5 (13 בנובמבר 2024) |
גרסת בטא |
v1.12.13+hotfix.9 ב־2020 |
נכתבה בשפות | C, C++, Dart[2] |
סוג רישיון | רישיון BSD החדש |
קוד מקור | https://github.com/flutter/flutter |
flutter | |
Flutter היא ערכת פיתוח תוכנה (SDK) לבניית ממשק משתמש (UI) בקוד פתוח שנוצרה על ידי גוגל. Flutter משמשת לפיתוח אפליקציות עבור מספר פלטפורמות במקביל: אנדרואיד,iOS, Windows, Mac, Linux, Google Fuchsia[3] web.
הגרסה הראשונה של פלאטר נודעה בשם הקוד "Sky" והופעלה על מערכת ההפעלה אנדרואיד. פרויקט זה נחשף באירוע של שפת דארט לשנת 2015, מתוך כוונה מוצהרת להיות מסוגל לרנדר מסך במהירות של 120 פריימים לשנייה.[4] במהלך האירוע של גוגל בשנחאי, גוגל הודיעה על שחרור הדגמת שימוש בפלאטר, המהווה את המהדורה האחרונה לפני Flutter 1.0.
ארכיטקטורה
[עריכת קוד מקור | עריכה]המרכיבים העיקריים של פלאטר כוללים:
- שפת ופלטפורמת דארט
- מנוע רינדור
- הספרייה של גוגל שבאה יחד עם פלאטר
- ווידג'טים
שפת Dart
[עריכת קוד מקור | עריכה]אפליקציות פלאטר כתובות בשפת דארט ועושות שימוש ברבות מהתכונות המתקדמות יותר של השפה.[5]
ב- Windows, macOS ו- Linux, ה-Flutter פועל במכונה ווירטואלית (Dart VM) הכוללת מנוע JIT. בזמן כתיבת קוד ודיבוג של אפליקציה, Flutter משתמש ב-JIT, ומאפשר Hot reloading, בעזרתו ניתן להזרים שינויים לקובצי המקור של היישום בעודו פועל. כך ברוב המקרים שינויים בקוד המקור יכולים להשתקף מייד ביישום פועל ללא צורך בהפעלה מחדש או כל אובדן של מצב (State). [6] תכונה זו, המיושמת בפלאטר, זכתה לשבחים רבים [דרוש מקור] .
גרסאות Release של אפליקציות Flutter מתקמפלות מראש (AOT) באנדרואיד וגם ב- iOS, [7] מה שמאפשר את הביצועים הגבוהים של פלאטר במכשירים ניידים.
המנוע הגרפי של פלאטר
[עריכת קוד מקור | עריכה]המנוע של פלאטר, שנכתב בעיקר ב- C ++, מספק תמיכה ברינדור באמצעות ספריית הגרפיקה Skia של גוגל. בנוסף, הוא מתממשק עם תוכנות SDK ספציפיות לפלטפורמות כמו אלה המסופקות על ידי אנדרואיד ו- iOS .[5] המנוע מאחורי פלאטר מרנדר את רכיבי היישום במהלך זמן הריצה. הוא מיישם את ספריות הליבה של פלאטר, כולל אנימציה וגרפיקה, קריאה וכתיבה של קבצים, תמיכה בנגישות, ארכיטקטורת תוספים, את תוכנית הריצה של דארט ועוד. מרבית המפתחים ישתמשו גם ב-Flutter Framework, המספק מסגרת מודרנית, ריאקטיבית, ומערך עשיר של רכיבי widget לפלטפורמה.
ספריית הייסוד של גוגל עבור פלאטר
[עריכת קוד מקור | עריכה]ספריית הייסוד, שנכתבה ב- Dart, מספקת דברים בסיסיים ופונקציות המשמשות לבניית יישומים באמצעות Flutter, כמו APIs לתקשורת עם המנוע.[5] [8]
ווידג'טים
[עריכת קוד מקור | עריכה]עיצוב UI ב-Flutter כולל שימוש בקומפוזיציה להרכבה / יצירה של "ווידג'טים" מ- Widgets אחרים. למעשה כל עץ של רכיבים (ווידג'טים) שמורכב מפונקציית build() מכונה גם widget יחיד. הסיבה לכך היא שהווידג'טים הקטנים יותר מורכבים גם מ- Widgets קטנים עוד יותר, ולכל אחד מהם יש פונקציית build() משל עצמו.
ווידג'יטים ספציפיים לעיצוב
[עריכת קוד מקור | עריכה]Flutter מכילה שתי קבוצות ווידג'טים התואמות לשפות עיצוב ספציפיות. ווידג'טים ל-Material Design מיישמים את שפת העיצוב של גוגל באותו שם, ווידג'טים קופרטינו (Cupertino) מיישמים את הנחיות הממשק האנושי של iOS של Apple.[5] [9] [10] [11]
דוגמת Hello World
[עריכת קוד מקור | עריכה]תוכנית 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'),
),
),
);
}
}
היסטוריית גרסאות
[עריכת קוד מקור | עריכה]ב-4 בדצמבר 2018, שוחררה Flutter 1.0 באירוע Flutter Live, המציין את הגרסה ה"יציבה" הראשונה של הפלטפורמה.
ב-11 בדצמבר 2019, שוחררה Flutter 1.12 באירוע העולמי של Flutter.[12]
ב-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.
ראו גם
[עריכת קוד מקור | עריכה]קישורים חיצוניים
[עריכת קוד מקור | עריכה]- אתר האינטרנט הרשמי של פלאטר (באנגלית)
הערות שוליים
[עריכת קוד מקור | עריכה]- ^ "Flutter SDK releases". flutter.dev.
- ^ "FAQ - Flutter". נבדק ב-2018-08-08.
- ^ "Google's "Fuchsia" smartphone OS dumps Linux, has a wild new UI". Ars Technica.
- ^ Amadeo, Ron (1 במאי 2015). "Google's Dart language on Android aims for Java-free, 120 FPS apps". Ars Technica.
{{cite web}}
: (עזרה) - ^ 1 2 3 4 "Technical Overview - Flutter". flutter.dev (באנגלית). נבדק ב-2017-12-13.
- ^ Lelel, Wm (26 בפברואר 2018). "Why Flutter Uses Dart". HackerNoon. נבדק ב-5 בדצמבר 2018.
{{cite web}}
: (עזרה) - ^ stephenwzl (2018-08-01). "Flutter's Compilation Patterns". ProAndroidDev. נבדק ב-2018-12-06.
- ^ "foundation library - Dart API". docs.flutter.dev (באנגלית). נבדק ב-2017-12-13.
- ^ "Material Design Widgets - Flutter". flutter.dev (באנגלית). נבדק ב-2017-12-13.
- ^ "Cupertino (iOS-style) Widgets - Flutter". flutter.dev (באנגלית). נבדק ב-2017-12-13.
- ^ "Human Interface Guidelines". developer.apple.com (באנגלית). נבדק ב-2019-10-08.
- ^ "Flutter: the first UI platform designed for ambient computing" (באנגלית). Flutter blog. נבדק ב-2019-12-11.