Skip to main content

Flutter Developer হওয়ার জন্য রোডম্যাপ-

Flutter Developer হওয়ার জন্য রোডম্যাপ-

 যেকোনো প্রযুক্তি বা ভাষা শিখতে প্রয়োজন সময় এবং ধৈর্যের। কখনও মাঝখান থেকে শুরু করবেন না, বা এক লাফে অ্যাডভান্স শিখতে শুরু করবেন না, এবং কখনোই নিজের শেখার সাথে অন্যদের তুলনা করতে যাবেন না।



বর্তমান আইটি ইন্ডাস্ট্রিতে সবচেয়ে প্রিয় এবং গৃহীত প্রযুক্তির মধ্যে ফ্লাটার অন্যতম। কিন্তু কেন? কেন ফ্লাটার এত শীর্ষে? এত এত ফ্রেমওয়ার্ক থাকতে ফ্লাটারই কেন? এই আর্টিকেলে, আমরা দেখবো কেন ফ্লাটার সবচেয়ে শীর্ষে, এবং জানবো কীভাবে এটা শিখতে হয়।
ফ্লাটার কী? ফ্লাটার হচ্ছে সুন্দর ও নেটিভভাবে কম্পাইল্ড অ্যাপ্লিকেশন নির্মাণের জন্য গুগলের ইউআই টুলকিট, যার সাহায্যে ওয়েব, ডেস্কটপ, মোবাইল, এবং এমবেডেড ডিভাইসের জন্য অ্যাপ তৈরি করা যায় মাত্র একটা কোডবেজে। তার মানে এটা বলা যায় যে, আপনি যদি ফ্লাটার দিয়ে আপনার অ্যাপ বা ওয়েবসাইট বানান, তাহলে এটা হবে আরও বেশি সুন্দর, আর হবে অন্যান্য ফ্রেমওয়ার্ক দিয়ে বানানো অ্যাপ বা ওয়েবসাইটের চেয়ে বেশি দ্রুতগতির! তো ফ্লাটার কীভাবে এত জনপ্রিয়তা পাচ্ছে?
  • ফ্লাটার নেটিভ ল্যাঙ্গুয়েজে কোড কম্পাইল করে।
  • স্টার্টাপগুলো ফ্লাটার সহজেই শিখে এমভিপি বানিয়ে ফেলতে পারে।
  • ওয়াইড প্ল্যাটফর্ম সাপোর্ট (অ্যান্ড্রয়েড, আইওএস, উইন্ডোজ, ম্যাকওএস, লিনাক্স, এমবেডেড এবং আরও অনেক!)
  • অসাধারণ ডকুমেন্টেশন এবং শেখার জন্য যথেষ্ট পরিমাণে রিসোর্স
  • বিশাল সহায়ক কমিউনিটি
  • ওপেনসোর্স
ফ্লাটারকে হাতের মুঠোয় আনার রোডম্যাপ!
ধাপ ০: শুরু করার আগে আপনাকে জানতে হবে OOP কনসেপ্টস। ফ্লাটারের ভাষার নাম Dart এবং এটা Dart এর ওওপি ব্যবহার করে। কাজেই অন্তত যেকোনো একটা ভাষায় (জাভা হলে ভালো) ওওপিতে দক্ষতা আনতে হবে। Native Android শেখা একটা ভালো আইডিয়া, কারণ এতে করে আপনি ফ্লাটার আরও ভালোভাবে বুঝতে পারবেন। এতে বাধ্যবাধকতা নেই, তবে শেখার জন্য ভালো। আপনি যদি সদ্য পাস করা গ্র্যাজুয়েট হন, তাহলে আপনার দায়িত্ব হবে নিজের একটা পোর্টফোলিও অথবা অনলাইন প্রেসেন্স বানিয়ে ফেলে ভীড়ের মাঝে মাথা তুলে দাঁড়ানো। কাজেই, শিখে ফেলুন GIT। আপনার প্রজেক্টগুলো গিটহাবে হোস্ট করুন, সেটা যাই হোক না কেন! ফ্লাটার ইন্সটল করে ফেলুন আপনার সিস্টেমে, আর শুরু করে দিন আপনার যাত্রা!
ধাপ ১: একদম বেসিক থেকে শুরু করুন! ডার্ট খুবই ওয়াইড একটা ভাষা, আর এটা শিখতে সময়ও লাগে ব্যাপক। অ্যাপ ডেভেলপমেন্টে যাওয়ার আগে একজনের উচিত অন্তত ডার্টের বেসিকগুলো শিখে নেয়া। আপনি যদি জাভা জেনে থাকেন, তাহলে জাভা থেকে ডার্টে আসা হবে খুবই সোজা। তবে ডার্ট না জেনে ফ্লাটারে একদম আসবেন না। অল্প কিছু কনসেপ্ট যেগুলো শিখে নেবেন:
  • Lists
  • Map
  • Lambda Function
  • mixins
  • await and async
