Pull to refresh

Пишем приложение под Android с поддержкой Cloud to Device Messaging (C2DM)

Reading time 15 min
Views 35K
Development for Android *
Sandbox


Здравствуйте, читатели Хабрахабр!

В данном посте я хочу уделить внимание сервису C2DM от компании Google и попытаюсь рассказать, как реализовать поддержку данного сервиса в вашем Android-приложении. Напомню, что C2DM — это специальный сервис, предоставляющий API для отправки сообщений приложениям, установленным на устройствах Android. Использование данного сервиса является незаменимым способом при необходимости передать сообщение пользовательскому приложению, зарегистрированному в системе, но не являющемуся на данный момент активным.

Хотя C2DM является одной из фундаментальных возможностей платформы Android, информации о нем в рунете мало. Попытка изменить данную ситуацию и является одной из задач этого поста.

Под катом я расскажу, как написать простые клиентское и серверное приложения, покажу некоторые «подводные камни», а также дам ссылки на примеры кода.

Читать дальше →
Total votes 56: ↑55 and ↓1 +54
Comments 34

Как Instagram к запуску Android приложения готовился

Reading time 3 min
Views 5.5K
Server optimization *
Как вы уже могли узнать, Instagram продается Facebook за $1 млрд. У многих возник вопрос: За что такие деньги? Кто-то на хабре сравнил это с бумом доткомов. Да только весь этот бум на одном Facebook и держится.

В течении двух лет CEO Instagram Kevin Systrom думал, как же монетизировать свое быстрорастущее детище, но так и не придумал. При том много раз просказльзывали слухи о его отказе в сделке с Facebook. Автоподсказчик Google уже давно выдавал первым вариантом к запросу «kevin systrom» фразу «Kevin Systrom net worth». Дела шли в гору и без Facebook.

Неделю назад они выпустили приложение на Android и продались Facebook за сумму с 9 нулями в долларах. Владельцы андроидов были рады:

Разработчики же, не очень: «Куда так топят? За что им платят? Я тоже так могу, там же ничего сложного и инновационного!» кричал каждый второй разработчик на Android / iOS.

Лично я ждал падения сервиса в день релиза приложения в магазине Google Play. Но этого не случилось. Количество зарегистрированных пользователей в первые 24 часа составило около миллиона человек. Немалая цифра, я вам скажу.

И как же команде из 9 человек удалось вытерпеть такой наплыв и не сломаться?
Читать дальше →
Total votes 92: ↑72 and ↓20 +52
Comments 104

Как пришлось бороться с нестабильным Google C2DM

Reading time 9 min
Views 6K
Development for Android *
Sandbox
Так уж случилось, что на работе я с небольшой командой единомышленников занимаюсь написанием приложений для смартфонов, в частности iТелефон и Андроид.

Начинали мы с разработок под iPhone, где все работало гладко и как положено.
А что работало? Основная задача приложения была послать запрос «Где ты?» — ничего сложного. Но уж очень хотелось бы этот запрос доставлять адресату как можно быстрее, пока он еще актуален. Здесь, имеющий опыт в разработках под iPhone, читатель скажет, что есть APN Service, и будет абсолютно прав. Именно им мы и пользовались, и не знали горя, ибо доставлялись эти уведомления быстрее секунды.

Затем по некоторым внутренним причинам мы перешли на разработки под Android и быстренько все портировали. В частности без каких-либо задних мыслей модуль работы с APN был заменен на аналогичный с C2DM.

На всех телефонах разработчиков проблем с доставкой уведомлений не было. А вот у новых пользователей сразу вскрылась огромная проблема — время доставки уведомления никак не гарантировано, и некоторые из них доходили через несколько часов. Причем на соседнем же устройстве они доходили за секунды.

В ходе исследования этой проблемы я натолкнулся на ряд странных особенностей работы этих уведомлений от Google.
Читать дальше →
Total votes 26: ↑24 and ↓2 +22
Comments 12

Обмен сообщениями между облаком и устройством (Cloud to Device Messaging)

Reading time 5 min
Views 6.4K
Development for Android *
Translation
Обмен сообщениями между облаком и Android устройством (C2DM) – это сервис, который позволяет разработчикам отправлять данные с серверов в приложения на Android устройствах. Сервис предоставляет простой и легкий механизм, который могут использовать сервера для того, чтобы сообщить мобильным приложениям о связи с сервером напрямую для получения обновлений приложения или данных пользователя. C2DM сервис управляет всеми аспектами организации очередей сообщений и доставки к целевому приложению, запущенному на целевом устройстве.
Подробности
Total votes 13: ↑11 and ↓2 +9
Comments 2