SNS can be used for a lot of things. There are six different subscriber types available at the moment and among them, we use the SMS, email, and push notifications. We use the SMS and Email services to notify admins whenever something goes wrong, but our primary use case is to send push notifications to our mobile devices (customers).
The backend engineers work on setting it up on AWS and most of the features like SMS, Email, etc do not need any frontend intervention, but yes for push notifications, the frontend needs to use the SDK to capture and display them.
Previously, we had to use FCM, which was a completely separate service from Google. Whenever we had some issues with the notification center, that is, if the sending failed due to any reason (the reason could be anything like the user didn't have a proper internet connection, or if the application was not working for some reason), we had to go to the Firebase console to figure out what happened and which notifications were lost specifically. We were not using Firebase for any other application. Our entire stack is inside the AWS service and we had to use Firebase only for such instances, which was a drag.
Now that we're using SNS, we can leverage CloudWatch logs. We can also have a dead letter queue to store the messages that were failed. Later on, at any point in time, we can just check the queue and see the failed messages. We can also send a message from this queue to our admins so that they can easily and directly receive an SMS whenever a notification sending fails. All these features made SNS a lot more solid.