ফ্লাটার (সফটওয়্যার)

**ফ্লাটার** গুগলের নির্মিত একটি ওপেন-সোর্স ইউআই সফটওয়্যার ডেভলপমেন্ট কিট, যেটা ব্যবহার করে একক কোডভিত থেকে অ্যান্ড্রয়েড, আইওএস, উইন্ডোজ, ম্যাক, লিনাক্স, গুগল ফুসিয়া  এবং ওয়েবের জন্য অ্যাপ্লিকেশন নির্মাণ করা সম্ভব। 

ফ্লাটারের প্রথম সংস্করণের কোডনাম ছিলো  "স্কাই" যেটা শুধুমাত্র অ্যান্ড্রয়েডে চলতো। ২০১৫ সালের ডার্ট ডেভেলপার শীর্ষ সম্মেলনে ধারাবাহিকভাবে প্রতি সেকেন্ডে ১২০টি ফ্রেম রেন্ডারের সক্ষমতার বর্ণনা করে এটাকে উন্মোচিত করা হয়।  শাংহাইয়ে গুগল ডেভেলপার দিবসের মূল বক্তব্যে গুগল ফ্লাটার রিলিজ প্রিভিউ ২-এর ঘোষণা দেয়, যেটা ৪ ডিসেম্বর ২০১৮ সালে মুক্তি পাওয়া ফ্লাটার ১.০-এর আগে ফ্লাটারের সবচেয়ে বড় মুক্তি, যেটা ফ্লাটার লাইভ ইভেন্টে প্রকাশিত হয়, এবং ফ্লাটারের প্রথম স্টেবল সংস্করণ।  ২০১৯ সালের ১১ ডিসেম্বর ফ্লাটার ইন্টারেক্টিভ ইভেন্টে ফ্লাটার ১.১২ প্রকাশিত হয়।

৬ মে ২০২০ সালে ডার্ট এসডিকে ২.৮ ও ফ্লাটার সংস্করণ ১.১৭.০ প্রকাশিত হয়। এ সংস্করণে অ্যাপলের মেটাল এপিআইর জন্য সমর্থন সংযুক্ত করা হয়, যেখানে আইওএস যন্ত্রসমূহে ফ্লাটারের পারফরমেন্স প্রায় ৫০% বৃদ্ধি পায়। এ সংস্করণে নতুন মেটারিয়েল উইজেট ও নতুন নেটওয়ার্ক ট্র্যাকিং টুলও যুক্ত করা হয়।

৪ মার্চ ২০২১ তে গুগল একটা অনলাইন ফ্লাটার এংগেজমেন্ট ইভেন্টে ফ্লাটার ২ মুক্ত করে। এ বিশাল হালনাগাদটি ওয়েব-ভিত্তিক অ্যাপ্লিকেশনের জন্য প্রাতিষ্ঠানিক সমর্থন যুক্ত করে, সাথে সাথে উইন্ডোজ, ম্যাকওএস এবং লিনাক্সের জন্য ডেস্কটপ অ্যাপলিকেশন সমর্থন যুক্ত করে, যদিও এটা এখনও প্রারম্ভিক অবস্থায় আছে।

## ফ্রেমওয়ার্ক আর্কিটেকচার
ফ্লাটারের প্রধান উপাদানগুলোর মধ্যে রয়েছে:

* ডার্ট প্ল্যাটফর্ম 
* ফ্লাটার ইঞ্জিন  
* ফাউন্ডেশন লাইব্রেরি 
* ডিজাইন-স্পেসিফিক উইজেট

### ডার্ট প্ল্যাটফর্ম
ফ্লাটার অ্যাপলিকেশনগুলো ডার্ট প্রোগ্রামিং ভাষায় লেখা হয় এবং যেখানে অন্য অনেক প্রোগ্রামিং ভাষা যেমন জাভা, জাভাস্ক্রিপ্টের উল্লেখযোগ্য অনেক বৈশিষ্ট্যের দেখা মিলে। 

