Salut à tous,
Je suis Cirdo, un petit développeur (un peu débutant ) en Swift/Objective-c qui va tenté de passer le brevet
iClem est un petit logiciel Mac qui essaye d'utiliser l'api de Zeste de Savoir.
En savoir plus sur le projet
Quand l'api est sortie, je me suis dit que ça serait sympas si je faisais un petit logiciel. Et c'est comme ça que iClem est sortie.
Généralité et avancement
iClem utilise l'api membre de zeste de savoir. Pour l'instant, elle ne permet de juste modifier les paramètres son compte sans passer par l'interface Web. Mais au fur et à mesure, elle permettra de faire plein de chose comme l'envoi de MP ou le parcours de la galerie.
iClem gère la connexion automatique. Pour enregistrer ses paramètres il faut juste fermer la fenêtre.
Le projet et son originalité
La plus grosse partie à été faite en Swift, quelques bouts de code ont été fait en Objective-c. Le projet utilise les storyboards introduit avec Yosemite (c'est à dire, il y a pas longtemps)
Quelques images :
iClem utilise le frameworks Clem écrit en Objective-c. Celui-ci gère les requêtes à effectuer.
Quelques exemples d'utilisations (en objective-c) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | //Se connecter aux sites CConnectLogin *c = [[CConnectLogin alloc] initWithUsername:@"<Username>" password:@"<Password>" clientID:@"<Client Id>" clientScrete:@"<Client screte>"]; [c connectionZDSWithBloc:^(CToken *token, NSError *error) { CProfile *p = [CProfile profile]; [p checkParametreProfil:^(CMembre *membre, NSError *error) { NSLog(@"%@", membre); [p saveSign:@"UIKit, un nouveau frameworks d'apple" withPk:membre.pk bloc:^(BOOL success, NSError *error) { [p saveBiographie:@"C'est juste un bio, donc pas très important" withPk:membre.pk bloc:^(BOOL success, NSError *error) { }]; }]; }]; }]; |
La class CToken gère le Token renvoyé par l'api. La class CProfil est une class multi-fonctions.
La fonction checkParametreProfil:
renvoie le membre qui s'est connecter, en l'occurence un object CMembre.
Pour sauvegarder une signature, la biographie, etc, la fonction save<QuelqueChose>
prend en paramètre un NSString, le pk du membre, et un bloc. Le bloc indique s'il y a une erreur.
1 2 3 4 5 6 | CMembre *m = [CMembre membre]; [m setPk:1]; [m updateMembre:^(NSError *error) { NSLog(@"%@", m); //En l'occurence Clem }]; |
La class CMembre gère les membres, elle contient les informations sur le membres, c'est-à-dire le nom, la biographie… La fonction updateMembre:
met à jour les variables de l'object en question.
1 2 3 | [[CSearchMembre searchMembre] searchMembre:@"A" bloc:^(NSArray *membre, NSError *error) { }]; |
La class CSearcheMembre permet de chercher des membres, le paramètre du blocs membre
est un array qui contient des objects CMembres.
Attention, les objects qui pointent vers CMembre dans le array ne sont pas complet. Il faut les updater avec la fonction updateMembre:
.
Il est conseillé de se connecter
1 2 3 4 5 | [[CPRofileAll profileAll] getAllMembre:^(long progressMembreDownload, long totalMembre) { } sucess:^(NSArray *membre, NSError *e) { }]; |
La class CPRogileAll permet de récupérer tous les membres. La variable progressMembreDownload
est un int
, elle indique où en le téléchargement. Par exemple, si il y a 2000 membres et que le téléchargement de donné en n'est aux membre numéro 300, la valeur de cette variable sera de 300.
La variable membre
est un array qui contient des objects CMembre
Attention, les objects qui pointent vers CMembre dans le array ne sont pas complet. Il faut les updater avec la fonction updateMembre:
.
Il est conseillé de se connecter.
Remerciements
- Scott Raymond and Mattt Thompson pour la lib AFNetworking
- Sam Soffes pour la lib SSKeychain
- Et tous les membres qui ont participé à ce topique
Attention, iClem et Clem sont en bêta
Voici le lien de iClem : https://dl.dropboxusercontent.com/u/98367538/iClem.zip
Et le lien du frameworks : https://dl.dropboxusercontent.com/u/98367538/Clem.zip Merci de m'avoir lu
N'hésitez pas critiquer