هو ببساطة حزمة تطوير تطبيقات الهواتف الذكية أو مايعرف إختصارا ب SDK, وتحديدا يستخدم من أجل تطوير واجهات المستخدم أو UI ويستخدم لغة البرمجة Dart من أجل البرمجة الخلفية , من أهم الأمور التي تم التركيز عليها عند تطوير Flutter هي جعله وسيلة عملية لتطوير التطبيقات بسرعة وكفاءة ,كما أنه يعتبر حل جد مناسب للشركات أو المطورين الذي يريدون الوصول إلى المستخدمين في منصات أندرويد و ISO بأقل جهد وتكلفة ممكنة.
, يساعد Flutter المصممين أيضا على بناء تطبيقات تتميز بتصميم حديث وعصري عن طريق حزم جاهزة للإستخدام وأيضا مع توثيق مميز , يوفر أيضا ما يسمى Widgets وهي مكونات ال UI في التطبيق ,حيث تتوفر مع تطبيقات عملية توفر الممارسات المناسبة لبناء التطبيقات.
لماذا Flutter ؟؟!
حسنا اليك ميزات فلاتر التي ستجعلك تعتمد عليه بشكل كبير :
1- التطور السريع
يساعدك عمليات التحميل السريعة و التجريب بسرعة وسهولة ، وبناء واجهات مستخدم ، وإضافة ميزات ، وإصلاح الأخطاء بشكل أسرع. و تجربة إعادة التحميل دون بطئ ،و دون فقدان الحالة ، ويعمل على المحاكيات ، وأجهزة المحاكاة ، والأجهزة التابعة ل iOS و Android.
2- أكثر تعبيرا ووجهات رسومية جميلة
متع مستخدميك باستخدام ومشاهدة عناصر واجهة مستخدم بطريقة جميلة ومتميزة واكثر رونق و خصوصا ال (Cupertino iOS-flavor) ، واجهات التطبيقات الغنية بالحركة ، والتصفح الطبيعي السلس .
3- نطاق عمل عصري ومتفاعل
سهولة إنشاء واجهات المستخدم الخاصة بك مع خاصية رد الفعل المباشر و المحدث لما تقوم به , إن Flutter هو مجموعة غنية من الحاجيات ، والتخطيط ، والأساس.و يمكنك من خلاله من حل تحدياتومشاكل واجهة المستخدم الصعبة و باستخدام واجهة تطبيقات قوية ومرنة للبيانات سواء كانت ثنائية الأبعاداو ثلاثية او ذات الرسوم المتحركة والإيماءات والمؤثرات وغيرها.
class CounterState extends State<Counter> {
int counter = 0;
int counter = 0;
void increment() {
// Tells the Flutter framework that state has changed,
// so the framework can run build() and update the display.
setState(() {
counter++;
});
}
Widget build(BuildContext context) {
// This method is rerun every time setState is called.
// The Flutter framework has been optimized to make rerunning
// build methods fast, so that you can just rebuild anything that
// needs updating rather than having to individually change
// instances of widgets.
return Row(
children: <Widget>[
RaisedButton(
onPressed: increment,
child: Text(‘Increment’),
),
Text(‘Count: $counter’),
],
);
}
}