ফ্লাটার: ভুমিকা

01 October 2023

1 min read

“সহজ কথায়, ফ্লাটার হলো গুগলের তৈরি এমন একটি সফটওয়্যার ডেভেলপমেন্ট টুলকিট যা cross-platform অ্যাপ্লিকেশন তৈরির জন্য ব্যবহার করা হয়। ফ্লাটার অ্যাপে বিভিন্ন প্যাকেজ, plugins এবং widgets এর সিরিজ রয়েছে — তবে শুধু এগুলোই সব নয়।


একাধিক প্ল্যাটফর্ম পরের ব্যাপার, একটি প্ল্যাটফর্মে কোনো অ্যাপ চালু করা এবং চালানোর সবচেয়ে সহজ উপায় হলো ফ্লাটার। আপনি যতটা আশা করেন তার চেয়েও বেশি প্রোডাক্টিভ থাকা সম্ভব ফ্লাটারের এই সার্ভিসগুলোর মাধ্যমে— declarative, widget ভিত্তিক UI কাঠামো, reactive প্রোগ্রামিং এর জন্য ফার্স্ট ক্লাস সাপোর্ট, cross-platform abstractions এবং এর ভার্চুয়াল মেশিন যা কোড চেঞ্জের hot reloading সমর্থন করে।

একটা বিষয়, ফ্লাটার কোনো ভাষা নয়। ফ্লাটার প্রোগ্রামিং ভাষা হিসেবে Dart ইউজ করে। আপনি যদি Kotlin, Swift, Java বা Typescript জানেন আপনার কাছে Dart পরিচিত লাগবে কারণ এটি একটি object-oriented C-style ভাষা‌।

আপনি Dart কে native কোডে compile করতে পারেন যেটা একে আরো দ্রুত করে তোলে। এছাড়াও এটি hot relode বৈশিষ্ট্য আছে এমন একটি ভার্চুয়াল মেশিন (VM) ব্যবহার করে। এটা আপনাকে পুরো প্রোগ্রামটা পুনরায় প্রথম থেকে শুরু করা ছাড়াই কোড আপডেট করতে সাহায্য করে।



কেনো ফ্লাটার ব্যবহার করবেন?

[webp-to-jpg output image]



১. ওপেন-সোর্স প্ল্যাটফর্ম (Open-Source Platform): এটা একটি ওপেন সোর্স-প্ল্যাটফর্ম যেটা যেকোনো উদ্দেশ্যে নতুন উদ্যোক্তারা ব্যবহার এবং স্টাডি করতে পারেন।


২. কাস্টম ডিজাইন এবং নেভিগেশন (Custom Design and Navigation): প্রতিবার ভিউ পরিবর্তন হলে এটি পুনরায় একটি UI আঁকে যা একটি দ্রুত এবং মসৃণ অ্যাপ ডেভেলপমেন্টের অভিজ্ঞতা দেয়‌।


৩. কুইক টেস্টিং এবং হট রিলোড (Quick testing and hot reload): ফ্লাটার ব্যবহারের সময়, কোডবেসে আপনি যেই পরিবর্তন করেছেন তা দেখার জন্য অ্যাপ্লিকেশন রিফ্রেশ করা লাগবেনা।


৪. সময় এবং মূল্য সাশ্রয়ী (Time and Cost-effective): অ্যান্ড্রয়েড এবং iOS উভয়ের জন্য এর একক কোডবেস প্রোগ্রামিং ফিচার ডেভেলপারদের অনেক সময় বাঁচায় এবং একে সুপার ফ্রেন্ডলি করে তোলে।


৫. চিত্তাকর্ষক এবং কাস্টমাইজড উইজেট (Impressive and Customized Widgets): ডেভেলপাররা তাদের অ্যাপ্লিকেশনের জন্য কেমন লেআউট চান এবং কিভাবে কম সময়ে একটি সফল অ্যাপ্লিকেশন তৈরি করতে চান সেসব বিষয়ে তাদের অনেক নিয়ন্ত্রণ দেওয়া হয়।

