to post messages and comments.

← All posts tagged Android

внезапно — правильная сделанная чатилка на андроид это вовсе не одно из десятка чат-приложений гугла, и даже не ватсапп, а facebook messenger! Только в нем грамотно скопирована «цветовая дифференциация смс» и даже лучше, обычные смс тут противного фиолетового цвета, они поняли идею :)

Тут @Gerc починил все баги в андроид-приложении жуйка, говорят — github.com
Я опубликовал это как бета-версию в гугл-плее, если кому интересно потестировать, то попробуйте, и расскажите чего не хватает, или работает неправильно

Смотрю сейчас кино по ведропланшету в приложении YouTube и каждые 10 минут показывают рекламу. И после этого красноглазые мудаки обижаются что с ними разговаривают матом

Daily reminder that JavaDroid still lags like a fucking constipated shit from an ass.

2011: "It doesn't lag anymore with 4.0!"
2012: "Ok now we're lagfree for sure with JayBee and muh project buttah!"
2013: "Uh, that was just a minor version! Android 4.4 will make it stop lagging for sure!"
2014: (insert freetard excuses for why Android 5.0 still lags)

Модные современные мессенджеры умеют получать push-уведомления на Android/iOS-устройства о новых сообщениях, а XMPP разработчики этих убийц Whatsapp-а считают "устаревшим" и "не умеющим" реализовывать подобные фичи. На самом деле все очень просто и нужно совсем немного кода:
1) берем xmpp-сервер prosody и модуль mod_smacks из prosody-modules, реализующий XEP-0198: Stream Management
2) настраиваем ему параметр smacks_hibernation_time = 86400 — столько секунд он будет держать сессию клиента подключенной, если он(клиент) отключился.
3) немножко патчим его(модуль), добавляя туда один единственный вызов события получения сообщения — paste.org.ru
4) теперь пишем дополнительный модуль, назовем его mod_smacks_notifications, который будет слать принятые во время отсутствия клиента сообщения через Google Cloud Messaging (аналогичным образом можно работать и с Apple и Microsoft, coming soon)
paste.org.ru
5) далее нужно добавить поддержку в клиент, мной взят Android-клиент SawIM:
а) быстренько дописываем поддержку XEP-0198, очень простой XEP, нам достаточно считать полученные пакеты и по запросу сервера высылать это число, ну и естественно включать управление сессиями и продолжать разорванную сессию.
б) при получении от GCM регистрационного кода устройства, шлем нашему серверу запрос типа:
<iq type=set"><register xmlns="..." regid="[полученный-regid-от-гугла]" /></iq>
в) Создаем в Google API Console проект для нашего мессенджера, в консоли разработчика Google Play связываемся с приложением через Server API Key, в конфигурации нашего написанного модуля указываем gcm_api_key.
На все про всё ушло пара дней неспешной работы в свободное время, lua видел второй раз в жизни, ну java видел чуть побольше :) — github.com