10 মিনিটের মধ্যে কীভাবে একটি React.js চ্যাট অ্যাপ তৈরি করবেন

আমরা যে অ্যাপটি তৈরি করতে যাচ্ছি তা দেখতে দেখতে ভাল লাগবে।

এই নিবন্ধে, আমি আপনাকে React.js এর সাথে চ্যাট অ্যাপ্লিকেশন তৈরির সবচেয়ে সহজ উপায়টি দেখাব। এটি কোনও সার্ভার-সাইড কোড ছাড়াই সম্পূর্ণভাবে সম্পন্ন হয়েছে কারণ চ্যাটকিট এপিআই পিছনের প্রান্তটি পরিচালনা করে।

আমি ধরে নিচ্ছি যে আপনি বেসিক জাভাস্ক্রিপ্টের সাথে পরিচিত এবং ইতিমধ্যে কিছুটা React.js জুড়ে এসেছেন। অন্যথায় কোনও পূর্বশর্ত নেই।

দ্রষ্টব্য: আমি এখানে React.j এর জন্য একটি চ্যাট অ্যাপ তৈরির জন্য একটি বিনামূল্যে পূর্ণদৈর্ঘ্য কোর্সও তৈরি করেছি:
কোর্সে যেতে ছবিতে ক্লিক করুন।

আপনি যদি এই টিউটোরিয়ালটি অনুসরণ করেন তবে আপনার নিজের চ্যাট অ্যাপ্লিকেশনটি শেষ হবে যা আপনি প্রয়োজনে আরও তৈরি করতে পারেন।

চল শুরু করি!

পদক্ষেপ 1: উপাদানগুলিতে ব্যবহারকারী ইন্টারফেস ভাঙ্গা

প্রতিক্রিয়া উপাদান উপর ভিত্তি করে। সুতরাং আপনি যখন কোনও অ্যাপ তৈরি করেন, প্রথমে আপনাকে যা করতে হবে তা হল ব্যবহারকারী ইন্টারফেসটিকে উপাদানগুলিতে বিভক্ত করা।

আসুন পুরো অ্যাপটির চারপাশে একটি আয়তক্ষেত্র অঙ্কন করে শুরু করি start এটি আপনার মূল উপাদান এবং অন্যান্য সমস্ত উপাদানগুলির সাধারণ পূর্বপুরুষ। আসুন এটি একটি অ্যাপ্লিকেশন কল:

এখন আপনি নিজের মূল উপাদানটি নির্ধারণ করেছেন, আপনাকে নিম্নলিখিত প্রশ্নটি নিজেকে জিজ্ঞাসা করতে হবে:

এই উপাদানটি কোন সরাসরি শিশুদের রয়েছে?

আমাদের ক্ষেত্রে, এটি তিনটি উপ-উপাদান নির্দিষ্ট করার জন্য অর্থবোধ করে, যা আমরা নিম্নলিখিতগুলিতে কল করব:

  • শিরোনাম
  • বার্তা তালিকা
  • সেন্ডমেসেজফর্ম

আসুন নিম্নলিখিত প্রতিটি উপাদানের জন্য একটি আয়তক্ষেত্র আঁকুন:

এটি আমাদের অ্যাপ্লিকেশনটির পিছনে থাকা বিভিন্ন উপাদান এবং আর্কিটেকচারের একটি সুন্দর ওভারভিউ দেয়।

আমরা এই প্রশ্নটি অবিরত করতে পারি যে বাচ্চাদের এই উপাদানগুলি কী রয়েছে। আমরা ব্যবহারকারীর ইন্টারফেসটিকে আরও বেশি উপাদানগুলিতে ভেঙে ফেলতে পারি, উদাহরণস্বরূপ প্রতিটি বার্তাকে তার নিজস্ব উপাদানগুলিতে পরিণত করে। তবে সরলতার জন্য আমরা এখানেই থামব stop

পদক্ষেপ 2: কোড বেস সেট আপ

এখন আমাদের সংগ্রহশালা স্থাপন করা দরকার। আমরা সম্ভাব্যতম সহজ কাঠামোটি ব্যবহার করব: একটি জাভাস্ক্রিপ্ট ফাইলের লিঙ্ক এবং একটি স্টাইলশিটের একটি সূচক। Html ফাইল। আমরা চাটকিট এসডিকে এবং ব্যাবেল আমদানি করি যা আমাদের জেএসএক্সকে রূপান্তর করতে ব্যবহৃত হয়:

