Skip to main content

Flutter সাহায্যে অ্যাপ ডেভেলপমেন্টের আন্টিমেট গাইড.

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

 

যে দুটো প্রধান IDE ডার্ট এবং ফ্লাটারের সবচেয়ে বেশি ফিচারের সুবিধা দেয় সেগুলো হল Visual Studio Code (VS Code) এবং Android Studio। এটা আপনার সিদ্ধান্ত আপনি কোনটা ব্যবহার করবেন, তবে আমার কাছে ভিএস কোডটা বেশি পছন্দ কারণ এটা দেখতেও অসাধারণ।
আপনার যদি coc বা native Isp এবং ফ্লাটারের এক্সটেনশনগুলো ইন্সটল করা থাকে, তাহলে চাইলে আপনি Vimও ব্যবহার করতে পারেন।
সঠিক IDE বেছে নেয়া খুবই গুরুত্বপূর্ণ কারণ এর মাধ্যমে আপনি ডার্ট প্রোগ্রামিং ল্যাঙ্গুয়েজের প্রোভাইডেড ফিচারগুলো পাবেন। একবার IDE বা টেক্সট এডিটর পেয়ে গেলে আপনাকে এবার Dart Extension এবং Flutter Extension ইন্সটল করতে হবে। এই এক্সটেনশনগুলোতে আমাদের IDE/Text Editor খুবই নিখুঁত এরোর চেকিং, টাইপ চেকিং (type checking), নাল সেফটি চেক (null safety checks), আর ফরম্যাটিং করবে, যাতে করে আমাদের ডেভেলপার জীবন হবে আরও সহজ।
এনভায়রনমেন্ট সাজানো শেষ হলে, এবার সামনে যাওয়ার পালা-

১।Dart শেখা :

ফ্লাটার ফ্রেমওয়ার্কের মেরুদণ্ড হচ্ছে ডার্ট (Dart), যা গুগলের তৈরি একটি ল্যাঙ্গুয়েজ। এই ভাষা ফ্লাটার ফ্রেমওয়ার্কে অ্যাপ বানাতে কাজে লাগবে। একটা সলিড আউটলাইন ধরে সামনে এগুলে ডার্ট শেখাটা অনেকটাই সহজ হয়ে যাবে।
আউটলাইন:
  • ভ্যারিয়েবল (variables)
  • ফাংশন (functions)
  • কন্ডিশনাল (conditionals)
  • লুপ (loops)
  • ক্লাস, অবজেক্ট ও কন্সট্রাক্টর (Classes, Objects, and Constructors)
  • অন্যান্য ডার্ট রিসোর্স

**২।Flutter UI শেখাঃ **

ডার্টে মোটামোটি ভালো মানের দক্ষতা চলে এলে ফ্লাটার শেখা শুরু করা উচিৎ ।
আউটলাইন:
  • ইন্সটলেশন (Installation)
  • উইজেটস (Widgets)
  • লেআউট (Layout)
  • ফরম্যাটিং (Formatting)
  • স্টেটলেস উইজেটস (Stateless Widgets)
  • স্টেটফুল উইজেটস (Stateful Widgets)
  • নাল সেফটি (Null Safety)
  • আরও ফ্লাটার রিসোর্স (More Flutter Resources)

৩।ফায়ারবেজ (Firebase) শেখা

বেশিরভাগ প্রজেক্টের মূল ব্যাকএন্ড একটা ডাটাবেজ ব্যবহার করে, যেটা ফায়ারবেজ তার ক্লাউড Firestore database দিয়ে সরবরাহ করে। এই ফায়ারস্টোর ডাটাবেজের মূল কাঠামো খুবই সাধারণ, কিন্তু প্রচলিত, রিয়েল-টাইম ডাটাবেজ যেমন SQL এর থেকে খুবই আলাদা। ফায়ারস্টোর বরং একটা No-SQL ডাটাবেজ।

৪।ফ্লাটারের সাথে ফায়ারবেজ সংযোগ

