Autore Topic: Come funzionano alcune apps  (Letto 512 volte)

Offline felasandroid

  • Utente normale
  • ***
  • Post: 345
    • Github
    • balduzziantonio
    • balduzziantonio.unifi
    • Mostra profilo
  • Dispositivo Android:
    Huawei P8 Lite
  • Play Store ID:
    FelasTech
  • Sistema operativo:
    Windows 10
Come funzionano alcune apps
« il: 22 Ottobre 2013, 11:14:11 CEST »
Salve
mi veniva in mente di aprire questo Topic per parlare di come funzionano alcune app, ad esempio che tecnologie usano? hanno un db interno o meno? come fa a fare una tale funzione?

Ad esempio io mi chiedevo Whatsapp che tecnologie avrà usato? per esempio per cercare nella tua rubrica chi ha whatsapp installato sfrutta un db esterno?..

Non so mi pareva interessante scambiarsi pareri su varie app..

Ciao

Offline undead

  • Utente senior
  • ****
  • Post: 666
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Come funzionano alcune apps
« Risposta #1 il: 22 Ottobre 2013, 11:49:44 CEST »
Suppongo che quando ti registri salvi il tuo numero sul suo database esterno (cioè sui server whatsapp). Poi fa un confronto tra la tua rubrica e i numeri sul loro server.
A quel punto dovrebbe salvarti in locale la lista dei contatti che hai tu e che hanno loro, non so in che formato e con quali informazioni.

Immagino che poi all'avvio ci sia una verifica sulla lista contatti per stabilire cosa è cambiato ed eventualmente aggiornarti i nuovi contatti whatsapp.

Offline felasandroid

  • Utente normale
  • ***
  • Post: 345
    • Github
    • balduzziantonio
    • balduzziantonio.unifi
    • Mostra profilo
  • Dispositivo Android:
    Huawei P8 Lite
  • Play Store ID:
    FelasTech
  • Sistema operativo:
    Windows 10
Re:Come funzionano alcune apps
« Risposta #2 il: 22 Ottobre 2013, 11:58:41 CEST »
si pensavo anche io su un server esterno salva numeri associati a utenti, ma tipo bene ricerco tutti i dati dal database salvo i contatti su un db nel tuo smartphone.
Ora per mandarti un messaggio o altro che sia insomma, cosa usano? io scrivo in una text area e clicco il bottone invio..bene che succede?..sempre per supposizioni dico..
L'applicazione apre una connessione sicura verso il server invia il messaggio e il destinatario al momento della sua connessione controlla e scarica eventuali messaggi dal server?
« Ultima modifica: 22 Ottobre 2013, 12:01:24 CEST da felasandroid »

Offline undead

  • Utente senior
  • ****
  • Post: 666
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Come funzionano alcune apps
« Risposta #3 il: 22 Ottobre 2013, 12:28:15 CEST »
si pensavo anche io su un server esterno salva numeri associati a utenti, ma tipo bene ricerco tutti i dati dal database salvo i contatti su un db nel tuo smartphone.
Ora per mandarti un messaggio o altro che sia insomma, cosa usano? io scrivo in una text area e clicco il bottone invio..bene che succede?..sempre per supposizioni dico..
L'applicazione apre una connessione sicura verso il server invia il messaggio e il destinatario al momento della sua connessione controlla e scarica eventuali messaggi dal server?
Se dovessi progettarlo io farei una cosa del tipo:

Lato server:

ID id univoco utente whatsapp
NUM telefono in chiaro utente whatsapp
HASH numero codificato utente whatsapp
ALTRI DATI QUALI NICKNAME, AVATAR E STUPIDATE VARIE

A quel punto per ragioni di privacy io dalla app prenderei ogni numero dalla lista contatti, chiamerei la funzione hash in locale e chiederei al server di darmi l'ID utente associato a quel numero codificato.
In questo modo whatsapp non può conoscere il numero di mario rossi se mario rossi non è un utente whatsapp.
Con l'ID utente chiedo a whatsapp gli altri dati così in locale mi ricostruisco la mia lista contatti con avatar, nickname, numero, numero hashed (ne basterebbe uno ma va beh) e id.

Ora viene il "bello" o meglio il brutto.
A rigor di logica è tutto semplice.

Quando invii un messaggio tu dici al server di whatsapp che l'utente con ID 1234 manda "ciao" all'utente con ID 5678.
Il server si prende il tuo messaggio, ti notifica che l'ha ricevuto (su viber "inviato").
Il device dell'utente con ID 5678 ha un servizio che gestisce notifiche in push e che riceve il tuo messaggio (su viber viene scritto "consegnato").
L'utente ricevuta la notifica apre il messaggio, il server viene notificato e a sua volta usando sempre le notifiche push sul device con ID 1234 viene scritto "letto".

Puoi divertirti ad implementartelo da solo ( :D ) più semplicemente puoi fare come whatsapp che usa tecnologia XMPP customizzata.

http://en.wikipedia.org/wiki/XMPP

 :-P

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Come funzionano alcune apps
« Risposta #4 il: 22 Ottobre 2013, 12:58:14 CEST »
Sicuramente sfrutta GCM o simili.
I numeri contano molto di più del seme.

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Come funzionano alcune apps
« Risposta #5 il: 22 Ottobre 2013, 13:08:46 CEST »
Il back office tecnologico di WhatsApp è basato su Erlang, è molto difficile spiegarlo in due parole, si tratta di un linguaggio di programmazione molto diverso dai linguaggi funzionali o a oggetti e da un sistema runtime distribuito. I sorgenti e tutta la documentazione si trovano nel sito ufficiale:

http://www.erlang.org

avranno poi sviluppato parecchio software in house per interfacciarsi con tutte le piattaforme mobili da loro sopportate.
adb logcat | tee /tmp/logcat | grep TAG

Offline undead

  • Utente senior
  • ****
  • Post: 666
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Come funzionano alcune apps
« Risposta #6 il: 22 Ottobre 2013, 13:47:44 CEST »
"WhatsApp uses a customized version of the open standard Extensible Messaging and Presence Protocol (XMPP)."

http://en.wikipedia.org/wiki/WhatsApp

 ;-)