Comment fonctionne la technologie «bump»?

Une documentation ou des articles utiles sur le transfert de données entre périphériques?

Assez non technique, mais leur FAQ donne des informations sur la technologie:

Q: Comment fonctionne Bump?

R: Bump comprend deux parties: l’application s’exécutant sur votre appareil et un algorithme de correspondance intelligent s’exécutant sur nos serveurs dans le cloud. L’application sur votre téléphone utilise les capteurs du téléphone pour littéralement “sentir” la bosse, et il envoie ces informations au cloud. L’algorithme d’appariement écoute les bosses des téléphones du monde entier et associe les téléphones qui ont le même impact. Ensuite, nous acheminons simplement les informations entre les deux téléphones de chaque paire.

Q: Pas question. Et si quelqu’un d’autre saute en même temps?

Un moyen. Nous utilisons différentes techniques pour limiter le pool de correspondances potentielles, y compris les informations de localisation et les caractéristiques de l’événement bump. Si vous vous heurtez à une zone particulièrement dense (par exemple lors d’une conférence) et que nous ne pouvons pas résoudre un match unique après une seule bosse, nous vous demanderons simplement de sauter à nouveau. Notre CTO a un doctorat en mécanique quantique et peut montrer les maths derrière cela, mais nous vous suggérons de télécharger Bump et de l’essayer vous-même!

Q: Pourquoi Bump veut-il utiliser ma position?

A: Nous avons des millions d’utilisateurs dans le monde entier maintenant. Nous utilisons les informations de localisation pour limiter le nombre de téléphones que nous devons vérifier pour déterminer la correspondance correcte. Fondamentalement, si vous êtes à Chicago, nous utilisons ces informations pour que nous ne comparions pas vos bosses venant du Japon, d’Europe, de New York, etc. Pour cette raison, nous exigeons que les services de localisation soient activés et que les utilisateurs autorisent l’utilisation de leurs informations de localisation. Si vous n’autorisez pas l’utilisation des informations de localisation, Bump ne fonctionnera pas, désolé.

Q: Bump exige-t-il que mon Bluetooth soit également activé?

Un: non! Bump n’utilise pas Bluetooth pour fonctionner du tout; tout ce dont vous avez besoin est une connexion Internet via wifi, 3G ou Edge.

Vous pouvez confondre la façon dont Bump fonctionne. Je crois comprendre que les données de l’accéléromètre et de la géolocalisation sont utilisées pour identifier les “bosses” ou les paires de dispositifs candidates. Les données de contact, elles-mêmes, sont transférées sur Internet, pas localement via Bluetooth ou wifi.

Exemple complet de https://github.com/bumptech/bump-api-ios

- (void) configureBump { // userID is a ssortingng that you could use as the user's name, or an ID that is semantic within your environment [BumpClient configureWithAPIKey:@"your_api_key" andUserID:[[UIDevice currentDevice] name]]; [[BumpClient sharedClient] setMatchBlock:^(BumpChannelID channel) { NSLog(@"Matched with user: %@", [[BumpClient sharedClient] userIDForChannel:channel]); [[BumpClient sharedClient] confirmMatch:YES onChannel:channel]; }]; [[BumpClient sharedClient] setChannelConfirmedBlock:^(BumpChannelID channel) { NSLog(@"Channel with %@ confirmed.", [[BumpClient sharedClient] userIDForChannel:channel]); [[BumpClient sharedClient] sendData:[[NSSsortingng ssortingngWithFormat:@"Hello, world!"] dataUsingEncoding:NSUTF8SsortingngEncoding] toChannel:channel]; }]; [[BumpClient sharedClient] setDataReceivedBlock:^(BumpChannelID channel, NSData *data) { NSLog(@"Data received from %@: %@", [[BumpClient sharedClient] userIDForChannel:channel], [NSSsortingng ssortingngWithCSsortingng:[data bytes] encoding:NSUTF8SsortingngEncoding]); }]; // optional callback [[BumpClient sharedClient] setConnectionStateChangedBlock:^(BOOL connected) { if (connected) { NSLog(@"Bump connected..."); } else { NSLog(@"Bump disconnected..."); } }]; // optional callback [[BumpClient sharedClient] setBumpEventBlock:^(bump_event event) { switch(event) { case BUMP_EVENT_BUMP: NSLog(@"Bump detected."); break; case BUMP_EVENT_NO_MATCH: NSLog(@"No match."); break; } }]; 

}