Plein de questions !

vincepoencetvincepoencet Membre
septembre 2009 modifié dans API AppKit #1
Bonjour tout le monde !

Je suis passé récemment sur mac, et étant développeur .net je m'intéresse de près à  cocoa d'un point de vue personnel.
J'ai lu le bouquin d'Hillegass, et suivi pas mal de tutos de ce site, mais je suis encore loin d'être au point ^^.

En fait j'aimerais faire une appli de gestion, mais avant de me lancer j'ai fait quelques recherches infructueuses sur quelques points importants...

1/ d'abord je me suis intéressé à  la création de reports, sans trouver d'api du genre de cristalReport, en existe t'il, ou sinon quelle est la meilleure solution ?

2/ pour la gestion des données, j'ai testé coreData qui est très pratique, sauf que je comptais faire du multi-utilisateur sur de grosses bases le tout en client serveur, sqlite est donc exclu, d'autant que j'ai regulierement certaines tables avec plus de 100 000 enregistrements à  termes, je voudrais donc ne pas forcement tout charger d'un coup.
Je pensait m'orienter vers du postGre ou du mysql, tout dépend des api dispo pour cocoa, de la facilité d'intégration, et aussi des outils de management dispo de ces BDD.
Existe t'il une "référence" dans le domaine en cocoa/mac ?

3/ toujours dans la gestion de donnée, comment gérer l'etat d'un objet (insert, update, delete) ?
J'ai vu que cocoa avait de bonnes capacités d'introspection, je pensait faire une classe mère etant capable de lister les accesseurs des classes filles et de les observers, pour mettre un flag "modified" à  jour, est-ce possible ?
Je voulais aussi voir si il etait possible d'utiliser les models de coredata simplement pour ça, mais en gerant tout l'aspect load/save à  la main, je ne sait pas si c'est possible.
Sinon quelle solution utilisez vous dans ce cas ?

4/ un peu plus secondaire, mais important tout de même : la création de graphiques (pie, chart, etc...)
Existe t'il une API, vu la puissance de quartz, il y a moyen de faire quelque chose de bien à  ce niveau la, mais j'aimerais autant pas avoir à  le faire moi ;)

Voila, merci d'avance, et félicitation pour ce site toujours très interessant à  lire !