টিউটোরিয়ালের চূড়ান্ত কোড সহ এখানে একটি স্ক্রিম্বা খেলার মাঠ। যদি আপনি বিভ্রান্তি অনুভব করেন তবে আমি এটি একটি নতুন ট্যাবে খোলার এবং এটির সাথে খেলার পরামর্শ দিচ্ছি।

পুরো কোড বেসটি নিয়ে পরীক্ষা করতে ছবিতে ক্লিক করুন।

বিকল্পভাবে, আপনি স্ক্রিম্বা প্রকল্পটি একটি জিপ ফাইল হিসাবে ডাউনলোড করতে পারেন এবং এটি স্থানীয়ভাবে কাজ করার জন্য একটি সাধারণ সার্ভার চালাতে পারেন।

পদক্ষেপ 3: মূল উপাদান তৈরি করা

সংগ্রহস্থল সেট আপ হওয়ার সাথে সাথে আমরা প্রতিক্রিয়া কোড লেখা শুরু করতে পারি যা আমরা index.js ফাইলটিতে চালাব।

আসুন মূল উপাদান, অ্যাপ্লিকেশন দিয়ে শুরু করা যাক। এটি আমাদের একমাত্র "স্মার্ট" উপাদান হিসাবে এটি ডেটা এবং API এর সাথে সংযোগ পরিচালনা করে। এখানে এর জন্য মূল কনফিগারেশনটি রয়েছে (আমরা কোনও যুক্তি যুক্ত করার আগে):

