При доставке push-уведомлений на Android (с Google Play Services) и iOS всегда будут использоваться FCM или APNS соответственно. Причина в том, что эти сервисы встроены в операционную систему или построены ближе к операционной системе, чем обычное приложение, которое может функционировать, и благодаря этому получают преимущества в надежности и сроке службы батареи. И FCM, и APNS полностью бесплатны и неограниченны, хотя у обоих есть квота для защиты служб от злоупотреблений.
Существует множество сервисов (таких как Parse Push, Airship, OneSignal и т. Д.), Которые основаны на FCM и APNS для обеспечения операций обмена сообщениями более высокого уровня. Но на более низком уровне они будут использовать APNS и FCM для фактической доставки сообщений.
Это также то, о чем вы должны подумать при рассмотрении вопроса о создании своего собственного сервера: что этот сервер на самом деле будет делать для доставки сообщений на устройства? Если вы не используете FCM / APNS, как вы получаете сообщение на устройство, особенно когда пользователь не активно использует приложение?