Réponses

  • AliGatorAliGator Membre, Modérateur
    septembre 2009 modifié #2
    Hello et bienvenue sur pommedev !

    Je n'ai pas bcp de réponses concernant la gestion de données dans une base multiutilisateur et client/serveur (moi n'ai utilisé sur iPhone que SQLite), bien qu'il me semble avoir vu trainer des classes wrapper pour utiliser PostgreSQL (recherche "PostgreSQL" ou simplement "SQL" sur le forum peut-être ?)

    Pour l'état d'un objet, je ne sais pas si c'est le plus adapté pour ton cas mais je pense que le mécanisme de KVO peut t'intéresser. Il s'agit, en gros, d'envoyer une notification à  chaque fois que la valeur d'un objet change, et donc d'être informé quand l'état d'un de tes objets a changé (pour positionner un flag "modified" par exemple, ou pour le commiter dans ta base directement, quoiqu'il faut dans ce cas peut-être mieux grouper les divers changements dans une transaction pour éviter trop de requêtes unitaires)
    C'est ici pour le Programming Guide qui va t'expliquer ce concept et comment Apple implémente le design pattern dans ses classes Cocoa

    Sinon pour la création de graphique, de même je n'ai pas eu l'occasion de créer des graphes de données, mais j'ai vu passer des posts sur le framework CorePlot ou du genre sur ce forum. Recherche "plot" sur les forums pour avoir plus d'infos. Après je sais pas, il y a peut-être d'autres frameworks qui existent pour ça aussi, à  voir.


    Voilà  mes pistes pour l'instant  ;)

    PS : Si ça te dis, n'hésite pas à  te présenter dans le Salon "Présentation des Membres"... et à  payer ta tournée virtuelle :p (si tu veux te faire bien voir :) ;D)
  • RocouRocou Membre
    septembre 2009 modifié #3
    Bienvenue!

    Pour ma part, j'utilise PostgreSQL avec le Framework  (PGSQLKit) de Andy Satori (http://www.postgresqlformac.com/data_access.html).
    Je suis extrêmement satisfait de PostgreSQL. Performant et très très fiable.
    J'y suis venu car les outils de gestion utilisés par mon entreprise utilisait déjà  PostgreSQL (http://www.cogilog.com/).

    On peut également facilement accéder aux bases pgsql en C avec les libraries standards que l'on trouve sur http://www.postgresql.org/. Je les ai utilisées avant de me mettre à  Objective-c/Cocoa.
  • tabliertablier Membre
    22:03 modifié #4
    @Rocou
    Merci pour le lien sur Cogilog. Je ne connaissais pas! Ce n'est pas du tout mon domaine, mais trois étudiants de mon entourage sont en école de commerce et regrettent qu'il n'y ai pas de logiciel Mac pour le commerce! Je vais leur signaler ce lien.
  • CéroceCéroce Membre, Modérateur
    22:03 modifié #5
    dans 1253099749:

    Merci pour le lien sur Cogilog.

    Ouh là ! C'est fou ce que leur logo ressemble à  celui de la Cogirep.
  • vincepoencetvincepoencet Membre
    22:03 modifié #6
    Merci pour vos réponses, c'est du rapide !

    Au sujet du KVO, je connaissait et je me doutait qu'il y avait quelque chose à  faire ^^
    Pour ceux que ça intéresse, voila ce que j'ai trouvé et qui marche :

    dans la classe mère :
    -(id)init<br />{<br />	unsigned int outCount;<br />	objc_property_t *properties = class_copyPropertyList([self class], &amp;outCount);<br />	for(int i = 0; i &lt; outCount; i++) {<br />		objc_property_t property = properties[i];<br />		const char *propName = property_getName(property);<br />		if(propName) {<br />			[self addObserver:self <br />				&nbsp;  forKeyPath:[NSString stringWithCString:propName] <br />					&nbsp; options:NSKeyValueObservingOptionNew <br />					&nbsp; context:NULL];<br />		}<br />	}<br />	free(properties);<br />	<br />	return self;<br />}<br /><br />-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context<br />{<br />	if (![keyPath isEqualToString:@&quot;modified&quot;]) {<br />		self.modified = YES;<br />	}<br />}
    


    Et c'est tout, le flag modified sera mis à  jour automatiquement dans les classes filles.
  • RocouRocou Membre
    septembre 2009 modifié #7
    dans 1253099749:

    @Rocou
    Merci pour le lien sur Cogilog. Je ne connaissais pas! Ce n'est pas du tout mon domaine, mais trois étudiants de mon entourage sont en école de commerce et regrettent qu'il n'y ai pas de logiciel Mac pour le commerce! Je vais leur signaler ce lien.

    De rien. Des logiciels de gestion, il y en a des tas sur Mac, voici un site qui les recense et les teste: http://www.macgestion.com/
  • vincepoencetvincepoencet Membre
    22:03 modifié #8
    J'avait vu ce site, mais la plupart on l'air de vieux coucous ou d'adaptation windows.

    J'aime bien http://checkoutapp.com/quicktours
    C'est simple mais je le trouve bien dans l'esprit mac, joli et graphique.

    Vu que je developpe surtout pour apprendre cocoa, c'est le genre de truc dont j'aimerai m'approcher.
  • RocouRocou Membre
    22:03 modifié #9
    dans 1253123592:

    J'avait vu ce site, mais la plupart on l'air de vieux coucous ou d'adaptation windows.

    :) Il y a pas mal de truc programmé en RealBasic: moche et pas mac pour deux sous mais il y a également quelques perles. Cogilog en fait partie mais comme toujours, pour toucher le maximum de gens, il faut supporter trois ou quatre versions d'OSX donc exit les dernières technologies.
    dans 1253123592:

    J'aime bien http://checkoutapp.com/quicktours
    C'est simple mais je le trouve bien dans l'esprit mac, joli et graphique.

    Pas mal du tout en effet. Dommage qu'aucune video ne fonctionne  :)
Connectez-vous ou Inscrivez-vous pour répondre.