৬. ডার্ট ভাষা (Dart Language): ফ্লাটারের সেরা অংশগুলোর মধ্যে একটি হলো এটি Dart ভাষা ব্যবহার করে যেটা অসাধারণ গতি ও কর্মক্ষমতা সম্পন্ন এবং সবচেয়ে সহজ প্রোগ্রামিং ভাষাগুলোর একটি।

৭. কোড শেয়ারিং সহজ (Ease of code sharing): একবার ফ্লাটারে কোড লেখা হয়ে গেলে এর প্রায় ৯৫% বারবার ব্যবহার করা যায়।

৮. অবজেক্ট ওরিয়েন্টেশন (Object Orientation): বিদ্যমান (native) অ্যাপ ডেভেলপমেন্টের একটি প্রধান সমস্যা যা ফ্লাটার সমাধান করে দেয় তা হলো দৃশ্যমান User Experience (UI) তৈরি করে। ফ্লাটার অবজেক্ট ভিত্তিক উন্নয়নের ওপর নির্ভর করে।

৯. প্রচন্ড কর্মক্ষম (Super Productive): ডেভেলপাররা তাদের অ্যপ্লিকেশনের লেআউট কেমন চান এবং কিভাবে অল্প সময়ে সফল অ্যাপ্লিকেশন তৈরি করতে চান তার ওপর তাদের নিয়ন্ত্রণ দেওয়া হয়।

১০. কমিউনিটি সাপোর্ট এবং দলিল রচনা (Community Support and Documentation): React এবং Iconic এর তুলনায় ফ্লাটারের কমিউনিটি বেশ ছোট।

কেন বিভিন্ন কোম্পানি ফ্লাটার ব্যবহার করছে?


আজকাল মূলত তিনটি কারণে কোম্পানিগুলো তাদের development stack এ cross-platform সমাধানগুলো বিবেচনা করে:


দ্রুত উন্নয়ন (Faster Development): একটি একক কোডবেসে কাজ করা।


কম খরচ (Lower cost): অনেকগুলোর পরিবর্তে একটি প্রজেক্ট বজায় রাখা। (N সংখ্যক প্ল্যাটফর্মের জন্য N সংখ্যক প্রজেক্ট)


ধারাবাহিকতা (Consistency): যেকোনো প্ল্যাটফর্মে একই UI এবং কার্যকারিতা।


• বাজারে দ্রুত।


• প্রতিটি প্রয়োজনের জন্য প্লাগইন (plugin)।


• আরো ভালো ডিজাইন এবং কাস্টমাইজেশন (customization)।

ফ্লাটারের প্রথম প্রয়োগ (Flutter First Application)

[webp-to-jpg output image]



পর্যবেক্ষণ (Observation):


• এই উদাহরণটি একটি Material অ্যাপ তৈরি করে। Material হলো একটি visual ডিজাইন ভাষা যা মোবাইল এবং ওয়েবের জন্য আদর্শ। ফ্লাটার Material widgets এর একটি সমৃদ্ধ সেট অফার করে। আপনার pubspec.yaml ফাইলের ফ্লাটার অংশে একটি use-material-design: true entry থাকা ভালো। এটা আপনাকে Material এর আরো উপাদান ব্যবহার করার অনুমতি দিবে, যেমন: তাদের predefined icons এর সেট।

• অ্যাপটি StatelessWidget কে প্রসারিত করে, যেটা অ্যাপটিকেই একটি widget এ পরিণত করে। ফ্লাটারে alignment, padding এবং layout-সহ প্রায় সবকিছুই একটি widget.

• Material লাইব্রেরির Scaffold widget মূল Material ডিজাইনের দৃশ্যমান লেআউট তৈরি করে এবং একটি default app bar ও একটি body property প্রদান করে যেটা home screen এর জন্য widget tree কে ধরে রাখে।

• একটি widget এর প্রধান কাজ হলো একটি build () পদ্ধতি প্রদান করা যেটা অন্যান্য lower-level widget এর পরিপ্রেক্ষিতে কিভাবে widget টি প্রদর্শন করা হবে তা বর্ণনা করে।

