Programmation Swift : le mot-clé guard

GuardOrIf

Je ne sais pas pour vous, mais il m’a fallu un moment pour comprendre à quel moment il était préférable d’utiliser le mot clé « guard » à la place du couple « if / else » en programmation Swift.

En fait, c’est comme tout, lorsque l’on à compris… c’est hyper simple ! Mais avant 😦

Donc, la différence entre « if » et « guard » est un peu subtile, mais la voici : « guard » doit être utilisé lorsque une donnée doit être présente pour la bonne exécution de la fonction.

Bon, dit comme cela, c’est encore un peu flou, alors voici un petit exemple :

guard.png

Ici, il est nécessaire que les champs « name », « address » et « phone » soient remplis pour pouvoir exécuter la fonction « sendToServer ». Sinon, on affiche un message et on sort de la fonction (return). On aurait bien sûr pu faire la même chose avec des « if/else », mais avouez que cela aurait certainement eu un impact négatif sur la taille et la lisibilité du code !

En fait, on s’aperçoit vite qu’une grande partie des « if / else » peuvent êtres avantageusement remplacés par des « guard » ! Cela nécessite un peu d’entrainement au début (il faut réfléchir « à l’envers »), mais cela améliore nettement la lisibilité du code !

Donc, maintenant, plus de prétexte pour planter (dans vos codes…) des forêts d’Ifs !

 

 

Alamofire POST Tutoriel

Voici la suite de mon précédent tutoriel concernant Alamofire. Cette fois, on attaque la partie « POST ».

Pour cet exemple, j’ai créé une petite application de to-do, dont le source est sur FramaGit : https://framagit.org/VinceBar/MyToDoList

Autant il est relativement simple de trouver des API’s gratuites pour faire du GET, autant trouver des API’s ouvertes pour du POST est compliqué. D’ailleurs, si vous avez des infos là dessus, n’hésitez pas à me les mettre en commentaire ! J’ai cependant trouvé ce site : https://jsonplaceholder.typicode.com/ , avec plus d’infos ici : https://github.com/typicode/jsonplaceholder

Il en découle ceci : les ressources ne sont pas réellement mises à jour sur le serveur, mais celui-ci « fait comme si ». L’application d’exemple n’est donc pas pleinement fonctionnelle (vous ne pourrez pas réellement ajouter ou effacer de to-do), mais le serveur simulera l’action. Tout l’intérêt de l’application se trouve dans les méthodes utilisées pour gérer les différentes actions d’Alamofire.

Allez, entrons dans le vif du sujet !

Lire la suite

A propos de… moi !

IMG_5270Carre

Vincent Barousse, développeur d’applications Apple iOS / swift (entre autres…)

J’aime les ordinateurs sous toutes leurs formes, j’aime le code et j’aime la nouveauté. Cette passion m’a poussé à m’orienter du développement web et de la maintenance informatique au développement iOS et watchOS en 2015.

Je mets maintenant mon expertise dans ce domaine au service de mes clients.

Cette page est là pour résumer mes différentes réalisations.

Lire la suite

Mise à jour de l’application « Mes animaux et moi »

Screenshot6FRiphoneX

Grosse mise à jour de l’application mobile « Mes animaux et moi  » cette semaine !

Vous y trouverez maintenant un écran de synthèse, récapitulant les dernières interventions (vaccinations, traitements, soins…).

De plus, tous les événements sont maintenant classés par date d’ajout.

A découvrir ici ou sur l’App Store !

download_on_the_app_store_badge_us-uk_135x40

Mémo : utilisation de NSLocalizedString en Swift

Cet article n’est pas un tutoriel en temps que tel, mais plutôt un mémo sur l’utilisation de fichiers « string » pour gérer les traductions dans une application iOS.

Pour cet exemple, nous allons créer une application très simple : 1 vue, 1 champ de texte : voir les captures d’écran ci dessus.

Le champ texte sera localisé, c’est à dire qu’il sera automatiquement traduit en fonction de la langue du device.

Donc, pour réaliser ce « miracle », il faut commencer par créer un fichier « Localizable.strings » (cliquez sur les images pour agrandir) :

On crée donc simplement un nouveau fichier de type « Strings File ».

On rajoute les langues désirées dans les paramètres de l’appli :

AddLocalization

Et on ajoute également les langues pour le fichier Localizable.strings :

AddLocalization2

2 fichiers sont alors créés : Localizable.strings(French) et Localizable.strings(English).

Ces fichiers contiendront les traductions sous forme de « Clé » = « Valeur ».

Voici donc le contenu des fichiers English et French (cliquez pour agrandir) :

Enfin, pour utiliser nos traductions, il suffit de les appeler sous la forme NSLocalizedString(key : «  », comment : «  ») ex :

let myString = NSLocalizedString(key : « Hello », comment : «  »)

Appliqué à notre view controller, cela donne :

carbon(4)

Tout simplement…

Maintenant, plus de prétexte pour ne pas gérer correctement ses traductions !

Des commentaires, des questions ? Commentez !