উইন্ডোজ, ম্যাক ওএস এবং লিনাক্স  ফ্লাটার জাস্ট-ইন-টাইম এক্সিকিউশন ইঞ্জিন ডার্ট ভার্চুয়াল মেশিনে চলে। ফ্লাটারের বিশেষ একটা সুবিধা হলো হট রিলোড, যেখানে অ্যাপলিকেশন চলা অবস্থায়ই উৎস কোডের পরিবর্তন অ্যাপলিকেশনে ইনজেক্ট করা সম্ভব।

ফ্লাটার ব্যবহার করে মুক্তি পাওয়া অ্যাপলিকেশনগুলো অ্যাহেড-অভ-টাইম বা এওটি কম্পিলেশন ব্যবহার করে, যেটা অ্যান্ড্রয়েড ও আইওএসে তুলনামূলক ভালো পারফরমেন্স নিশ্চিত করে।

### ফ্লাটার ইঞ্জিন
প্রাথমিকভাবে সি ++ তে লেখা লিফ্টারের ইঞ্জিন গুগলের স্কিয়া গ্রাফিক্স লাইব্রেরি ব্যবহার করে নিম্ন-স্তরের রেন্ডারিং সহায়তা সরবরাহ করে। এছাড়াও  এটি প্ল্যাটফর্ম-নির্দিষ্ট এসডিকে যেমন অ্যান্ড্রয়েড এবং আইওএস দ্বারা সরবরাহিত ইন্টারফেস ব্যবহার করতে পারে।  ফ্লাটার ইঞ্জিন হ'ল ফ্লাটার  অ্যাপ্লিকেশনগুলি হোস্ট করার জন্য একটি বহনযোগ্য রানটাইম। এটি অ্যানিমেশন এবং গ্রাফিক্স, ফাইল এবং নেটওয়ার্ক ইনপুট/আউটপুট , অ্যাক্সেসিবিলিটি সমর্থন, প্লাগইন আর্কিটেকচার এবং একটি ডার্ট রানটাইম এবং সংকলন সরঞ্জামচয়ন সহ ফ্লার্টারের মূল লাইব্রেরিগুলি প্রয়োগ করে। বেশিরভাগ ডেভেলপাররা ফ্লাটার ফ্রেমওয়ার্কের মাধ্যমে ফ্লাটারের সাথে  যোগাযোগ করে যা একটি আধুনিক, প্রতিক্রিয়াশীল কাঠামো এবং প্ল্যাটফর্মের একটি সমৃদ্ধ সেট, লেআউট এবং ফাউন্ডেশন উইজেট সরবরাহ করে।

### ফাউন্ডেশন লাইব্রেরি
ডার্টে লেখা ফাউন্ডেশন লাইব্রেরি প্রাথমিক ক্লাস এবং ফাংশন সরবরাহ করে যা ইঞ্জিনের সাথে যোগাযোগের জন্য এপিআই এর মতো উপাদানগুলো ব্যবহার করে ফ্লাটার অ্যাপ্লিকেশন তৈরি করতে ব্যবহার করা হয়। 

### ডিজাইন স্পেসিফিক উইজেট
ফ্লাটার ফ্রেমওয়ার্কটিতে দুই সেট উইজেট থাকে যা নির্দিষ্ট ডিজাইনের জন্য ব্যবহার করা হয়। ম্যাটেরিয়াল ডিজাইন উইজেট একই নামে গুগলের ডিজাইন ভাষা প্রয়োগে ব্যবহার করা হয় আর কুপার্টিনো উইজেট অ্যাপলের হিউম্যান ইন্টারফেস গাইডলাইন আইওএস যন্ত্রে প্রয়োগ করে। 

## হ্যালো ওয়ার্ল্ড উদাহরণ
হ্যালো, ওয়ার্ল্ড প্রোগ্রাম ফ্লাটারে যেমন দেখায়:


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


## তথ্যসূত্র

বিষয়শ্রেণী:গুগল সফটওয়্যার
বিষয়শ্রেণী:কম্পিউটার প্রোগ্রামিং সরঞ্জাম
বিষয়শ্রেণী:সফটওয়্যার ফ্রেমওয়ার্ক
বিষয়শ্রেণী:২০১৭-এর সফটওয়্যার
বিষয়শ্রেণী:মালিকানাধীন সফটওয়্যার