Realm.io

muqaddarmuqaddar Administrateur
août 2014 modifié dans Actualités #1

Je viens de tomber là -dessus (10 jours de retard...):


http://realm.io


 


ça m'a l'air sympa, et effectivement plus simple à  comprendre que CoreData.


Ils disent aussi que c'est bien plus rapide... (persistent store, NoSQL)


«1

Réponses

  • AliGatorAliGator Membre, Modérateur
    Je ne connaissais pas.

    Ca semble intéressant, faudrait tester.

    Après, comparé à  tous les avantages que propose CoreData + MR, je ne sais pas ce que ça vaut... (et je ne me fierai pas à  juste une citation (de BPXL) pour le comparer à  CoreData, surtout si on compare juste à  la complexité d'apprentissage mais sans prendre en compte MR) j'en reste sceptique, mais je suis preneur de retours d'expériences.
  • muqaddarmuqaddar Administrateur
    août 2014 modifié #3

    Le fait que ce ne soit pas basé sur SQLite peut être un argument vitesse en effet.


    Surtout avec les grosses bases.


     


    C'est incroyable le nombre de technos qui fleurissent ces dernières années (surtout les frameworks JS et BDD noSQL).


  • Effectivement, on a un certain retard par rapport aux fonctionnalités existant déjà  dans Core Data pour le moment, mais on travaille dur pour ajouter ce qui manque dans les semaines prochaines (comme l'attestent notre GitHub ou notre Mailing-List). Niveau complexité d'apprentissage, en pratique, nos premiers utilisateurs (experts Core Data pour la plupart) gagnent environ 1–2 mois de temps de travail sur un projet de 6 mois en utilisant Realm à  la place de Core Data. Les problèmes de Core Data (migrations, modèles objets, multi-threading, etc.) deviennent vites très très problématiques dans les applis complexes, et la plupart de nos utilisateurs sont très heureux du changement (si tant est que nous avons déjà  toutes les fonctionnalités nécessaires pour leur appli, bien entendu et on a encore pas mal de boulot devant nous de ce côté-là  !). 


    N'hésitez pas si vous avez des questions. Je bosse chez Realm (Dévelopeur / VP Produit, et français) et je reste à  l'écoute :)


  • muqaddarmuqaddar Administrateur
    août 2014 modifié #5


    Effectivement, on a un certain retard par rapport aux fonctionnalités existant déjà  dans Core Data pour le moment, mais on travaille dur pour ajouter ce qui manque dans les semaines prochaines (comme l'attestent notre GitHub ou notre Mailing-List). Niveau complexité d'apprentissage, en pratique, nos premiers utilisateurs (experts Core Data pour la plupart) gagnent environ 1–2 mois de temps de travail sur un projet de 6 mois en utilisant Realm à  la place de Core Data. Les problèmes de Core Data (migrations, modèles objets, multi-threading, etc.) deviennent vites très très problématiques dans les applis complexes, et la plupart de nos utilisateurs sont très heureux du changement (si tant est que nous avons déjà  toutes les fonctionnalités nécessaires pour leur appli, bien entendu et on a encore pas mal de boulot devant nous de ce côté-là  !). 


    N'hésitez pas si vous avez des questions. Je bosse chez Realm (Dévelopeur / VP Produit, et français) et je reste à  l'écoute :)




     


    Merci d'être venu nous rendre visite et nous donner un peu plus de détail.

  • En effet ca a l'air super intéressant. Faut que je teste ca :)


    Je suis preneur de retour si des gens ont testé aussi ( meme si on a un espion parmis nous xD )




  • Effectivement, on a un certain retard par rapport aux fonctionnalités existant déjà  dans Core Data pour le moment, mais on travaille dur pour ajouter ce qui manque dans les semaines prochaines (comme l'attestent notre GitHub ou notre Mailing-List). Niveau complexité d'apprentissage, en pratique, nos premiers utilisateurs (experts Core Data pour la plupart) gagnent environ 1–2 mois de temps de travail sur un projet de 6 mois en utilisant Realm à  la place de Core Data. Les problèmes de Core Data (migrations, modèles objets, multi-threading, etc.) deviennent vites très très problématiques dans les applis complexes, et la plupart de nos utilisateurs sont très heureux du changement (si tant est que nous avons déjà  toutes les fonctionnalités nécessaires pour leur appli, bien entendu et on a encore pas mal de boulot devant nous de ce côté-là  !). 


    N'hésitez pas si vous avez des questions. Je bosse chez Realm (Dévelopeur / VP Produit, et français) et je reste à  l'écoute :)




     


    Pourquoi tu ne viendrais pas faire une démo à  une cocoaHead près de chez toi ? :)

  • Avec grand plaisir! On a fait pas mal de démos aux US, en Espagne (et en Corée cette semaine) et je sais qu'il y a eu des démos spontanées de nos utilisateurs ailleurs en Europe aussi. Si quelqu'un connaà®t les organisateurs de CocoaHeads Paris/Lyon/etc. je serai en France en Décembre et ça me ferait très plaisir de venir faite une petite démo ! tim@realm.io


     


    Niveau utilisateurs on a toujours Zynga, mais aussi http://clothapp.com, http://breezeworks.com et environ 1000 autres applis déjà  sur l'App Store ou en passe d'y être. Quelques tweets:


     


    https://twitter.com/LusciousPear/status/514863473314906112


    https://twitter.com/Objective_Neo/status/513813006242041856


    https://twitter.com/timburks/status/513031939419156480


    https://twitter.com/Sebyddd/status/508180089247653888


  • Je remonte un peu ce post car je dois faire une application avec une base de données. Realm à  l'air sympathique. Je compte développer en swift et j'en profite pour vous demander un petit retour d'expérience sur realm.


     


    Merci


  • Je ne sais pas si leurs développeurs traà®nent dans le coin mais on a maintenant pas mal d'applis “made in France”, y compris Nice Weather 2 et Hook, mais ils sont peut-être joignables sur Twitter ?


     


    Tu peux aussi lire des entretiens avec nos utilisateurs sur le site. J'essaie de toujours leur demande ce qu'ils n'aiment pas dans Realm (histoire qu'on continue à  améliorer le produit), et on laisse tout dans l'article final quand on publie sur le site :)


     


    Je sais que c'est mieux de parler à  des utilisateurs, mais si tu as besoin de quoi que ce soit, n'hésite pas à  me contacter: tim@realm.io


  • Au moins le SAV est réactif 


     


    Mais effectivement peut-être que des retours d'expériences d'utilisateurs m'apporteraient des retours, disons, moins orientés  ::)  


  • revlamrevlam Membre
    avril 2015 modifié #12

    Salut,


     


    J'utilise actuellement Realm dans le développement d'une application, un jeu. C'est plus pour tester la techno qu'autre chose. Pour moi, dans la majorité des fonctions de CoreData, Realm le fait bien. Pour ceux qui connaissent j'ai un peu l'impression de comparer MySQL (CoreData/SQLite) à  du MongoDB.


     


    On a avec Realm une logique assez "SQL" qui permet finalement de faire des requètes vers la base de données avec cette logique SQL. Moi ça me plait bien ! Les fonctions permettant "d'écrire" les données sont faciles d'utilisations. Le fait de sauvegarder et récupérer une donnée sous la forme d'un objet me plait bien et rend facile l'utilisations des données issues de Realm.


     


    Cependant, Realm ne fait pas mieux que CoreData + SQLite. Il le fait différemment et vous l'avez compris plus facilement avec moins de lignes de codes. Je trouve le raisonnement plus "logique" avec cette approche très SQL ou plutôt devrais-je dire no-SQL ! Les plus avancés d'entre vous verrons rapidement qu'il manque des fonctions par rapport à  CoreData mais pour suivre le GitHub, le développement va vite !


     


    @iLandes : n'hésites pas si tu as des questions précises, là  j'ai fait une grosse généralité :)


  • Perso je compte faire une application avec une base de données embarquée avec deux ou trois tables et une vingtaine de champs en tout. Le tout ne devrait pas dépasser les 5000 enregistrements. La bdd ne comporte que des données simple : double, string, date, bool. Les requêtes de recherches sont simples ( "=", "compris entre") et l'utilisateur finale ne fera que de la consultation. Une autre appli non distribuée sera dédiée à  la création et maintenance de la base de données embarquées. La mise à  jour de la base de données se fera annuellement, certainement en même temps qu'une mise à  jour de l'application.


     


    Je cherche donc un système de bdd simple d'apprentissage pour faire des choses simples. C'est pourquoi je m'étais dirigé vers realm.io. J'avais aussi pensé à  une solution vu sur viméo dans une Cocoahead de Rennes si mes souvenirs sont bons. Mais c'était il y a pas mal de temps. Si d'autres ont une meilleure RAM que la mienne... Je ne me rappel plus mais c'était un truc qui simplifiait grandement core-data qui me semble disproportionné par rapport à  ce que je veux faire. C'est surtout le temps d'apprentissage qui me freine.


     


    En tout cas le support et la communauté qui peut aidé dans une technologie est un vrai plus.


  • AliGatorAliGator Membre, Modérateur
    Tu penses a ma présentation sur MagicalRecord, qui n'est pas un nouveau système de BDD comme Realm, mais un framework pour réduire par 15 le temps d'apprentissage de CoreData en simplifiant les APIs.
  • Seulement par 15 ? Comme c'est décevant !


  • AliGatorAliGator Membre, Modérateur

    Seulement par 15 ? Comme c'est décevant !

    Bah en fait ça dépend de ce que tu veux faire, ça réduit par un truc entre 7,12 et 17,42 mais j'ai voulu arrondir :D
  • Merci de donner les vrais chiffres et non des approximations. Il y a des 7 dedans. C'est cool les 7 !

  • AliGatorAliGator Membre, Modérateur
    F : Facteur de réduction du temps d'apprentissage pour utiliser CoreData = T(CD)/T(MR)
    T(CD) : Temps nécessaire à  l'apprentissage de CoreData, dépend de K, V, S
    T(MR) : Temps nécessaire à  l'apprentissage de MagicalRecord, dépend de K, V, S
    K : Complexité des opérations à  réaliser. Dépend de Cx, Nt, Nr, Nq. Formule différente pour CD et MR
    Cx : % d'utilisation de la notion de "contexte" dans l'application
    Nt : Nombre de tables du modèle de données
    Nr : Nombre de relations du modèle de données
    Nq : Nombre de requêtes simples (sans prédicat)
    Np : Nombre de requêtes avec prédicat
    Nx : ∑(Requête complexe mettant en scène plus d'une table * (nombre de tables dans la requête - 1))
    V : Vélocité d'apprentissage de la personne
    S : Niveau de connaissance déjà  existants de la personne sur les concepts de Bases de Données


    T = 0,42*K*(100-S)*V^2
    K(CD) = (5+3*Cx) * (0,8*Nt+1,8*Nr) * (9*Nq + 12*Nx)
    K(MR) = (1+1*Cx) * (0,4*Nt+0,6*Nr) * (4*Nq + 7*Nx)
    F = T(CD)/T(MR)


    Voilà  je te laisse faire le calcul, mais il faut savoir que c'est empirique :D
  • Joanna CarterJoanna Carter Membre, Modérateur
    Ouah ! J'ai mal au cerveau !
  • muqaddarmuqaddar Administrateur
    juin 2015 modifié #20


    Salut,


     


    J'utilise actuellement Realm dans le développement d'une application, un jeu. C'est plus pour tester la techno qu'autre chose. Pour moi, dans la majorité des fonctions de CoreData, Realm le fait bien. Pour ceux qui connaissent j'ai un peu l'impression de comparer MySQL (CoreData/SQLite) à  du MongoDB.


     


    On a avec Realm une logique assez "SQL" qui permet finalement de faire des requètes vers la base de données avec cette logique SQL. Moi ça me plait bien ! Les fonctions permettant "d'écrire" les données sont faciles d'utilisations. Le fait de sauvegarder et récupérer une donnée sous la forme d'un objet me plait bien et rend facile l'utilisations des données issues de Realm.


     


    Cependant, Realm ne fait pas mieux que CoreData + SQLite. Il le fait différemment et vous l'avez compris plus facilement avec moins de lignes de codes. Je trouve le raisonnement plus "logique" avec cette approche très SQL ou plutôt devrais-je dire no-SQL ! Les plus avancés d'entre vous verrons rapidement qu'il manque des fonctions par rapport à  CoreData mais pour suivre le GitHub, le développement va vite !


     


    @iLandes : n'hésites pas si tu as des questions précises, là  j'ai fait une grosse généralité :)




     


    Salut,


     


    Je compte m'y intéresser de près dans quelques semaines.


    Le site et la communauté ont l'air très actifs.


     


    Couplé à  Swift, je trouve les exemples élégants.


     


    Par contre, il y a peu de doc sur les relationships et peu d'exemples.


     


    Donc ma question est: est-ce que ça peut être efficace pour remplacer un modèle à  10 tables par exemple toutes avec des relations entre-elles, des jointures, etc ?


     


    Les requêtes font très "ActiveRecord", et ça, ça me plaà®t... même si c'est du NoSQL derrière.




  • T = 0,42*K*(100-S)*V^2




    Il est bizarre ce code. D'où sort ce nombre magique 42 ? Il ne semble relié à  rien, et pourtant ça ne marche pas sans lui ..

  • AliGatorAliGator Membre, Modérateur

    Il est bizarre ce code. D'où sort ce nombre magique 42 ? Il ne semble relié à  rien, et pourtant ça ne marche pas sans lui ..

    Je le sors du H2G2 évidemment, quelle question.
  • CéroceCéroce Membre, Modérateur
    De nouvelles annonces de la part de Realm:
    https://realm.io/news/introducing-realm-mobile-platform/

    Le mieux est de regarder la vidéo.
    (En outre, leur système de Base de données devient aussi Open-Source).
  • ça a l'air cool !

    T'as capté leur modèle de prix ?

  • T'as capté leur modèle de prix ?


    Ils vendent un support pour les moyennes et grosses société.
    Il ne semble pas y avoir de frais pour l'hébergement des données.
  • C'est une bonne nouvelle que la partie base de donnée soit devenue open-source.
    Avant, j'étais méfiant, il y avait un risque de rachat avec abandon du projet.
    Aujourd'hui ce risque se déplace sur la partie serveur.
  • muqaddarmuqaddar Administrateur


    Ils vendent un support pour les moyennes et grosses société.

    Il ne semble pas y avoir de frais pour l'hébergement des données.




     


    Intéressant qu'on puisse installer la partie serveur... sur son propre serveur.

  • Retour d'expérience sur quelques semaines et des petits projets pédagogiques pour mes étudiants : j'aime beaucoup la base de données avec realm, j'ai souvent utilisé SQLite et quelques fois core data et jamais je n'ai eu autant d'efficacité qu'avec realm.

    Il manque certaines choses comme les suppressions en cascade par exemple mais rien de rédhibitoire.


    Je pense que je vais tester le web service installé sur un serveur à  moi car la plateforme connectée à  l'air géniale.


    C'est vrai que le mode entreprise payant n'est pas très clairement définit par contre. En tous cas je n'arrive pas vraiment à  savoir si ce que ça apporte.
  • muqaddarmuqaddar Administrateur

    J'ai toujours été intéressé par Realm mais après discussion avec leur support, j'ai l'impression qu'en cas de structure complexe SQLite à  remplacer, c'est plus limité. Par exemple, j'ai des requêtes sur 15 tables avec des INNER JOIN ou LEFT JOIN en pagaille - et ça me paraà®t pas forcément adapté pour ce genre de cas.


  • Perso pour ma part, j'ai commencé à  regarder Realm mais j'ai l'impression que l'intégration avec macOS n'est pas très grande :


     


    - pas d'équivalent de la classe NSPersistentDocument


    - les bindings ne sont pas pris en charges, idem pour le NSArrayController


     


    Du coup, je me demande pour moi si ça vaut le coup...


  • CéroceCéroce Membre, Modérateur

    - pas d'équivalent de la classe NSPersistentDocument

    Pas une grande perte, et facile à  faire en se basant sur une sous-classe de NSDocument.

    - les bindings ne sont pas pris en charges, idem pour le NSArrayController

    Je ne vois pas le rapport. Tant que les objets sont basés sur NSObject (il me semble que c'est le cas avec Realm), on peut binder dessus et utiliser NSArrayController.
Connectez-vous ou Inscrivez-vous pour répondre.