U SMS tak nejak kazdy svepravny clovek ocekava, ze bude dorucena (mozna) az se cilovy telefon objevi v siti. A nejakym rizenim osudu vetsinou funguje i zpetna notifikace o doruceni.
Pokud potrebuji s nekym komunikovat ted hned, tak mu zavolam a nebudu mu posilat sms. Tim ovsem nezmenim nic na tom, ze se mi muze z telefonu ozvat, ze volane cislo je nedostupne, pripadne, ze semnou dotycny nechce aktualne mluvit.
U IM je pak prekvapive k dizpozici prave moznost podivat se, zda dotycny prave se zarizenim pracuje, ci zda je ono zarizeni alespon dostupne v siti. A funguje to tak prekvapive odjakziva. Celkem bez ohledu na protokol a sit. Kupodivu, nektere site dokonce umoznuji takove vymozenosti, jako pozadat prave zmenou stavu o nevyrusovani. Tedy sdelit neco na tema "pokud jde o zivot, jsem tu, ale jinak me nechte byt".
Tyto novoty funguji v IM sitich uz minimalne 20 let.
Sémantika statusů je naprosto jasná:
Online (zelená) - uživatel je online a právě pracuje se zařízením.
Away (oranžová) - aplikace na zařízení je připojena k serveru, ale uživatel se zařízením nepracuje, pokud v tomto stavu pošlu zprávu tak dorazí na zařízení a uživatel bude notifikován, při nejbližší příležitosti si zprávu přečte
Offline - zařízení nemá aktivní datové připojení nebo je vypnuté, zpráva bude doručena až po zapnutí/obnovení.
Na Hangouts mě vytáčí zejména, že většinou nelze rozlišit stav away od offline, tedy jestli zamýšlený příjemce je na internetu a zprávu dostane a nebo ne a radši mám poslat SMS. Androidí Google Talk klient na Androidu tento problém neměl a fungovalo to dle očekávání.
Protože dnes už díky smartphonům prostě funguje IM jinak, taková je realita. Kecálek dnes běží prakticky každému na smartphone a tam je za prvé každý (většina) online de facto neustále, ale na druhou stranu je ta komunikace de facto asynchronní (lidé se s telefony pohybují, mohou být chvilkově bez signálu, mění se za běhu připojení z wifi na mobilní síť a naopak, atd.). Takže pojem "být online" se stal silně "fuzzy".
XMPP na tohle nebylo stavěno a funguje v takovém prostředí velmi špatně. Existují sice XEPy (rozšíření XMPP protokolu), které se tohle snaží řešit (např. XEP-0198: Stream Management, XEP-0280: Message Carbons, XEP-0184: Message Delivery Receipts, XEP-0313: Message Archive Management a pár dalších), ale jejich podpora jak na straně klientů, tak na straně serverů, je silně omezená. A oproti nativním "push" zprávám (GCM na Androidu, APNS na iOS) tu bude vždy celá řada nevýhod.
Tím neříkám že se mi ta situace líbí, ale prostě realita je jaká je...
Řeknu to tak, jak to je. Hangouts je arcisračka, která vám oproti GTalku sežere celou obrazovku, přesto však zobrazí daleko méně kontaktů, než zmiňovaný GTalk s třetinovou velikostí. Za další pak někdo hodně chytrý vymyslel, že se zobrazují jen kontakty, se kterými jste komunikovali naposledy, a to i když jsou offline, vy jste si s nimi nenapsali třeba už přes rok. To, že deset jiných kontaktů je v této chvíli online, nevidíte. Proč by to také mělo jít jako třeba u Skypu či GTalku, kde primárně vidíte uživatele, kteří jsou online? To by nad tím musel přemýšlet někdo, kdo má IQ alespoň 80.