ডার্টের বেসিক শেখা হয়ে গেলে, নির্দ্বিধায় ফ্লাটারে এক্সপ্লোর করতে বেরিয়ে পড়ুন।
ধাপ ২: এবার পালা ইউআই ডেভেলপমেন্টে হাত দেয়ার। যখনই আমরা কোনো নতুন ভাষা শিখতে শুরু করি, আমাদের প্রতিদিন শেখার মোটিভেশন দরকার হয়। প্রথম প্রথম ইউআই ডেভেলপমেন্ট আমাদের স্বস্তি দেয়। যখন আপনার প্রথম অ্যাপের স্ক্রিনের আশানুরূপ পপ-আপ আসে, আপনি মোটিভেটেড অনুভব করেন। আবার, ইউআই ডেভেলপমেন্ট নিয়ে কাজ করার সময়ে একজন ডেভেলপার অজস্র ইস্যু আর এরোরের সম্মুখীন হবেন। তো এখন, কীভাবে করবেন ইউআই ডেভেলপমেন্ট?
Dribbble থেকে যেকোনো একটা ইউআই নিয়ে নিন, আর ফ্লাটারে সেটার ক্লোন বানানো শুরু করুন– হোয়াটসঅ্যাপ, টিকটিক ইত্যাদির মত।
ধাপ ৩: API Calls শিখুন
একবার ইউআই ডেভেলপমেন্ট নিয়ে আত্মবিশ্বাস চলে আসলে এবার এপিআই কল নিয়ে শেখা শুরু করে দিন। আপনি যখনই কোনো অ্যাপ বানাবেন, এপিআই লাগবেই। এপিআই কল নানারকম প্যাকেজ যেমন http, dio, retrofit, chopper ইত্যাদি দিয়েও করা যায়। সবচেয়ে বেসিকটা হচ্ছে HTTP আর অন্যান্য প্যাকেজগুলো হচ্ছে HTTP এর উপরে wrapper, কিছু অতিরিক্ত সুবিধাসহ। আপনি এগুলোর যেকোনোটা বেছে নিতে পারেন, তবে http দিয়ে শুরু করাই সবচেয়ে ভালো, এরপর অন্যগুলো। আপনি চাইলে অনেক ফেক এপিআই দিয়েও আপনার অ্যাপ ইন্টিগ্রেড করতে পারেন, সেগুলো পাবেন jsonplaceholder.typicode.com এ।
একবার এপিআই ইন্টিগ্রেড আর এপিআই কল করা হয়ে গেলে আপনাকে ওই এপিআই রেসপন্সকে parse করতে হবে একটা মডেল ক্লাসের ভেতরে।
ধাপ ৪: ডাটাবেজ ইন্টিগ্রেশন শিখুন
যেকোনো অ্যাপের ইন্টিগ্রাল অংশ হচ্ছে ডাটাবেজ। কিছু ডাটা অ্যাপ থেকে নিয়ে স্টোর করতে হবে সবসময়েই। ফ্লাটারে ব্যবহার করা যায় এমন কিছু ডাটাবেজ হচ্ছে:
  • Firebase
  • Supabase
  • SQFLite (লোকাল ডাটাবেজ)
  • Hive (লোকাল ডাটাবেজ)
  • Moor (লোকাল ডাটাবেজ) এবং আরও অনেক
