Aller au contenu


Photo

Realm.io


  • Please log in to reply
40 réponses à ce sujet

#21 Draken

Draken

    Mouleur de chocolats

  • Artisan chocolatier
  • PipPipPipPipPipPipPipPip
  • 8 601 messages
  • LocationParis

Posté 30 juin 2015 - 10:09

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 ..


Garçon, servez-moi un Covfefe avec du lait de soja, sans OGM ..

Et faites régler la climatisation, il fait bien chaud, ici !

 

 

Éternel Novice !  :baby:

Tueur de poneys !  :(

 

Faire simple .. c'est compliqué !

Faire compliqué .. c'est simple !

 

Un MOOC (cours en ligne - dont je ne suis pas l'auteur) gratuit sur la programmation en Obj-C et en Swift 3, démarrant le 14 Mars 2017 :

https://www.edx.org/...onnex-progios1x

 

Des dizaines d'heures de tutoriels vidéo en français (je ne suis pas l'auteur) pour apprendre à développer en Obj-C et Swift : http://pagesperso-sy...don/5I452-2014/

 

 


#22 AliGator

AliGator

    Mouleur de chocolats

  • Contrôleur d'arômes
  • 13 621 messages
  • LocationRennes (France)

Posté 30 juin 2015 - 10:51

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.
La Doc, c'est moi — Devise Shadok : S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !
CocoaPods : Getting StartedLe Blog CocoaPodsCherchez des podsDocs de pods
Mon GitHub: OHHTTPStubs, SwiftGen…
Mon Blog: Crunchy Development

#23 Céroce

Céroce

    Mouleur de chocolats

  • Contrôleur d'arômes
  • 5 206 messages
  • LocationSaint-Leu-d'Esserent / France

Posté 27 septembre 2016 - 17:25

De nouvelles annonces de la part de Realm:
https://realm.io/new...obile-platform/

Le mieux est de regarder la vidéo.
(En outre, leur système de Base de données devient aussi Open-Source).
RenaudPradenc.com Je suis développeur iOS & Mac indépendant.

#24 colas_

colas_

    Broyeur de fèves

  • Membre
  • PipPipPipPipPipPip
  • 1 431 messages

Posté 27 septembre 2016 - 19:46

Ça a l'air cool !
T'as capté leur modèle de prix ?


small-logo.png

Mathématiques pour classes prépa et enseignement supérieur sur iPad et iPhone

www.improov.fr > < Improov sur facebook >


#25 FKDEV

FKDEV

    Broyeur de fèves

  • Artisan chocolatier
  • PipPipPipPipPipPip
  • 1 660 messages

Posté 27 septembre 2016 - 20:44

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.

#26 FKDEV

FKDEV

    Broyeur de fèves

  • Artisan chocolatier
  • PipPipPipPipPipPip
  • 1 660 messages

Posté 30 septembre 2016 - 11:33

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.
  • muqaddar aime ceci

#27 muqaddar

muqaddar

    Mouleur de chocolats

  • Maître Chocolatier
  • 10 888 messages

Posté 05 octobre 2016 - 20:40

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.


  • colas_ aime ceci
Mes applications iOS: VinoCell

#28 mbritto

mbritto

    Eleveur de cacaoyers

  • Membre
  • PipPip
  • 21 messages

Posté 24 novembre 2016 - 18:43

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.

Créateur et formateur à Purple Giraffe 

 

Blog de Purple Giraffe : http://www.purplegiraffe.fr/blog

 

Mes cours iOS 11 et Swift 4 en français :

 - Cours gratuit d'initiation à la programmation iOS en Swift : http://www.purplegiraffe.fr/p/ios-11-et-swift-4-decouverte

 - Cours complet avec coaching : http://www.purplegiraffe.fr/p/ios-11-et-swift-4-le-cours-complet


#29 muqaddar

muqaddar

    Mouleur de chocolats

  • Maître Chocolatier
  • 10 888 messages

Posté 28 novembre 2016 - 09:24

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.


Mes applications iOS: VinoCell

#30 colas_

colas_

    Broyeur de fèves

  • Membre
  • PipPipPipPipPipPip
  • 1 431 messages

Posté 28 novembre 2016 - 12:44

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...


small-logo.png

Mathématiques pour classes prépa et enseignement supérieur sur iPad et iPhone

www.improov.fr > < Improov sur facebook >


#31 Céroce

Céroce

    Mouleur de chocolats

  • Contrôleur d'arômes
  • 5 206 messages
  • LocationSaint-Leu-d'Esserent / France

Posté 28 novembre 2016 - 13:45

- 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.
RenaudPradenc.com Je suis développeur iOS & Mac indépendant.

#32 colas_

colas_

    Broyeur de fèves

  • Membre
  • PipPipPipPipPipPip
  • 1 431 messages

Posté 28 novembre 2016 - 14:15

Je n'ai peut-être pas été clair : je faisais de façon sous-entendue la comparaison CoreData/Realm.

 

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.

 

 

Je n'ai pas poussé le questionnement très loin mais j'ai eu l'impression que pour changer les valeurs d'une property d'un objet Realm il fallait "ouvrir un commit", changer la valeur, puis "fermer le commit". C'est ce qui me fait dire que ce n'est pas compatible avec les bindings.

 

Quant aux ArrayController, tu as la possibilité d'en avoir un qui te liste tous les instances d'une entité Core Data donnée.

 

Pour l'équivalent de NSPersistentDocument, si c'est si facile à faire, pourquoi ne livrent-ils pas une classe adéquate ?


small-logo.png

Mathématiques pour classes prépa et enseignement supérieur sur iPad et iPhone

www.improov.fr > < Improov sur facebook >


#33 FKDEV

FKDEV

    Broyeur de fèves

  • Artisan chocolatier
  • PipPipPipPipPipPip
  • 1 660 messages

Posté 28 novembre 2016 - 16:17

Je n'ai pas poussé le questionnement très loin mais j'ai eu l'impression que pour changer les valeurs d'une property d'un objet Realm il fallait "ouvrir un commit", changer la valeur, puis "fermer le commit". C'est ce qui me fait dire que ce n'est pas compatible avec les bindings.


Effectivement, mais sur un objet géré par Realm, tu peux avoir des propriétés qui seront stockées dans la base Realm et d'autres, non. Donc tu peux te faire des propriétés/accesseurs qui encapsulent le positionnement de la propriété stockée.

En revanche, d'après mon expérience cela peut-être problématique de faire beaucoup de petites transactions. Cela fait grossir la base plus vite et sur iOS (pas trop sûr avec macOS), il y a une taille maximum de la base de donnée qui assez basse (~200 Mo je crois) à cause d'une limite de la fonction système mmap.

Sur une app, je faisais un import de nombreux petits objets en tâche de fond GCD et en parallèle, je permettais à l'utilisateur de "sélectionner" ces objets. J'avais donc des transactions en multi-tâche.
Comme les transactions sont exclusives/bloquantes (il ne peut y en avoir qu'une seule à la fois), je ne pouvais pas faire une seule grosse transaction pour l'import et du coup, je faisais beaucoup de petites transactions pour ne pas bloquer l'UI et j'atteignais la limite de taille de la base assez vite.

#34 colas_

colas_

    Broyeur de fèves

  • Membre
  • PipPipPipPipPipPip
  • 1 431 messages

Posté 29 novembre 2016 - 01:31

@FKDEV

Intéressant... en as-tu parlé aux devs de Realm ?

Je compte stocker des Strings entrés via un NSTextField, je pensais sauver la base à chaque appel de textDidChange... mais ton retour me dissuade. Je crois que je vais rester sur CoreData...

small-logo.png

Mathématiques pour classes prépa et enseignement supérieur sur iPad et iPhone

www.improov.fr > < Improov sur facebook >


#35 FKDEV

FKDEV

    Broyeur de fèves

  • Artisan chocolatier
  • PipPipPipPipPipPip
  • 1 660 messages

Posté 29 novembre 2016 - 06:39

@FKDEV

Intéressant... en as-tu parlé aux devs de Realm ?


Non, car le problème est connu.
Par exemple:
https://github.com/r...coa/issues/4229
ou dans la doc:
https://realm.io/doc...ediate-versions

La solution pour l'instant c'est de faire un compactage de temps en temps (voir deuxième lien).
Tu peux faire ce que tu décris si à la fin de la saisie du formulaire, tu compactes la base.

Je ne suis pas certain d'avoir tout compris, mais je crois que le problème est lié à la combinaison de multiples transactions et de parallélisme. Donc si tu travailles uniquement dans le thread principal, tu n'auras sans doute pas le problème.

#36 colas_

colas_

    Broyeur de fèves

  • Membre
  • PipPipPipPipPipPip
  • 1 431 messages

Posté 29 novembre 2016 - 10:22

Effectivement, mais sur un objet géré par Realm, tu peux avoir des propriétés qui seront stockées dans la base Realm et d'autres, non. Donc tu peux te faire des propriétés/accesseurs qui encapsulent le positionnement de la propriété stockée.
 

 

 

Juste pour être sûr, ton idée c'est d'overrider les setter des propriétés persistantes pour les encadrer par des beginCommit et endCommit ?


small-logo.png

Mathématiques pour classes prépa et enseignement supérieur sur iPad et iPhone

www.improov.fr > < Improov sur facebook >


#37 FKDEV

FKDEV

    Broyeur de fèves

  • Artisan chocolatier
  • PipPipPipPipPipPip
  • 1 660 messages

Posté 29 novembre 2016 - 10:49

Juste pour être sûr, ton idée c'est d'overrider les setter des propriétés persistantes pour les encadrer par des beginCommit et endCommit ?

 

Non en fait, tu déclares des propriétés non persistantes qui serviront à encapsuler les propriétés persistantes (qu'il ne faudra pas utiliser directement bien-sûr).

@interface Person : RLMObject
@property NSString *persistentValue
@property NSString *publicValue;
@end

@implementation Person
+ (NSArray *)ignoredProperties {
    return @[@"publicValue"];
}
- (void)setPublicValue:(NSString*)value {
    theRealmForBinding.Write({
      this.persistentValue = value;
    });
}
@end

Bon, le problème de cette méthode c'est d'avoir un pointeur vers l'objet Realm.

D'autant qu'un objet Realm ne peut pas être utilisé d'un thread à l'autre.



#38 colas_

colas_

    Broyeur de fèves

  • Membre
  • PipPipPipPipPipPip
  • 1 431 messages

Posté 29 novembre 2016 - 12:17

Quel est l'avantage par rapport à 

@interface Person : RLMObject
@property NSString *persistentValue
@end

@implementation Person
- (void)setPersistentValue:(NSString*)value {
    theRealmForBinding.Write({
      _persistentValue = value;
    });
}
@end

?

 

 

PS : tu fais du Java en ce moment ou du Javascript :P ?


small-logo.png

Mathématiques pour classes prépa et enseignement supérieur sur iPad et iPhone

www.improov.fr > < Improov sur facebook >


#39 FKDEV

FKDEV

    Broyeur de fèves

  • Artisan chocolatier
  • PipPipPipPipPipPip
  • 1 660 messages

Posté 29 novembre 2016 - 12:47

Je ne sais pas si ton code fonctionne avec les RLMObject car j'ignore par quel moyen Realm s'interface avec les propriétés des objets.

 

Le truc c'est que je n'ai travaillé qu'en Swift avec Realm et donc je n'avais pas d'ivar.

J'ai dû créé une variable pour la persistence et une property pour l'accès.

J'aurais dû faire un exemple en swift... :)

 

Ce que je voulais montrer, c'est surtout l'existence des "ignoredProperties" qui permettent d'avoir des propriétés qui ne sont pas persistentes pour encapsuler des traitements sur les données persistentes.

 

PS:

Je ne fais pas de java, ni de javascript (dieu merci) mais du C#, Objective-C et Swift et je confond tous les langages sans arrêt. Je laisse l'éditeur et le compilateur me corriger.



#40 colas_

colas_

    Broyeur de fèves

  • Membre
  • PipPipPipPipPipPip
  • 1 431 messages

Posté 29 novembre 2016 - 13:15

OK.

 

Je connais mal Swift, mais j'aurai été tenté (sans iVar) d'ouvrir le commit dans willSet et de le fermer dans didSet. De mémoire je crois qu'il y a des méthodes dans Realm pour juste ouvrir le commit et juste le fermer.

 

Ton approche avec les propriétés ignorées serait utile (j'imagine) si l'on ne commit qu'à certains moments (avant un save, lorsqu'on le change de VC, etc.) et non pas lors de chaque - textDidChange

 

Pour le langage, je faisais référence à this au lieu de self ;-)

 

En tous cas merci pour ton retour !


small-logo.png

Mathématiques pour classes prépa et enseignement supérieur sur iPad et iPhone

www.improov.fr > < Improov sur facebook >





0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)