• এই উদাহরণটির মূল অংশে একটি Center widget রয়েছে যেটার মধ্যে একটি Text child widget রয়েছে। Center widget টি এর widget subtree কে screen এর কেন্দ্রে সারিবদ্ধ করে।

ফ্লাটারের সীমাবদ্ধতা (Limitations of Flutter)

১. টিভি, ঘড়ি, গাড়ি (TVs, Watches, Cars)

আপনি tvOS, watchOS, CarPlay অথবা Android Auto এর জন্য অ্যাপ তৈরি করতে ফ্লাটার ব্যবহার করতে পারবেন না।
প্রভাব? এই প্ল্যাটফর্মগুলোকে টার্গেট করার জন্য আপনাকে বিদ্যমান (native) কোড বা একটি বিকল্প কাঠামো ব্যবহার করতে হবে।

২. ভেক্টর গ্রাফিক্স এবং অ্যানিমেশন (Vector graphics and animations)
ভেক্টর ফরম্যাটের জন্য সাপোর্ট নিখুঁত না। SVG প্যাকেজ বেশিরভাগ ক্ষেত্রে কাজ করে, কিন্তু মাঝেমধ্যে সমস্যা হয়।
প্রভাব? বর্তমান plugin গুলোর সাথে কিছু ফাইল সঠিকভাবে render হয় না। বিকল্প হলো 2Dimension's Flare.

৩. Dart থেকে সরাসরি বিদ্যমান API গুলোকে কল করা (Directly calling Native APIs from Dart)
ফ্লাটার native platform API গুলোর সাথে যোগাযোগ করতে পারে কিন্তু সরাসরি নয়।
প্রভাব? প্রচলিত পরিস্থিতিগুলোতে native API গুলোর সাথে যোগাযোগ করার জন্য আপনাকে native swift বা java/kotlin কোড লিখতে হবে।

৪. বিদ্যমান‌ প্ল্যাটফর্ম ভিউগুলো (Native Platform Views)
কখনো কখনো আপনাকে native UI এর উপাদানগুলো ব্যবহার করতে হবে, যেমন: ম্যাপ এবং ওয়েব ভিউ। ফ্লাটার এগুলো বসাতে সহায়তা করে কিন্তু এগুলো শুধু প্রিভিউতে রয়েছে এবং কিছু সমস্যাও রয়েছে।
প্রভাব? সবচেয়ে জনপ্রিয় সমস্যাগুলোর মধ্যে রয়েছে Google Maps plugin, WebView plugin এবং platform views.

৫. কোড পুশিং (Code Pushing)
এটা ডেভেলপারদের মুহূর্তের মধ্যে patch গুলোকে পুশ করতে অনুমতি দেয় + ক্রমাগত এক্সপান্ড + কোনো অতিরিক্ত নতুন রিলিজ। কিন্তু ফ্লাটার এটা সাপোর্ট করেনা।

প্রভাব? ফ্লাটার অ্যাপের সকল আপডেটকে স্ট্যান্ডার্ড অ্যাপ স্টোর রিলিজ প্রক্রিয়ার মধ্যে দিয়ে যেতে হবে, যেটা অনেক সময় নেয়।

সবশেষে বলা যায়, ফ্লাটারের কাঠামো সত্যিকারের platform-independent উপায়ে মোবাইল অ্যাপ্লিকেশন তৈরির জন্য চমৎকার কাঠামো প্রদান করার মাধ্যমে দারুণ একটি কাজ করে। ডেভেলপমেন্ট প্রক্রিয়ার সরলতা, মোবাইল অ্যাপ্লিকেশনের উচ্চ কর্মক্ষমতা, Android এবং iOS উভয় প্ল্যাটফর্মের জন্য সমৃদ্ধ এবং প্রাসঙ্গিক user interface প্রদান করার মাধ্যমে ফ্লাটারের কাঠামো নিশ্চিতভাবে অদূর ভবিষ্যতে অনেক নতুন ডেভেলপারকে উচ্চ-কর্মক্ষম এবং বৈশিষ্ট্য-পূর্ণ মোবাইল অ্যাপ্লিকেশন বিকাশ করতে সাহায্য করবে।
ধন্যবাদ!

