[Framework] Signets (WIP)
Bonjour à tous,
Je travail actuellement sur un petit framework qui permettrait de reproduire facilement la barre de signets de Safari.
Je lui ai donné un nom français parce que c'est tout mignon ;D
Je viens à peine de commencer le framework, et j'aimerai :
- Des avis sur l'implémentation : quel serait, pour vous, le meilleur moyen de d'implémenter ce framework dans vos projets (si un jour vous en auriez besoin)
- Des conseils sur la structure du framework
Pour l'instant je pars dans l'idée d'un controller (PASignetsBarController), une classe model (PASignetsBarItem), et une vue (PASignetBarView).
Je commence donc par le controller, et déjà je me pose 2-3 questions sur l'implémentation.
J'ai ajouté des méthodes très proches de la gestion d'une NSMutableArray
Comme au final le controller se basera sur une NSMutableArray, chacune de ces méthodes appellera l'équivalent pour une NSMutableArray (exemple : addObject:aSignet).
À chaque fois qu'il y a modification (ajout, supression...), j'appelle ma méthode "synchronize" qui se charge de "convertir" les PASignetsBarItem de ma array sous une la norme .plist.. en gros, chaque PASignetsBarItem aura son équivalent sous forme de NSDictionary qui contiendra toute forme d'informations (nom, image, sous-menus, etc..). Mais il n'en reste pas moins que pendant le fonctionnement du framework, la array contient des PASignetsBarItem, et non leur représentation.
Ma grande première question est donc : ça vous paraà®t bien comme méthode? ;D
Et là j'en viens à une question qui concerne l'implémentation du framework dans un projet.
Il vous suffirez donc d'ajouter dans votre .xib une PASignetsBarView, et dans votre appController (ou autre), il vous suffirez d'envoyer l'outlet de la barView, votre classe qui recevra les méthodes delegate, ainsi que l'identifier de votre application (pour la sauvegarde dans vos preferences).
Vous pensez que ça reste assez simple? Ou il y aurait encore mieux?
Merci d'avance pour tous ceux qui me conseilleront durant le développement du framework.
Je travail actuellement sur un petit framework qui permettrait de reproduire facilement la barre de signets de Safari.
Je lui ai donné un nom français parce que c'est tout mignon ;D
Je viens à peine de commencer le framework, et j'aimerai :
- Des avis sur l'implémentation : quel serait, pour vous, le meilleur moyen de d'implémenter ce framework dans vos projets (si un jour vous en auriez besoin)
- Des conseils sur la structure du framework
Pour l'instant je pars dans l'idée d'un controller (PASignetsBarController), une classe model (PASignetsBarItem), et une vue (PASignetBarView).
Je commence donc par le controller, et déjà je me pose 2-3 questions sur l'implémentation.
J'ai ajouté des méthodes très proches de la gestion d'une NSMutableArray
<br />- (void)addSignet:(PASignetsBarItem*)aSignet;<br />- (void)insertSignet:(PASignetsBarItem*)aSignet atIndex:(NSInteger)anIndex;<br />- (void)removeSignet:(PASignetsBarItem*)aSignet;<br />- (void)removeSignetAtIndex:(NSInteger)anIndex;<br />- (void)replaceSignetAtIndex:(NSInteger)anIndex withSignet:(PASignetsBarItem*)aSignet;<br />- (void)replaceSignetAtIndex:(NSInteger)oldIndex withSignetAtIndex:(NSInteger)newIndex;<br />
Comme au final le controller se basera sur une NSMutableArray, chacune de ces méthodes appellera l'équivalent pour une NSMutableArray (exemple : addObject:aSignet).
À chaque fois qu'il y a modification (ajout, supression...), j'appelle ma méthode "synchronize" qui se charge de "convertir" les PASignetsBarItem de ma array sous une la norme .plist.. en gros, chaque PASignetsBarItem aura son équivalent sous forme de NSDictionary qui contiendra toute forme d'informations (nom, image, sous-menus, etc..). Mais il n'en reste pas moins que pendant le fonctionnement du framework, la array contient des PASignetsBarItem, et non leur représentation.
Ma grande première question est donc : ça vous paraà®t bien comme méthode? ;D
Et là j'en viens à une question qui concerne l'implémentation du framework dans un projet.
<br />/*<br /> @param aBar : The PASignetsBarView outlet from your app.<br /> @param aDelegate : A delegate object that will receive some delegate methods <br /> @param aBundleIdentifier : Your bundle identifier (eg : com.MyCompany.MyApp)<br /> <br /> @Discussion<br /> Delegate : The delegate object doesn't need to implement the PASignetsBarController delegate methods.<br /> But it could be useful if you want to know when an PASignetsBarItem has been added, removed, moved.<br />*/<br />- (PASignetsBarController*)initWithBar:(PASignetsBarView*)aBar delegate:(id)aDelegate bundleIdentifier:(NSString*)aBundleIdentifier;<br />
Il vous suffirez donc d'ajouter dans votre .xib une PASignetsBarView, et dans votre appController (ou autre), il vous suffirez d'envoyer l'outlet de la barView, votre classe qui recevra les méthodes delegate, ainsi que l'identifier de votre application (pour la sauvegarde dans vos preferences).
Vous pensez que ça reste assez simple? Ou il y aurait encore mieux?
Merci d'avance pour tous ceux qui me conseilleront durant le développement du framework.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Donc vraiment similaire à NSMutableArray.. mais d'un côté je pense que ça simplifie les choses pour le développeur qui veut implémenter le framework.. plutôt que de lui retourner la Array maà®tresse et le laisser manipuler comme un grand.
Sinon, pour te donner d'autres points de vue, pour faire la barre d'outil de DrawBerry (celle qui bouge de bas en haut, en haut des fenêtres de document) j'ai plutot utilisé un système de datasource comme pour les tableview. Mais il faut bien dire que cet aspect n'est pas du tout adapté à ce que tu veux faire (pas de rechargements réguliers, ...).
Yep c'est déjà prévu, mais je pensais le faire sur PASignetsBarView pour le nom de la barre utilisée à la sauvegarde. Mais finalement non
Je crois que j'ai même supprimé
Et ça servirai à quoi?
À reproduire la barre de signets de Safari tout simplement. Sans pour autant limiter les items à de simple "link to URL". ça pourrait servir à différentes applications qui permettent l'ajout de favoris dans une petite barre facilement accessible, du genre un logiciel de FTP.
Enfin bref comme je le disais, il n'y a pas vraiment d'utilité, mais quand ça peut en avoir une, ça servira beaucoup je pense !