ডেভেলপার ভাই ও বন্ধুরা, আশা করি সবাই ভালো আছেন।
বর্তমানে কমিউনিকেশন বা সোশ্যাল মিডিয়া অ্যাপের ক্ষেত্রে Flutter Incoming Call Integration একটি অত্যন্ত গুরুত্বপূর্ণ বিষয় হয়ে দাঁড়িয়েছে। আমরা যখন কোনো চ্যাটিং বা অডিও-ভিডিও কলিং অ্যাপ তৈরি করি, তখন সবচাইতে বড় চ্যালেঞ্জ হলো অ্যাপটি যখন ‘Background’ বা ‘Killed’ অবস্থায় থাকে, তখন কীভাবে ইউজারকে একটি প্রফেশনাল ইনকামিং কল ইন্টারফেস দেখানো যায়। আপনি হয়তো ভাবছেন সাধারণ Firebase Push Notification দিয়েই কাজ চালিয়ে নেবেন, কিন্তু প্রফেশনাল লেভেলে Flutter Incoming Call Integration-এর ক্ষেত্রে বিষয়টি মোটেও তেমন নয়।
আজকের এই ইন্ট্রোডাকশন আর্টিকেলে আমরা জানবো কেন আমাদের APNs (Apple Push Notification service) এবং VoIP Push ব্যবহার করা জরুরি।
কেন সাধারণ নোটিফিকেশন দিয়ে কল হয় না?
আপনি খেয়াল করেছেন নিশ্চয়ই, হোয়াটসঅ্যাপ বা মেসেঞ্জারে কল আসলে ফোনের স্ক্রিন জুড়ে কলিং ইন্টারফেস চলে আসে। কিন্তু সাধারণ পুশ নোটিফিকেশন কেবল একটি ব্যানার হিসেবে দেখা দেয়। iOS-এর ক্ষেত্রে অ্যাপ বন্ধ থাকলে বা ফোন লক থাকলে সাধারণ নোটিফিকেশন দিয়ে কলিং স্ক্রিন ট্রিগার করা প্রায় অসম্ভব। এখানেই প্রয়োজন হয় VoIP (Voice over IP) Push এবং অ্যাপলের CallKit ফ্রেমওয়ার্ক।
ইনকামিং কল ইন্টিগ্রেশনের সুবিধাসমূহ:
১. নেটিভ ইন্টারফেস: ইউজার যখন কল পাবে, তখন সেটি দেখতে একদম সাধারণ ফোনের কলের মতোই লাগবে। ২. ব্যাটারি এফিসিয়েন্সি: VoIP পুশ ব্যবহার করলে কল আসার আগ পর্যন্ত অ্যাপকে ব্যাকগ্রাউন্ডে সচল রাখতে হয় না, ফলে ব্যাটারি খরচ অনেক কমে যায়। ৩. প্রায় ১০০% ডেলিভারি রেট: সাধারণ নোটিফিকেশনের তুলনায় VoIP পুশ অনেক বেশি নির্ভরযোগ্য এবং দ্রুত কাজ করে। ৪. লক স্ক্রিন সাপোর্ট: ফোন লক থাকা অবস্থায়ও ইউজার কল রিসিভ করতে পারেন।
পুরো প্রসেসটি কীভাবে কাজ করে? (How it works)
সহজ কথায় বলতে গেলে, পুরো সিস্টেমটি তিনটি স্তরে কাজ করে:
- সার্ভার সাইড (Node.js): যখন কেউ কল দেয়, সার্ভার থেকে একটি বিশেষ টোকেন ব্যবহার করে অ্যাপলের APNs সার্ভারে একটি VoIP পেলোড পাঠানো হয়।
- অ্যাপল সার্ভার (APNs): এই সার্ভারটি ইউজারের আইফোনটি খুঁজে বের করে এবং একটি হাই-প্রায়োরিটি সিগন্যাল পাঠায়।
- ক্লায়েন্ট সাইড (Flutter App): আমাদের ফ্লাটার অ্যাপটি সেই সিগন্যাল রিসিভ করে এবং CallKit ব্যবহার করে ইউজারের সামনে ইনকামিং কল স্ক্রিনটি তুলে ধরে।
এই সিরিজে আমরা কী কী শিখতে যাচ্ছি?
এই সিরিজটি আমি এমনভাবে সাজিয়েছি যেন একদম শুরু থেকে শেষ পর্যন্ত আপনি একটি প্রোডাকশন লেভেল কলিং সিস্টেম তৈরি করতে পারেন। আমরা সার্টিফিকেট জেনারেট করা থেকে শুরু করে Xcode কনফিগারেশন এবং শেষে Node.js দিয়ে টেস্ট করা পর্যন্ত সব দেখবো।
পরবর্তী আর্টিকেলে আমরা সরাসরি কাজে নেমে পড়বো এবং দেখবো কীভাবে Apple Developer Account থেকে প্রয়োজনীয় সার্টিফিকেট এবং কী (Key) জেনারেট করতে হয়।
সাথেই থাকুন!
অ্যাপল কীভাবে তাদের পুশকিট (PushKit) ফ্রেমওয়ার্কের মাধ্যমে এই বিশেষ VoIP নোটিফিকেশনগুলো হ্যান্ডেল করে, সে সম্পর্কে আরও গভীর ধারণা পেতে তাদের অফিসিয়াল ডকুমেন্টেশনটি একবার দেখে নিতে পারেন।