আমরা এই কাজের জন্য একটা StreamBuilderব্যবহার করতে পারি। একটা ‘স্ট্রিম’ মূলত একটা ডাটার স্ট্রিম যেটার পরিবর্তন আমরা একাধারে পর্যবেক্ষণ করছি। স্ট্রিমের একপাশে থাকে ফায়ারস্টোর ডাটাবেজ। আরেকপাশে থাকে আমাদের অ্যাপ।
কাজেই, যখন ফায়ারস্টোর ডাটাবেজে কিছু চেঞ্জ হয় (ধরা যাক একটা নতুন প্রোডাক্ট অ্যাড করা), ওই চেঞ্জটা ডাটা স্ট্রিম দিয়ে ফ্লাটার অ্যাপে চলে যায়। একবার চেঞ্জটা লক্ষ করা হলে StreamBuilderউইজেট নিজেকে রিবিল্ড করে যাতে করে সেই পরিবর্তনের সাথে সংযুক্ত হতে পারে।
>>StreamBuildersদারুণ, তবে কেমন হত যদি আপনাকে ফায়ারস্টোরের চেঞ্জ সম্পর্কে জানতেই না হত? যদি আপনি কিছু ইনফরমেশন উদ্ধার করতে চাইতেন, যেমন ম্যাকবুকের দাম, আর কিছু না (আপনি জানেন যে ওই ভ্যালুটা চেঞ্জ হবে না)?
FutureBuilderদিয়ে আমরা সেটাই করতে পারি।
FutureBuilders প্যারামিটার হিসেবে একটা অ্যাসিনক্রোনাস ফাংশনকে নেয় আর নেয় একটা বিল্ডার, যেটা দিয়ে ফাংশন এক্সিকিউশনের পর কিছু বিল্ড করা যাবে (StreamBuilder এর মত)।

৫।স্টেট ম্যানেজমেন্ট (State management)

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

এই কাজটা করা যাবে একটা ‘Provider’ উইজেট ব্যবহার করে, যা একটি বিল্ট-ইন স্টেট ম্যানেজমেন্ট সলিউশন। 

Comments

Popular posts from this blog

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

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

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

Flutter Developer হওয়ার জন্য রোডম্যাপ-   যেকোনো প্রযুক্তি বা ভাষা শিখতে প্রয়োজন সময় এবং ধৈর্যের। কখনও মাঝখান থেকে শুরু করবেন না, বা এক লাফে অ্যাডভান্স শিখতে শুরু করবেন না, এবং কখনোই নিজের শেখার সাথে অন্যদের তুলনা করতে যাবেন না। বর্তমান আইটি ইন্ডাস্ট্রিতে সবচেয়ে প্রিয় এবং গৃহীত প্রযুক্তির মধ্যে ফ্লাটার অন্যতম। কিন্তু কেন? কেন ফ্লাটার এত শীর্ষে? এত এত ফ্রেমওয়ার্ক থাকতে ফ্লাটারই কেন? এই আর্টিকেলে, আমরা দেখবো কেন ফ্লাটার সবচেয়ে শীর্ষে, এবং জানবো কীভাবে এটা শিখতে হয়। ফ্লাটার কী? ফ্লাটার হচ্ছে সুন্দর ও নেটিভভাবে কম্পাইল্ড অ্যাপ্লিকেশন নির্মাণের জন্য গুগলের ইউআই টুলকিট, যার সাহায্যে ওয়েব, ডেস্কটপ, মোবাইল, এবং এমবেডেড ডিভাইসের জন্য অ্যাপ তৈরি করা যায় মাত্র একটা কোডবেজে। তার মানে এটা বলা যায় যে, আপনি যদি ফ্লাটার দিয়ে আপনার অ্যাপ বা ওয়েবসাইট বানান, তাহলে এটা হবে আরও বেশি সুন্দর, আর হবে অন্যান্য ফ্রেমওয়ার্ক দিয়ে বানানো অ্যাপ বা ওয়েবসাইটের চেয়ে বেশি দ্রুতগতির! তো ফ্লাটার কীভাবে এত জনপ্রিয়তা পাচ্ছে? ফ্লাটার নেটিভ ল্যাঙ্গুয়েজে কোড কম্পাইল করে। স্টার্টাপগুলো ফ্লাটার সহজেই শিখে এমভিপি বানিয়ে ফেলতে...

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

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