Ответ 1
Рабочая реализация push-уведомлений включает в себя много вещей, таких как:
- Отслеживание идентификаторов устройств (веб-служба для связи с устройством, база данных для хранения идентификаторов)
- Сохранение метаданных, связанных с каждым идентификатором устройства (т.е. вы можете ссылаться на устройство по имени пользователя или группе устройств по тегу)
- Отслеживание того, какие устройства были деактивированы (что происходит, если пользователь отключает уведомления)
- Очистка плохих идентификаторов устройств
- Фактически формируется необработанный запрос на отправку сообщения на серверы Apple
- Некоторая услуга/программа, чтобы знать, когда вам нужно отправлять уведомления.
Urban Airship заботится о вас 1-5, что значительно упрощает весь процесс. Да, если бы вы просто отправляли сообщение на одно устройство, вы могли бы найти библиотеку С# или python или Objective-C для подключения к Apple и формирования сообщения, но как только вам нужно будет отслеживать большое количество устройств, Urban Airship предоставляет бесплатную услугу (если менее 1 миллиона нажатий в месяц), чтобы занять много работы с ваших плеч.
(И это просто базовая услуга push для iPhone, так как это единственная услуга, которую я использовал)
Чтобы ответить на ваш другой вопрос, вам все равно нужен какой-то "сервер" или программа, чтобы знать, когда нажать (# 6). Я, например, отслеживаю твиттер с помощью программы python для ключевых слов и отправляю уведомления, когда вижу их. Моя программа не связана с деталями отправки уведомлений, используемая мной библиотека Urban Airship заботится о взаимодействии с Urban Airship и Apple.