শ্রেণি অ্যাপ্লিকেশনটি React.Comp घटक {রেন্ডার () {রিটার্ন প্রসারিত করে (
}

আপনি দেখতে পাচ্ছেন, কেবলমাত্র তিনটি শিশুকে রেন্ডার করা হয়েছে: উপাদানগুলি

তবে, আমরা এটিকে আরও জটিল করব কারণ চ্যাট বার্তাগুলি এই অ্যাপের উপাদানটির স্থিতিতে সংরক্ষণ করতে হবে। এইভাবে আমরা এই.স্টেট.মেসেজের মাধ্যমে বার্তাগুলি অ্যাক্সেস করতে এবং সেগুলি অন্যান্য উপাদানগুলিতে প্রেরণ করতে পারি।

আমরা অ্যাপটির ডেটা প্রবাহ বুঝতে ডামি ডেটা ব্যবহার করে শুরু করব start তারপরে আমরা চ্যাটকিট এপিআই থেকে আসল ডেটা দিয়ে এটি পরে বিনিময় করব।

আসুন একটি DUMMY_DATA ভেরিয়েবল তৈরি করুন:

কনস্ট DUMMY_DATA = [{প্রেরকআইডি: "পার্বোরজেন", পাঠ্য: "কে জিতবে?" }, {প্রেরক আইডি: "জানেদো", পাঠ্য: "কে জিতবে?" }]

তারপরে আমরা এই ডেটাটিকে অ্যাপের স্থিতিতে যুক্ত করি এবং মেসেজলিস্ট উপাদানটির প্রস্তাব হিসাবে এটি পাস করি pass

শ্রেণি অ্যাপ্লিকেশন React.Comp घटक {নির্মাণকারী () {সুপার () this.state = {বার্তা প্রসারিত: DUMMY_DATA} nder রেন্ডার () {রিটার্ন ( )}
}

এখানে আমরা কনস্ট্রাক্টরের স্থিতিটি আরম্ভ করি এবং এই স্থিতি বার্তাগুলি ম্যাসেজলিস্টে প্রেরণ করি।

লক্ষ্য করুন যে আমরা কনস্ট্রাক্টরে সুপার () কল করছি। আপনি যদি একটি রাষ্ট্রীয় উপাদান তৈরি করতে চান তবে আপনার অবশ্যই এটি করতে হবে।

পদক্ষেপ 4: নকল বার্তা উপস্থাপন

আসুন দেখুন কীভাবে আমরা এই বার্তাগুলিকে মেসেজলিস্ট উপাদানটিতে রেন্ডার করতে পারি। এই এটা দেখায় কিভাবে হয়:

ম্যাসেজলিস্ট ক্লাসটি রিঅ্যাক্ট প্রবাহিত করে omp উপাদান {রেন্ডার () {রিটার্ন ( {this.props.messages.map (বার্তা => {রিটার্ন ( {message.senderId {বার্তার পাঠ্য} )})} )}}

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

যখন আমাদের ডামি ডেটা এই উপাদানটিতে প্রবাহিত হবে তখন তা রেন্ডার করবে:

এখন আমাদের অ্যাপ্লিকেশনটির জন্য আমাদের প্রাথমিক কাঠামো রয়েছে এবং বার্তা রেন্ডারও করতে পারে। সাবাশ!

এখন আসুন একটি চ্যাট রুম থেকে আসল বার্তা সহ আমাদের ডামি ডেটা প্রতিস্থাপন করুন।

পদক্ষেপ 5: চ্যাট কিট থেকে API কী পান Get

আমাদের বার্তা পাওয়ার জন্য আমাদের চ্যাটকিট এপিআইতে কানেক্ট করতে হবে। অবশ্যই এর জন্য আমাদের এপিআই কী দরকার।

এই মুহুর্তে আমি আপনাকে আমার পদক্ষেপগুলি অনুসরণ করতে উত্সাহিত করতে চাই যাতে আপনি নিজের চ্যাট অ্যাপ্লিকেশনটি চালু এবং চলতে পারেন। আপনি নিজের এপিআই কীগুলি পরীক্ষা করতে আমার স্ক্রিম্বা খেলার মাঠটি ব্যবহার করতে পারেন।

এখানে একটি নিখরচায় অ্যাকাউন্ট তৈরি করে শুরু করুন। একবার আপনি এটি করেন, আপনার ড্যাশবোর্ড প্রদর্শিত হবে। আপনি এখানে নতুন চ্যাটকিট দৃষ্টান্ত তৈরি করেন। একটি তৈরি করুন এবং এটি আপনার যে কোনও নাম দিন:

তারপরে আপনাকে আপনার নতুন তৈরি করা ইভেন্টে নেভিগেট করা হবে। এখানে আপনাকে চারটি মান অনুলিপি করতে হবে:

  • তাত্ক্ষণিক অনুসন্ধান
  • টোকেন সরবরাহকারী পরীক্ষা করুন
  • রুম আইডি
  • ব্যবহারকারীর নাম

আমরা উদাহরণ লোকেটার দিয়ে শুরু করি:

আপনি ইনস্ট্যান্স লোকেটারের ডানদিকে আইকনটি ব্যবহার করে অনুলিপি করতে পারেন।

আপনি যদি কিছুটা নিচে স্ক্রল করেন তবে আপনি পরীক্ষার টোকেন সরবরাহকারী পাবেন:

দ্রষ্টব্য: টোকেনে অ্যাক্সেস পেতে আপনাকে অবশ্যই সক্ষম চেক বাক্সটি চেক করতে হবে।

পরবর্তী পদক্ষেপটি হ'ল একই পৃষ্ঠাতে একটি ব্যবহারকারী এবং একটি ঘর তৈরি করা। নোট করুন যে আপনাকে অবশ্যই প্রথমে একটি ব্যবহারকারী তৈরি করতে হবে এবং তারপরে আপনি একটি ঘর তৈরি করতে পারেন যার মাধ্যমে আপনি আবার রুম আইডি অ্যাক্সেস করতে পারবেন।

একটি ব্যবহারকারীর নাম চয়ন করুন, একটি ঘর তৈরি করুন, তারপরে ব্যবহারকারীর নাম এবং রুমের আইডি অনুলিপি করুন।

আপনি এখন আপনার চারটি শনাক্তকারীকে খুঁজে পেয়েছেন। সাবাশ!

তবে আমরা কোডবেসে ফিরে আসার আগে আমরা চাই যে আপনি চ্যাটকিট ড্যাশবোর্ড ব্যবহার করে ম্যানুয়ালি একটি বার্তা প্রেরণ করুন, এটি পরবর্তী অধ্যায়ে আমাদের সহায়তা করবে।

এটি এটি সম্পন্ন হয়েছে:

চ্যাটকিট ইউআই ব্যবহার করে একটি বার্তা প্রেরণ করুন

এটি এমন যে যাতে আমরা আসলে একটি বার্তা পাই যা আমাদের পরবর্তী পদক্ষেপে রেন্ডার করা দরকার।

পদক্ষেপ:: বাস্তব চ্যাট বার্তাগুলি রেন্ডার করুন

এখন আসুন আমাদের সূচি.জেএস ফাইলগুলিতে ফিরে যাই এবং আমাদের ফাইলের শীর্ষে এই চারটি সনাক্তকারীকে ভেরিয়েবল হিসাবে সংরক্ষণ করি save

এখানে আমার, তবে আমি আপনাকে নিজের তৈরি করতে উত্সাহিত করি:

কনস্ট্যান্ট লোকসেটর = "ভি 1: us1: dfaf1e22-2d33-45c9-b4f8-31f634621d24"
কনট টেস্টটোকেন = "https://us1.pusherplatform.io/services/chatkit_token_provider/v1/dfaf1e22-2d33-45c9-b4f8-31f634621d24/token"
কনস্ট ব্যবহারকারীর নাম = "ধার"
কনস্ট রুম আইড = 9796712

এটির সাথে আমরা শেষ পর্যন্ত চাটকিটে সংযোগ করতে প্রস্তুত। এটি অ্যাপের উপাদানগুলিতে এবং বিশেষত কম্পোনেন্টডিডমাউন্ট পদ্ধতিতে ঘটে। React.j এর উপাদানগুলি API এ সংযোগ করার সময় আপনার এই পদ্ধতিটি ব্যবহার করা উচিত।

প্রথমে আমরা একটি চ্যাট ম্যানেজার তৈরি করি:

উপাদানডিডমাউন্ট () {কনট চ্যাটম্যানজার = নতুন চ্যাটকিট.চ্যাটম্যানেজার ({উদাহরণস্বরূপ: উদাহরণস্বরূপ, ব্যবহারকারীকৃত, ব্যবহারকারীর নাম, টোকেনপ্রভাইডার: নতুন চ্যাটকিট.টোকনপ্রোভিডার ({url: testToken T)})

... এবং তারপরে আমরা API- এর সাথে ম্যানেজার.কনেক্ট () এ সংযোগ করব:

chatManager.connect ()। তারপরে (কারেন্টইউজার => {কারেন্টইউজার.সুবস্ক্রিপ্টটিওরুম ({রুমআইড: রুম আইড, হুক: {onNewMessage: ম্যাসেজ => {this.setState ({বার্তা: [... এটি.সেট.মেসেজ, বার্তা]})}}})} )}

এটি আমাদের বর্তমান ব্যবহারকারী অবজেক্টে অ্যাক্সেস দেয় যা এপিআইয়ের সাথে ইন্টারঅ্যাক্ট করার ইন্টারফেস।

দ্রষ্টব্য: যেহেতু পরে আমাদের কারেন্ট ইউজারটি ব্যবহার করা দরকার, তাই এটি ইনস্টল করে এটি সংরক্ষণ করুন।

তারপরে আমরা কারেন্টইউজার.সুবস্ক্রাইব টুরুম () কে কল করি এবং এটি আমাদের রুম আইড এবং একটি অননমেসেজ হুক পাস করি।

চ্যাট রুমে যখনই নতুন বার্তা পাঠানো হয় ততবারই নিউম্যাসেজ হুকটি ট্রিগার হয়। যতবারই এটি ঘটে, আমরা কেবলমাত্র এই স্থিতি বার্তার শেষে নতুন বার্তা যুক্ত করব।

এর ফলে অ্যাপ্লিকেশনটি এপিআই থেকে ডেটা টানতে পারে এবং তারপরে পৃষ্ঠায় রেন্ডার করে।

এটি এখন দুর্দান্ত কারণ আমাদের ক্লায়েন্ট-সার্ভার সংযোগের জন্য ফ্রেমওয়ার্কটি রয়েছে।

ওহু!

পদক্ষেপ 7: ব্যবহারকারীর ইনপুট পরিচালনা করা

পরবর্তী আমাদের সেন্ডমেসেজফর্ম উপাদান তৈরি করতে হবে। এটি একটি তথাকথিত নিয়ন্ত্রিত উপাদান, অর্থাৎ উপাদানটি তার স্থিতির মাধ্যমে ইনপুট ক্ষেত্রে কী রেন্ডার হয় তা নিয়ন্ত্রণ করে।

রেন্ডার () পদ্ধতিটি দেখুন এবং আমি যে লাইনে হাইলাইট করেছি তাতে বিশেষ মনোযোগ দিন:

সেন্ডমেসেজফর্ম ক্লাসটি রিঅ্যাক্ট বাড়ায় omp উপাদান omp রেন্ডার () {রিটার্ন ( )}}

আমরা দুটি জিনিস করি:

  1. অন ​​চেঞ্জ ইভেন্ট শ্রোতার সাথে ব্যবহারকারীর ইনপুট নিরীক্ষণ করা যাতে আমরা হ্যান্ডেল চেঞ্জ পদ্ধতিটি ট্রিগার করতে পারি
  2. ইনপুট ফিল্ডের মানটি এই স্টেট.মেসেজের সাথে স্পষ্টভাবে সেট করুন

এই দুটি পদক্ষেপের মধ্যে সংযোগটি হ্যান্ডেল চেঞ্জ পদ্ধতিতে। এটি কেবলমাত্র ইনপুট বাক্সে ব্যবহারকারী কী ধরণের স্ট্যাটাস আপডেট করে:

হ্যান্ডেল চেঞ্জ (ঙ) {this.setState ({বার্তা: e.target.value})}

এটি একটি নতুন রেন্ডারিং ট্রিগার করে। যেহেতু ইনপুট ক্ষেত্রটি স্পষ্টভাবে মান = {this.state.message with দ্বারা স্থিতি দ্বারা সেট করা হয়েছে, ইনপুট ক্ষেত্রটি আপডেট হয়।

অ্যাপ্লিকেশনটি যখন ইনপুট ক্ষেত্রে কিছু টাইপ করে ব্যবহারকারীকে তাত্ক্ষণিক মনে হয়, তথাপি ব্যবহারকারী ইন্টারফেসটির প্রতিক্রিয়া আপডেট হওয়ার আগে তথ্যটি স্থিতির মাধ্যমে আসলে প্রেরণ করা হয়।

এই বৈশিষ্ট্যটি সম্পূর্ণ করার জন্য আমাদের উপাদানটি একটি কনস্ট্রাক্টর দিতে হবে। এটিতে আমরা উভয়ই স্থিতিটি আরম্ভ করি এবং এটি হ্যান্ডেল চেঞ্জ পদ্ধতিতে আবদ্ধ করি:

কনস্ট্রাক্টর () {সুপার () this.state = {বার্তা: ''} this.handleChange = this.handleChange.bind (এটি)}

আমাদের হ্যান্ডেল চেঞ্জ পদ্ধতিটি আবদ্ধ করতে হবে যাতে আমরা এই কীওয়ার্ডটি ভিতরে প্রবেশ করতে পারি। জাভাস্ক্রিপ্ট কীভাবে কাজ করে: ডিফল্টরূপে, এই কীওয়ার্ডটি কোনও ফাংশনটির শিরোনামে অপরিবর্তিত।

পদক্ষেপ 8: বার্তা প্রেরণ

আমাদের সেন্ডমেসেজফর্ম উপাদানটি প্রায় প্রস্তুত, তবে আমাদের ফর্মটি জমা দেওয়ার ক্ষেত্রেও যত্ন নেওয়া দরকার। আমাদের সংবাদটি পেয়ে তা পাঠাতে হবে!

এটি করার জন্য, আমরা একটি হ্যান্ডেল সাবমিট এমনকি হ্যান্ডলারটিকে অন সাবমিট ইভেন্ট শ্রোতার কাছে বাঁধাই এক.

রেন্ডার () {রিটার্ন ( )}

যেহেতু আমরা এই স্ট্যাটাস বার্তায় ইনপুট ক্ষেত্রের মান সংরক্ষণ করেছি, তাই জমা দেওয়ার সাথে সাথে সঠিক ডেটা পাস করা আসলে বেশ সহজ। আমরা কেবল:

হ্যান্ডেল সাবমিট (ঙ) {ই.প্রিভেন্টডাফল্ট () this.prop.sendMessage (this.state.message) this.setState ({বার্তা: ''})}

এখানে আমরা সেন্ডম্যাসেজ প্রপকে কল করি এবং পরামিতি হিসাবে this.state.message পাস করি। আপনি সম্ভবত সেন্ডম্যাসেজ পদ্ধতিটি তৈরি না করায় আপনি এতে কিছুটা বিভ্রান্ত হতে পারেন। তবে আমরা পরবর্তী বিভাগে এটি করব কারণ এই পদ্ধতিটি অ্যাপ উপাদানটিতে অন্তর্ভুক্ত রয়েছে। চিন্তা করিও না!

দ্বিতীয়ত, আমরা এই খালি স্ট্রিংয়ে.স্টেট.ম্যাসেজ সেট করে ইনপুট ফিল্ডটি সাফ করি।

এখানে পুরো সেন্ডমেসেজফর্ম উপাদান রয়েছে। মনে রাখবেন যে আমরা এটি হ্যান্ডেল সাবমিট পদ্ধতিতেও বেঁধেছি:

সেন্ডমেসেজফর্ম ক্লাসটি রিঅ্যাক্ট করে দিয়েছে omp কম্পোনেন্ট {কনস্ট্রাক্টর () {সুপার () this.state = {বার্তা: ''} this.handleChange = this.handleChange.bind (এটি) this.handleSubmit = this.handleSubmit.bind (এটি)}
হ্যান্ডেল চেঞ্জ (ঙ) {this.setState ({বার্তা: e.target.value})}
হ্যান্ডেল সাবমিট (ঙ) {ই.প্রিভেন্টডাফল্ট () this.prop.sendMessage (this.state.message) this.setState ({বার্তা: ''})}
রেন্ডার () {রিটার্ন ( )}}

পদক্ষেপ 9: চ্যাটকিটে বার্তাগুলি প্রেরণ করুন

আমরা এখন প্রস্তুত। চ্যাটকিটে মেসেজগুলি প্রেরণ করুন। এটি অ্যাপের উপাদানগুলিতে সম্পন্ন হয় যেখানে আমরা এটি নামে একটি পদ্ধতি তৈরি করি nd

সেন্ডমেসেজ (পাঠ্য) {this.currentUser.sendMessage ({পাঠ্য, রুম আইড: রুম আইড})}

এটি একটি প্যারামিটার লাগে (পাঠ্য) এবং কেবল এটি কল করে .cC:25 ব্যবহারকারী / ব্যবহারকারীকে SeseMessage ()।

চূড়ান্ত পদক্ষেপ হ'ল এটি একটি প্রস্তাব হিসাবে প্রেরণ - উপাদান উপর পাস:

/ * অ্যাপ উপাদান * / রেন্ডার () {রিটার্ন (

এটির সাথে, আমরা হ্যান্ডলারটি পাস করেছি যাতে ফর্মটি জমা দেওয়ার পরে সেন্ডম্যাসেজফর্ম কল করতে পারে।

পদক্ষেপ 10: শিরোনাম উপাদান তৈরি

শেষ অবধি, আমরা শিরোনাম উপাদান তৈরি। এটি কেবলমাত্র একটি সাধারণ ফাংশন উপাদান, এটি এমন একটি ফাংশন যা জেএসএক্সের এক্সপ্রেশন প্রদান করে।

ফাংশন শিরোনাম () {রিটার্ন আমার দুর্দান্ত চ্যাট অ্যাপ }

আমরা আপনাকে সুপারিশ করি যে আপনি কার্যকরী উপাদানগুলি ব্যবহার করুন কারণ শ্রেণীর উপাদানগুলির তুলনায় তাদের আরও সীমাবদ্ধতা রয়েছে, যার ফলে তাদের ব্যর্থতার ঝুঁকি কম হয়।

ফলাফল

এবং এটির সাথে আপনার নিজের চ্যাট অ্যাপ্লিকেশন রয়েছে যা আপনি আপনার বন্ধুদের সাথে চ্যাট করতে পারবেন!

আপনি কিচিং শেষ করার পরে নিজেকে পিছনে একটি থাপ্পড় দিন।

আপনি যদি এই উদাহরণটি কীভাবে তৈরি করবেন তা শিখতে চান তবে এখানে প্রতিক্রিয়া দিয়ে একটি চ্যাট অ্যাপ তৈরির বিষয়ে আমার বিনামূল্যে পাঠ্যক্রমটি দেখুন।

পড়ার জন্য আপনাকে ধন্যবাদ! আমার নাম পের, আমি স্ক্রিম্বার সহ-প্রতিষ্ঠাতা এবং আমি লোককে নতুন দক্ষতা শিখতে সহায়তা করতে পছন্দ করি। সর্বশেষ সংবাদ এবং নিবন্ধগুলির জন্য টুইটারে আমাকে অনুসরণ করুন।