CodeGalax

CodeGalax CodeGalax | Building Tomorrow's Tech
We craft cutting-edge Mobile Apps, powerful Web Solutions, and intelligent systems with AI & Data Science.

Transforming ideas into innovation.

28/12/2025

Mobile App Push Notification আসলে কীভাবে কাজ করে?
Firebase (FCM) → Operating System → Flutter App

আমরা প্রায় সব মোবাইল অ্যাপ প্রজেক্টেই Firebase Cloud Messaging (FCM) ব্যবহার করি।�কিন্তু বাস্তবে খুব কম ক্ষেত্রেই আমরা পরিষ্কারভাবে জানি—এই পুরো সিস্টেমটা আসলে কীভাবে কাজ করে।
FCM কোথা থেকে শুরু হয়, কোন কোন ধাপ দিয়ে যায়, Operating System এখানে কী ভূমিকা রাখে, আর শেষ পর্যন্ত কীভাবে আমাদের ফোনে নোটিফিকেশনটা দেখা যায়—এই জার্নিটা অনেক সময় অস্পষ্ট থেকেই যায়।
এই লেখায় আমি একদম first packet থেকে notification দেখানো পর্যন্ত পুরো প্রক্রিয়াটা পরিষ্কারভাবে ব্যাখ্যা করব।

একটি গুরুত্বপূর্ণ বিষয় আগে পরিষ্কার করি
Firebase নিজে সরাসরি আমাদের ফোনে নোটিফিকেশন দেখায় না।
Firebase মূলত একটি message delivery system।�আর নোটিফিকেশন দেখানোর আসল কাজটা করে মোবাইল অপারেটিং সিস্টেম—অর্থাৎ Android বা iOS।
এই একটি লাইনে যদি ধারণাটা পরিষ্কার হয়, তাহলে বাকি সব সহজ হয়ে যাবে।

পুরো সিস্টেম এক লাইনে
Backend → Firebase → OS Push System → OS Decision
→ Notification UI → (প্রয়োজনে) App → Flutter
এই এক লাইনের মধ্যেই পুরো Push Notification system লুকানো আছে।

সবচেয়ে গুরুত্বপূর্ণ সত্য
(এটা না বুঝলে সব জায়গায় ভুল হবে)
Flutter App Firebase-এর সাথে সরাসরি connected থাকে না push notification-এর জন্য।
এর মানে হলো—
* Firebase কখনো সরাসরি Flutter App-এ notification পাঠায় না
* প্রথমে notification পায় Operating System
* Operating System সিদ্ধান্ত নেয় App-কে জানাবে কিনা
Push Notification-এর ক্ষেত্রে OS হলো আসল controller।�Flutter App শুধু শেষের listener।

পুরো Architecture (মানসিকভাবে বোঝার জন্য)
[ Backend Server ]
|
| Firebase API call
v
[ Firebase Cloud Messaging ]
|
| Platform routing
v
[ OS Push Network ]
(Google Push / Apple APNs)
|
| Encrypted packet
v
[ OS Kernel ]
|
| System-level service
v
[ OS Push Daemon ]
|
| App identify + policy decision
v
[ OS Decision Engine ]
|
|-------------|
| |
v v
[ Notification UI ] [ App Process ]
|
v
[ Native Layer ]
|
v
[ Flutter (Dart) ]
Flutter সবসময় একদম শেষে থাকে।

Step 1: App ইনস্টল হওয়ার সময় কী হয় (FCM Token তৈরি)
এই পুরো জার্নিটা শুরু হয় তখনই, যখন—
* অ্যাপ প্রথমবার ডিভাইসে ইনস্টল হয়
* অথবা প্রথমবার ওপেন করা হয়
এই সময় অ্যাপ Firebase SDK ব্যবহার করে ডিভাইসটির জন্য একটি ইউনিক পরিচয় নেয়, যাকে বলা হয় FCM Token।
এই FCM Token মূলত:
* ডিভাইসটির Push Notification Address
* ঠিক যেমন একটি ফোন নাম্বার দিয়ে কাউকে কল করা যায়
এই টোকেনটি পরে backend সার্ভারে সংরক্ষণ করা হয়, যাতে ভবিষ্যতে নির্দিষ্ট ডিভাইসে নোটিফিকেশন পাঠানো যায়।

Step 2: Backend থেকে Firebase পর্যন্ত
ধরা যাক, তুমি backend বা admin panel থেকে একটি notification পাঠাচ্ছ।
Backend কী করে—
* Firebase API-তে HTTPS request পাঠায়
* বলে দেয়:
* কোন device বা user
* notification-এর title ও body
* প্রয়োজনীয় extra data (route, id ইত্যাদি)
Firebase এখানে—
* authentication যাচাই করে
* payload ঠিক আছে কিনা দেখে
* বুঝে নেয় এটি Android না iOS-এর জন্য
এই ধাপ পর্যন্ত কোনো মোবাইল ডিভাইস কিছুই জানে না।

