According to FCM official documentation:
On iOS, if the user swipes away the application from app Switcher, it must be manually reopened again for background messages to start working again
See: https://firebase.flutter.dev/docs/messaging/usage/
However, any app with notifications that I can think of (Whatsapp, Facebook messenger, Tinder etc) will still notify the user if there's a new message, even if the app was swiped away. A different behavior will be a very bad UX (as a sidenote, background messages don't work on FCM ->APN -> client if the physical iPhone was restarted, see https://github.com/FirebaseExtended/flutterfire/issues/7785)
So FCM isn't the right way for iOS. I thought that APN might be the right way, but to my surprise, all of the APN packages seem to be dead (for example see https://pub.dev/packages/flutter_apns - was last pushed 6 months ago and authors stopped responding to issues).
Flutter is a popular framework which exists for years now, so there must be a way to implement notifications properly. What is that way?