Рекомендуемый способ внедрения Push Notifications

Я создаю приложение для Android и iPhone. Это приложение должно получать уведомления о новых сообщениях во входящих почтовых ящиках пользователя. Являясь полным noob в приложении dev, мне было интересно, сможет ли кто-нибудь из вас предложить лучший способ реализовать то, что мне нужно здесь.

Я читал больше на Android, чем iPhone, поэтому мое понимание последнего может быть желательным. Основываясь на том, что я прочитал и понял, я считаю, что мне нужно будет начать сервис, когда мое приложение запускается в первый раз (или поручить устройству запускать службу каждый раз, когда устройство запускается или что-то еще). Затем эта служба будет взаимодействовать с сервером для получения уведомлений и отображения их. Нажав на уведомление, вы запустите приложение.

Мои параметры:

  1. C2DM или APNS

  2. Городской дирижабль

  3. Мой собственный сервер с использованием в основном простоя TCP-соединения с клиентом.

В зависимости от варианта, который я выбираю, меня реализует реализация на стороне клиента, а также реализация на стороне сервера.

Что вы, ребята, рекомендуете? Есть ли другой способ сделать то, что мне нужно?

Любая помощь приветствуется.

Обновить:

Основываясь на ответе jbat100. Тот факт, что Apple не позволяет мне писать собственный сервер для непосредственного общения с моим приложением для уведомлений, означает, что APNS необходимо использовать. Таким образом, вариант 3 полностью отсутствует. Это означает, что мы остаемся либо с Urban Airship, либо напрямую связаны с APNS и C2DM. Основываясь на моих исследованиях, усилия, связанные с обоими случаями, сопоставимы, поэтому не имеет смысла выкладывать дополнительные 4-5K / mo для поддержки уведомления. Поэтому я планирую реализовать вариант 1. Если кто-то из вас думает иначе, пожалуйста, оставьте комментарии ниже.

Благодарю.

Их придется обрабатывать отдельно. В случае push-уведомлений iOS вам придется пройти через службу уведомлений Apple Push ( здесь будет руководство по программированию), у них есть очень специфический протокол, который ваш сервер должен будет соответствовать тому, что описано в сообщении поставщика с Apple Push Notification Service , Не знаю об Android, он, вероятно, будет совсем другим, менее централизованным.

Основываясь на ответе jbat100. Тот факт, что Apple не позволяет мне писать собственный сервер для непосредственного общения с моим приложением для уведомлений, означает, что APNS необходимо использовать. Таким образом, вариант 3 полностью отсутствует. Это означает, что мы остаемся либо с Urban Airship, либо напрямую связаны с APNS и C2DM. Основываясь на моих исследованиях, усилия, связанные с обоими случаями, сопоставимы, поэтому не имеет смысла выкладывать дополнительные 4-5K / mo для поддержки уведомления. Поэтому я планирую реализовать вариант 1. Если кто-то из вас думает иначе, пожалуйста, оставьте комментарии ниже.

C2DM было бы проще всего. Но, я думаю, вы также можете попробовать Urban Ship. Реализация вашего собственного сервера – это боль.

Моя ситуация очень похожа, и я сначала выпустил приложение для Android, и теперь я работаю над iOS-приложением. Для Android я реализовал push-уведомления с использованием C2DM, и я отправляю уведомления из своего приложения Google App Engine (GAE). C2DM в основном требует отправки HTTP-сообщений на сервер Google. Итак, вы отправляете HTTP POST на URL https://android.apis.google.com/c2dm/send .

Тем не менее, для iOS требуется выделенное TCP-соединение на проприетарном порту, а среда GAE не позволяет использовать внешний протокол, кроме HTTP, через порт 80. Таким образом, я много исследовал, и кажется, что это ответ на вопрос Urban Airship. Они предоставляют HTTP-интерфейс, доступ к которому я могу получить из моей среды GAE, и они преобразуют это в протокол, который понимают серверы Apple. Их цена кажется запутанной, хотя – 1 миллион бесплатных уведомлений в месяц, и десятая часть процента за уведомление после этого. Это bizzare, потому что они дают 1000 долларов в месяц бесплатно? Очень экономично странно. Я подумываю о том, чтобы попробовать их, но я думаю, что лучшая альтернатива большого объема – просто использовать свою собственную реализацию и развернуть ее на AWAS Amazon или купить другой дешевый сторонний хостинг.

Важно: C2DM официально устарел по состоянию на 26 июня 2012 года. Это означает, что C2DM перестает принимать новых пользователей и запросы квот. Никакие новые функции не будут добавлены в C2DM. Однако приложения, использующие C2DM, будут продолжать работать. Существующим разработчикам C2DM рекомендуется перейти на новую версию C2DM, называемую Google Cloud Messaging для Android (GCM). Дополнительную информацию см. В документе миграции C2DM-GCM. Разработчики должны использовать GCM для новой разработки.

Я не могу пролить свет на сторону Android, но могу сказать, что недавно настроил невероятно простое приложение Rails на Heroku, которое отправляет push-уведомления в мое приложение iOS через APNS. Я использовал драгоценный камень в Хьюстоне и получал push-уведомления в своем приложении iOS менее чем за 20 минут после того, как начал работу.