ধাপ ৫: State Management শিখুন
ফ্লাটারে স্টেট ম্যানেজমেন্ট হচ্ছে সবচেয়ে গুরুত্বপূর্ণ বিষয়গুলোর একটি। আমাদের অ্যাপ যখন আকারে আর কমপ্লেক্সিটিতে বাড়তে থাকে, তখন স্ক্রিন আর অ্যাপ্লিকেশন ম্যানেজ করা বেশ কঠিন হয়ে পড়ে। ধরুন আপনি পেজ ১ থেকে পেজ ২ তে ডাটা পাস করতে চাচ্ছেন। এটা সোজা কাজ। আমরা Navigation দিয়ে এটা করে ফেলতে পারি। তবে ধরুন আপনি চান পেজ ১ থেকে পেজ ৫এ ডাটা পাস করতে। এই ক্ষেত্রে স্টেট ম্যানেজমেন্ট সহায়ক। স্টেট ম্যানেজমেন্টের অসংখ্য টেকনিক আর প্যাকেজ রয়েছে। কিন্তু উত্তেজিত হবার দরকার নেই, সেটাই ব্যবহার করুন যেটা আপনার কাছে সহজ লাগে। শুরুতে আপনি Provider ব্যবহার করতে পারেন, কারণ এটা সবচেয়ে বেসিক স্টেট ম্যানেজমেন্ট প্যাকেজগুলোর একটি।
ধাপ ৬: Project Structure বা Architecture শিখুন
একটা প্রজেক্ট স্ট্রাকচার মেইন্টেইন করা খুবই গুরুত্বপূর্ণ। নবীন ডেভেলপাররা এর সাহায্যে দ্রুত কোড রিভিউ করতে পারে। পূর্বের ফাংশন ব্রেক না করেই বাগ খুঁজে বের করা কিংবা ফাংশন যুক্ত বা অপসারণ করার ক্ষেত্রেও এটি কার্যকরী। বেশ কিছু প্রিডিফাইনড আর্কিটেকচার রয়েছে যেমন MVVM, MVC, TDD ইত্যাদি। পর্যাপ্ত গবেষণার পরেই এগুলো তৈরি হয়েছে। তবে এগুলোই যে ব্যবহার করতে হবে এমন বাধ্যবাধকতা নেই। আপনি চাইলে আপনার ও আপনার টিমের সাথে মানানসই আর্কিটেকচার বানিয়ে নিতে পারেন নিজেই। আর্কিটেকচার মেইন্টেইনের ক্ষেত্রে এই বিষয়গুলো সবসময় মনে রাখবেন:
  • KISS (Keep It Simple, Stupid!)
  • স্কেলেবল
  • ফাংশনালিটির মধ্যে সবচেয়ে কম ইন্টার-ডিপেন্ডেন্সি
  • কোডের নবায়নযোগ্যতা
যদি আপনার আর্কিটেকচার উপরের বিষয়গুলো মেনে চলে, তাহলে আপনি নিশ্চিন্ত থাকতে পারেন।

Comments

Popular posts from this blog