Step 3: Firebase থেকে OS Push System
এখানে Google Play Services সবচেয়ে গুরুত্বপূর্ণ ভূমিকা নেয়
এখন Firebase আর App-এর মাঝখানে আসে Operating System।
Android-এর ক্ষেত্রে কী হয়?
Firebase message পাঠায় Google-এর নিজস্ব push infrastructure-এ।�Android ফোনে এই message receive করে একটি OS-level system service, যেটার নাম—
Google Play Services
Google Play Services হলো:
* একটি system-level privileged service
* সবসময় background-এ চালু থাকে
* App kill হলেও বন্ধ হয় না
* Battery optimized ভাবে Google-এর server-এর সাথে connected থাকে
এই কারণেই Android ফোনে notification reliably আসে, যদিও App পুরোপুরি বন্ধ থাকে।
iOS-এর ক্ষেত্রে কী হয়?
Firebase message পাঠায়—
Apple Push Notification service (APNs)
iOS-এ:
* Apple নিজেই ঠিক করে কখন notification deliver হবে
* Firebase এখানে শুধু একটি middle layer

Step 4: OS কীভাবে বোঝে notification এসেছে
ফোনের ভিতরে যা ঘটে—
1. Internet দিয়ে encrypted data আসে
2. Data ঢোকে OS-এর kernel network stack-এ
3. Kernel সেই data পাঠায় OS-এর push daemon-এ
এই মুহূর্তে—
* Operating System জানে notification এসেছে
* Flutter App কিছুই জানে না
App বন্ধ থাকলেও OS সবসময় জেগে থাকে।

Step 5: OS কীভাবে বোঝে কোন App-এর notification
প্রতিটা push notification-এর সাথে থাকে একটি unique identifier (token)।
Operating System আগেই জানে—
এই token → এই App
এই mapping OS নিজেই maintain করে।
তাই OS নিশ্চিতভাবে বুঝে যায়—�“এই notification এই App-এর জন্য”
এখানে App-এর কোনো decision নেওয়ার ক্ষমতা নেই।

Step 6: OS Decision Engine
(সবচেয়ে গুরুত্বপূর্ণ ধাপ)
এখন Operating System সিদ্ধান্ত নেয় কী করবে।
OS যেসব বিষয় বিবেচনা করে—
* App open, background, নাকি kill করা
* Battery saver বা Doze mode চালু কিনা
* Notification priority high না normal
* Payload notification নাকি data
এরপর OS চার ধরনের সিদ্ধান্ত নিতে পারে—
1. শুধু notification দেখাবে, App চালাবে না
2. User tap করলে App খুলবে
3. Background-এ অল্প সময় code চালাতে দেবে
4. Notification একেবারে drop করে দেবে
এই সিদ্ধান্ত App override করতে পারে না।

Step 7: OS কীভাবে Notification UI বানায়
যদি payload-এ title ও body থাকে—
Android-এ
* OS নিজেই notification UI বানায়
* Status bar-এ দেখায়
* Sound ও vibration দেয়
iOS-এ
* OS নিজেই banner বা alert দেখায়
* Badge update করে
* Sound বাজায়
এই সময়—
* Flutter App run করে না
* Dart code execute হয় না
* App জানেও না notification এসেছে

Step 8: User tap করলে কী হয়
User notification-এ tap করলে—
Operating System—
* App launch করে
* Notification data App-কে দেয়
Flutter-এ—
* Native layer data গ্রহণ করে
* Flutter-এ পাঠায়
Flutter তখন notification সম্পর্কে জানতে পারে।

Step 9: Flutter App কখন notification সম্পর্কে জানে
Flutter নিজে কখনো detect করে না।�Operating System তাকে জানায়।
Flutter-এ notification জানার জায়গা মাত্র চারটি—
অবস্থা Flutter callback
App open onMessage
Background data onBackgroundMessage
Tap (background) onMessageOpenedApp
Tap (killed) getInitialMessage
এর বাইরে Flutter কিছুই জানে না।

পুরো সত্য একদম সহজ ভাষায়
Firebase পাঠায়
Operating System পায়
Operating System সিদ্ধান্ত নেয়
Operating System দেখায়
Operating System চাইলে App-কে জানায়
Flutter শুধু শোনে

অফিসিয়াল ডকুমেন্টেশন (আরও জানার জন্য)
Firebase Cloud Messaging�https://firebase.google.com/docs/cloud-messaging
Android Notifications�https://developer.android.com/guide/topics/ui/notifiers/notifications
iOS Push Notifications�https://developer.apple.com/documentation/usernotifications

শেষ কথা
Push Notification কোনো App-এর feature না।�Push Notification হলো Operating System-এর feature।
এই কথাটা একবার পরিষ্কারভাবে বুঝলে�Firebase, Flutter, Android, iOS—সবকিছু পরিষ্কার হয়ে যাবে।

06/06/2025
🚀 Exciting News from CodeGalax!We’re thrilled to announce the onboarding of a brand new mobile app project — crafted for...
09/05/2025

🚀 Exciting News from CodeGalax!
We’re thrilled to announce the onboarding of a brand new mobile app project — crafted for the charming town of Lincolnton, USA 🇺🇸.

🌟 This tourism app will help locals and visitors explore hidden gems, popular places, and all the vibrant experiences Lincolnton has to offer.

Stay tuned as we turn ideas into innovation.

Address

Shamoly
Dhaka
1207

Website

Alerts

Be the first to know and let us send you an email when CodeGalax posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Share