Share this article

RELATED ARTICLES

ওয়েব vs অ্যাপ (ফ্লাটারের যেখানে একচ্ছত্র আধিপত্য)

08 May 2024

ক্র্যাক করুন কোডিং ইন্টারভিউ

একজন কোডার হিসেবে আল্টিমেট গোল থাকা উচিৎ ড্রিম জব এচিভ করা। তবে ড্রিম জব এচিভ করার ক্ষেত্রে সবচেয়ে বড় বাধা কোডিং ইন্টারভিউ ক্র্যাক করা। জ আজ কথা হবে কোডিং ইন্টারভিউ ক্র্যাক করা নিয়ে,কথা হবে কীভাবে ইজিলি ক্র্যাক করতে পারবেন তা নিয়ে। তাই বিগিনার,মিডিওকার বা এক্সপেরিমেন্ট যে লেভেল এর কোডার হন না কেন কোডিং ইন্টারভিউ ক্র্যাক করার সলিউশন জানতে চাইলে পড়ে নিন আজকের এই ব্লগটি। কোডারদের ড্রিম জব এচিভ করার ক্ষেত্রে প্রধান বাধা হতে পারে ইন্টারভিউ ক্র্যাকিং। তবে একবার ভাবুন তো যদি আপনি এই প্রসেসে সারর্ভাইব

21 April 2024

1 min read

চ্যাটজিপিটি ইউজেস ফর লারাভেল ডেভেলপারস

বর্তমান সময়ে এক্সপার্ট হতে হলে সবাইকেই AI ইউজ করা জানতে হয়। আর সেটা যদি হয় লারাভেল ডেভেলপার্সদের জন্য, তাহলে বলা যায়, chatgpt আপনার কাজকে করতে পারে আরো ইজি এন্ড টাইম-ফ্রেন্ডলি। কিন্তু তা কিভাবে?এই নিয়ে ডিটেইলস জেনে নিতে পড়ে নিন আজকের ব্লগটি। ChatGPT চ্যাটজিপিটি হল OpenAI-এর ক্রিয়েট করা একটি Large Language Model, যা বিভিন্ন কাজের জন্য ইউজ করা যেতে পারে। আর এই বিভিন্ন কাজের মধ্যে রয়েছে কোড ক্রিয়েট এবং ডিবাগ করা।  Laravel লারাভেল হলো PHP-ভিত্তিক একটি জনপ্রিয় ওপেন-সোর্স ওয়েব অ্যাপ্লিকেশন ফ্রেম

12 March 2024

1 min read

Envato মার্কেটপ্লেসে শাইন করতে কী শিখবেন?

Envato Marketplace কে এক কথায় ক্রিয়েটিভ ডিজিটাল asset এর শপিংমল বলা যেতে পারে। বিশ্বব্যাপী ক্রিয়েটিভ প্রফেশনালরা, যেমন - ওয়েব ডিজাইনার, গ্রাফিক্স ডিজাইনার, ফটোগ্রাফার ইত্যাদি মানুষদের কাছে এই অনলাইন মার্কেটপ্লেসটি খুবই জনপ্রিয়। তাঁরা যেমন তাদের কন্টেন্ট বিক্রি করার জন্য এই মার্কেটপ্লেসে আসেন, ঠিক তেমনি অসংখ্য ক্রেতাও সেগুলি কিনতে আসেন। তাই এই মার্কেটপ্লেসটি ক্রিয়েটিভ পেশার মানুষদের জন্য আয়ের বেশ সম্ভাবনাময় একটি ক্ষেত্র।  আপনি হয়তো ইতোমধ্যেই Envato Marketplace এ জয়েন করে ফেলেছেন কিংবা করতে যাচ্ছ

12 February 2024

অনলাইন লাইভ স্কিল ডেভেলপমেন্ট প্ল্যাটফর্ম।

ডাউনলোড করুন ওস্তাদ অ্যাপ

কমিউনিটি -এর সাথে কানেক্টেড থাকতে