Background Tasks এবং Background Fetch হল দুটি গুরুত্বপূর্ণ ফিচার যা React Native অ্যাপে ব্যাকগ্রাউন্ডে চলমান কার্যকলাপ পরিচালনা করতে ব্যবহৃত হয়। এই ফিচারগুলির মাধ্যমে অ্যাপ্লিকেশন ব্যাকগ্রাউন্ডে বা ইনঅ্যাকটিভ অবস্থায়ও নির্দিষ্ট কাজ চালিয়ে যেতে পারে, যেমন ডেটা সিঙ্ক্রোনাইজেশন, পুশ নোটিফিকেশন, বা অন্যান্য টাইম-কনজিউমিং কার্যকলাপ।
নিচে Background Tasks এবং Background Fetch এর কার্যকলাপ, সেটআপ এবং ব্যবহার পদ্ধতি আলোচনা করা হয়েছে।
1. Background Tasks
Background Tasks বলতে বোঝানো হয় অ্যাপ্লিকেশনটির ব্যাকগ্রাউন্ডে কিছু কাজ চলতে থাকা, যেমন ডেটা সিঙ্ক্রোনাইজেশন বা সার্ভারের সাথে যোগাযোগ করা, যদিও অ্যাপ ব্যবহারকারী দ্বারা সক্রিয়ভাবে ব্যবহৃত না হলেও। ব্যাকগ্রাউন্ড টাস্ক মূলত ব্যাটারি এবং ডিভাইসের পারফরম্যান্সের উপর বেশি প্রভাব ফেলে, তাই এই কাজগুলি দক্ষভাবে পরিচালনা করা গুরুত্বপূর্ণ।
ব্যাকগ্রাউন্ড টাস্ক ব্যবহারের জন্য লাইব্রেরি
React Native-এ ব্যাকগ্রাউন্ড টাস্কের জন্য জনপ্রিয় লাইব্রেরি হলো react-native-background-task।
ইনস্টলেশন
npm install react-native-background-taskব্যাকগ্রাউন্ড টাস্ক সেটআপ
import BackgroundTask from 'react-native-background-task';
// ব্যাকগ্রাউন্ড টাস্ক রেজিস্টার করা
BackgroundTask.define(() => {
console.log('Background task is running');
// কিছু কাজ বা API কল করতে পারেন
BackgroundTask.finish();
});
// ব্যাকগ্রাউন্ড টাস্ক চালু করা
const runBackgroundTask = () => {
BackgroundTask.schedule({
period: 900, // প্রতিটি 15 মিনিটে টাস্ক রান হবে
});
};
// অ্যাপের ইনিশিয়ালাইজেশনে ব্যাকগ্রাউন্ড টাস্ক শুরু করা
useEffect(() => {
runBackgroundTask();
BackgroundTask.register();
}, []);এখানে BackgroundTask.define একটি ফাংশন হিসাবে ব্যাকগ্রাউন্ড টাস্কের কাজ নির্ধারণ করা হয়েছে, যা নির্দিষ্ট সময়ে চলতে থাকবে এবং BackgroundTask.finish কল করা হয়েছে যাতে টাস্কটি সফলভাবে শেষ হয়। BackgroundTask.schedule দ্বারা কাজের সময় নির্ধারণ করা হয়েছে (যেমন ১৫ মিনিট পর পর)।
ব্যাকগ্রাউন্ড টাস্কের সুবিধা
- অফলাইন সিঙ্ক্রোনাইজেশন: অ্যাপ ব্যাকগ্রাউন্ডে চলতে থাকলে, আপনি নেটওয়ার্কের সাথে সিঙ্ক্রোনাইজ করতে পারেন।
- নির্দিষ্ট সময় পর কাজ চালানো: নির্দিষ্ট সময় পর পর ডেটা আপডেট বা সিঙ্ক্রোনাইজ করা যায়।
2. Background Fetch
Background Fetch একটি React Native ফিচার যা অ্যাপ্লিকেশনকে ব্যাকগ্রাউন্ডে নির্দিষ্ট সময় পর পর ডেটা ফেচ বা সিঙ্ক্রোনাইজ করার সুযোগ দেয়। এটি সাধারণত অ্যাপের জন্য নতুন ডেটা বা কনটেন্ট ফেচিং বা সার্ভার থেকে ডেটা আপডেট করার জন্য ব্যবহৃত হয়। ব্যাকগ্রাউন্ড ফেচকে একটি নির্দিষ্ট সময়ে বা নির্দিষ্ট পরিমাণ সময় পর পর কাজ করতে কনফিগার করা যায়।
ব্যাকগ্রাউন্ড ফেচ লাইব্রেরি
React Native-এ react-native-background-fetch লাইব্রেরিটি ব্যাকগ্রাউন্ড ফেচ কাজ করার জন্য খুবই জনপ্রিয়। এটি একাধিক প্ল্যাটফর্মে (iOS এবং Android) সমর্থন প্রদান করে।
ইনস্টলেশন
npm install @transistorsoft/react-native-background-fetchব্যাকগ্রাউন্ড ফেচ সেটআপ
import BackgroundFetch from '@transistorsoft/react-native-background-fetch';
// ব্যাকগ্রাউন্ড ফেচ কনফিগারেশন
const configureBackgroundFetch = async () => {
const onEvent = async (taskId) => {
console.log('[BackgroundFetch] taskId:', taskId);
// ব্যাকগ্রাউন্ডে ডেটা ফেচ বা সিঙ্ক্রোনাইজ করার কাজ
// এখানে API কল বা ডেটা আপডেট করতে পারেন
BackgroundFetch.finish(taskId);
};
const onTimeout = async (taskId) => {
console.log('[BackgroundFetch] TIMEOUT taskId:', taskId);
BackgroundFetch.finish(taskId);
};
// ব্যাকগ্রাউন্ড ফেচ কনফিগার করা
const status = await BackgroundFetch.configure(
{
minimumFetchInterval: 15, // প্রতিটি 15 মিনিটে ফেচ
stopOnTerminate: false, // অ্যাপ বন্ধ হলেও ফেচ চলতে থাকবে
startOnBoot: true, // ডিভাইস রিবুট হলে ফেচ শুরু হবে
},
onEvent,
onTimeout
);
console.log('Background fetch status:', status);
};
// ব্যাকগ্রাউন্ড ফেচ শুরু করা
useEffect(() => {
configureBackgroundFetch();
}, []);এখানে BackgroundFetch.configure মাধ্যমে ব্যাকগ্রাউন্ড ফেচ কনফিগার করা হয়েছে এবং প্রতি ১৫ মিনিট পর পর ব্যাকগ্রাউন্ড ফেচ ইভেন্ট হবে। onEvent ফাংশনে আপনি যেকোনো API কল বা ডেটা সিঙ্ক্রোনাইজেশন কার্যকলাপ করতে পারেন।
ব্যাকগ্রাউন্ড ফেচের সুবিধা
- অফলাইন সিঙ্ক্রোনাইজেশন: অ্যাপ ব্যাকগ্রাউন্ডে থাকা অবস্থায় নতুন ডেটা নিয়ে আসা বা সার্ভারের সাথে সিঙ্ক্রোনাইজেশন করা যায়।
- নেটওয়ার্ক নির্ভর ডেটা আপডেট: ইউজার যখন অ্যাপের সাথে ইন্টারঅ্যাক্ট করছেন না, তখনও নির্দিষ্ট সময় পর পর ডেটা আপডেট করা যায়।
সারাংশ
- Background Tasks এবং Background Fetch দুটি গুরুত্বপূর্ণ ফিচার যা অ্যাপ্লিকেশনগুলোকে ব্যাকগ্রাউন্ডে কাজ করতে সাহায্য করে, যেমন ডেটা সিঙ্ক্রোনাইজেশন এবং ফেচিং।
- Background Tasks এ আপনি নির্দিষ্ট সময় পর পর টাস্ক চালাতে পারেন, যেমন ডেটা সিঙ্ক্রোনাইজেশন বা এক্সটার্নাল API কল।
- Background Fetch দিয়ে আপনি নির্দিষ্ট সময় পর পর ডেটা ফেচ বা সিঙ্ক্রোনাইজ করতে পারেন, যা অ্যাপের ব্যাকগ্রাউন্ডে চলতে থাকে।
এগুলি React Native অ্যাপ্লিকেশনে অফলাইন কাজের জন্য খুবই উপকারী, বিশেষ করে যখন আপনাকে অ্যাপের কার্যকলাপ চালু রাখতে হবে, তবে ব্যবহারকারী অ্যাপটির সাথে ইন্টারঅ্যাক্ট না করলেও।
Read more