অফলাইন ডাটা স্টোর করার ৬ টি মাধ্যম

  অফলাইন ডাটা স্টোর করার ৬ টি মাধ্যম যখন ফ্লটারে অফলাইনে ডেটা সংরক্ষণের কথা আসে, তখন এটি করার বিভিন্ন উপায় রয়েছে। অফলাইন ডাটা স্টোরেজ বলতে বোঝায় যে কোনো স্টোরেজ মিডিয়াম যেটিকে প্রত্যেকবার ফিজিক্যালি একটি সিস্টেমে ইনসার্ট করা হয়, যখন কোনো ইউজার ডেটা অ্যাক্সেস বা এডিট করতে চায় । অফলাইন স্টোরেজে সংরক্ষিত ডেটা তার ডিভাইস স্টোরেজে স্থায়ীভাবে থেকে যায় এমনকি ডেটা স্টোরেজের পরে কম্পিউটার থেকে সংযোগ বিচ্ছিন্ন বা আনপ্লাগ করা হলেও। উদাহরণ হিসেবে সহজ কথায় বলা যায়, মোবাইল অ্যাপের কনটেক্সটে, Offline data sync হল এমন একটি ফিচার যা ইউজারদের তাদের ডিভাইস অফলাইনে থাকা অবস্থায়ও ডেটা তৈরি করতে, পরিবর্তন করতে এবং সার্চ করতে দেয়৷ ডিভাইসটি অনলাইনে থাকাকালীন ডেটা লোকাল স্টোরে সংরক্ষণ করা হয় এবং Azure Mobile Apps সার্ভিসের সাথে সিঙ্ক্রোনাইজ করে। ফ্লাটারে, অফলাইনে ডেটা স্টোরেজ করার বিভিন্ন উপায় রয়েছে৷ এরমধ্যে টপ ৬ ধরনের উপায় নিয়ে আজকের আলোচনা- Using Text/CSV/JSON files ডেটা সংরক্ষণের জন্য ব্যবহৃত সবচেয়ে বেসিক ফাইল টাইপ হল TXT, CSV এবং JSON। ডার্ট প্রোগ্রামিং ভাষা সহজেই এই ফাইলগুলি পড়তে এবং লিখত...

InApp WebView দিয়ে Webview কন্টেন্ট ব্লকার তৈরী করবেন কিভাবে?

এই আর্টিকেলে, আমরা flutter in app web view প্লাগইন ব্যবহার করে আমাদের ওয়েবভিউ ইন্সট্যান্সের জন্য একটি কাস্টম কনটেন্ট ব্লকার তৈরি করা শিখবো। কন্টেন্ট ব্লকার সাধারণত বিজ্ঞাপন ব্লক করার জন্য ব্যবহার করা হয়, কিন্তু আপনি অন্য কোনো কন্টেন্ট ব্লক করতেও ব্যবহার করতে পারেন। ব্লকিং বিহেভিয়ারের মধ্যে রয়েছে এলিমেন্টস হাইড করা, লোড ব্লক করা এবং iOS এবং macOS-এ, WebView রিকুয়েস্ট থেকে কুকি রিমুভ করা। মনে রাখবেন, স্পেশালাইজড এক্সটেনশন যেমন অ্যাডব্লক (AdBlock) বা অ্যাডব্লক প্লাসের (AdBlock Plus) কার্যকারিতা আর কন্টেন্ট ব্লকারের কার্যকারিতা একই লেভেলের না। কন্টেন্ট ব্লকার হলো এমন একটি রুলসের সেট যা কখনই ওয়েবভিউ থেকে কোনো কলব্যাক বা নোটিফিকেশন ফিরে পায় না যখন এটি ব্লক করার জন্য প্রয়োজনীয় কন্টেন্ট খুঁজে পায়। **InAppWebViewSettings **ক্লাসের  contentBlockers  প্রোপার্টির মাধ্যমে আমরা ContentBlocker এর এমন ইন্সট্যান্সের একটি লিস্ট তৈরি করতে পারি ওয়েবভিউয়ের ব্যবহারের জন্য। দ্যা কনটেন্টব্লকার ক্লাস (The ContentBlocker class) আমরা ContentBlocker ক্লাসে কনটেন্ট-ব্লকিং বিহেভিয়ার সংজ্ঞায়িত করি...