web-dev-qa-db-fra.com

NoSQL pour les applications mobiles?

Existe-t-il une solution de base de données noSQL établie à utiliser pour développer des applications mobiles natives (Android et/ou iOs)?

62
Jeff

Je ne pense pas qu'il existe un backend NoSQL établi pour les applications mobiles natives, mais Couchbase Mobile est une excellente base de données NoSQL avec des implémentations pour iOS et Android.

iOS: http://www.couchbase.com/products-and-services/mobile-couchbase

Android: https://github.com/couchbase/couchbase-lite-Android

27
Drew

leveldb est le nouvel enfant du bloc. C'est un magasin clé/valeur similaire à BigTable, mais conçu pour les appareils intégrés. Leur licence est New BSD, bien meilleure que la LGPL de Tokyo Cabinet.

Il est incroyablement rapide et construit directement à partir de Xcode.

16
steipete

Je ne serais pas surpris s'il existe un port Tokyo Cabinet pour les systèmes d'exploitation mobiles; mais sérieusement, qu'est-ce que NoSQL apporterait à la bibliothèque SQLite déjà incluse dans la plateforme every?

  • sémantique simple. il est tout aussi facile de faire une clé/valeur en SQL que sur n'importe quelle base de données NoSQL
  • évolutivité. un téléphone compatible multi-octets ne peut pas être considéré comme une plate-forme mobile.
  • fragmentation triviale. les groupes de téléphones ne sont pas encore si populaires
  • petite mise en œuvre. le code source de tokyo cabinet est de 4,8 Mo, SQLite est de 4,7 Mo. pas de vrai gain (et c'est déjà là).

en bref, vous pouvez simplement utiliser SQLite comme un "petit NoSQL" si vous le souhaitez. c'est assez rapide aussi.

11
Javier

Modifier :( avr 2016)

Royaume est la voie à suivre de nos jours.


Si quelqu'un est toujours intéressé, j'ai trouvé ces deux emballages pour TokyoCabinet:

Quoi qu'il en soit, je pense que LevelDB est meilleur.

10
Raspu

CouchDB est fréquemment annoncé comme une base de données NoSQL pour les applications mobiles en raison de ses capacités de synchronisation. Il existe également une version bêta de Mobile Couchbase .

5
yojimbo87

pour Android il y a ceci:

https://github.com/rehacktive/waspdb

c'est une étape alpha pour l'instant, mais cela pourrait correspondre à votre demande.

5
aw4y

SnappyDB semble être une très bonne option NoSQL pour Android. Les benchmarks en lecture/écriture contre SQLite sont assez étonnants.

4
tejasbubane

iBoxDB est une base de données NoSQL haute performance avec des implémentations pour les deux Android et Windows Phone. facile à utiliser, configuration zéro, copie et exécution.
pour Java Android https://github.com/iboxdb/forjava
téléphone Windows for.net https://iboxdb.codeplex.com/

2
Bruce

Quelque chose de nouveau que j'ai écrit dans Objective-C est SimpleDB. C'est un magasin de clés/valeurs et vous pouvez le trouver ici: http://github.com/AaronBratcher/SimpleDB

Étant donné que les valeurs stockées doivent être JSON, le tri peut être effectué et des parties spécifiques des données peuvent être renvoyées.

Particularités

  • Très facile à utiliser - AUCUN SQL REQUIS!
  • Option de suppression automatique pour les entrées après la date spécifiée
  • Aucune interaction directe avec la base de données requise pour utiliser la classe - elle fait tout
  • Toutes les méthodes sont des méthodes de niveau classe, donc aucune instance de la classe n'est requise
  • Thread safe

API

+(BOOL) hasKey:(NSString*) key inTable:(NSString*) table;
+(NSArray*) keysInTable:(NSString*) table;
+(NSArray*) keysInTable:(NSString*) table orderByJSONValueForKey:(NSString*)jsonOrderKey passingTest:(BOOL (^)(NSString* key, NSString* value, NSDate* dateAdded, NSDate* dateModified));

+(NSString*) valueForKey:(NSString*) key inTable:(NSString*) table;
+(NSDictionary*) dictionaryValueForKey:(NSString*) key inTable:(NSString*) table;
+(id) jsonValueForKey:(NSString*) jsonKey tableKey:(NSString*) key inTable:(NSString*) table;

+(void) setValue:(NSString*) value forKey:(NSString*) key inTable:(NSString*) table;
+(void) setValue:(NSString*) value forKey:(NSString*) key inTable:(NSString*) table autoDeleteAfter:(NSDate*) date;

+(void) deleteForKey:(NSString*) key inTable:(NSString*) table;

+(void) dropTable:(NSString*) table;

+(dbStatus) status;
+(NSString*) guid;
0
Aaron Bratcher