L'application Reiki Energy est sortie en version 4…

Il s’agit surtout d’une mise à jour technique, mais elle apporte quand même son lot d’amélioration :

  • Une meilleure compatibilité avec iOS 13 et IPadOS 13
  • Une meilleure gestion du mode sombre
  • La durée totale d’une séance complète est maintenant affichée au démarrage du soin
  • Quelques bugs (dont un dans la gestion des préférences) ont été corrigés 🙂

D’un point de vue technique, cette version intégralement en Swift 5 et contient (enfin..) des tests unitaires et des tests d’interfaces. Cela me permettra d’envisager plus sereinement les évolutions !

Comme d’habitude, l’application est téléchargeable ici :

Et je suis à votre disposition pour toute suggestion / commentaire ici : https://vincent-barousse.blog/contact/

Développement Swift / iOS : Améliorer la qualité de son code grâce à SwiftLint

La qualité du code est actuellement LE sujet dans le monde du dev (et avec raison !). Si vous êtes développeur.se pro et passionné.e, vous n’êtes sans doute pas passé à coté !

Donc, si le TDD est votre religion, que vos tests unitaires sont nickels et couvrent 100% du code, qu’Xcode ne retourne plus un seul warning, et que Sonarqube est devenu votre meilleur ami… Et bien vous pouvez encore vous améliorer, grâce à SwiftLint !

Si Sonarqube fera l’objet d’un autre article de blog, je vais aujourd’hui vous parler de SwiftLint.

SwiftLint, c’est un outil créée et maintenu par Realm pour améliorer le respect des conventions d’écritures en Swift, disponible ici : https://github.com/realm/SwiftLint

Comme souvent, il y a plusieurs manières de l’intégrer dans un projet, personnellement, j’aime bien Cocoapods !

Comme code d’exemple, je vais reprendre la démo « InfoKayak », mise à jour pour Swift 5.

Sans SwiftLint, Xcode 11.3 ne trouve rien à redire au code (pas de warning, pas d’erreur) :

Editez maintenant le fichier Podfile en y ajoutant la ligne :  » pod ‘SwiftLint’  » :

Mettez à jour et installer les pods, puis rouvrez le projet avec Xcode. Pour le moment, il n’y a pas de changements 🙂

En fait, pour activer SwiftLint, il faut un petit script. Dans les « Build Phases » du projet, cliquez sur le « + » , ajoutez une « New run script phase », et mettez-y ce script :

On Build et Oh ! 286 warnings et 22 erreurs 😦 WTF ?

Allez, avant de faire un burn out, une bonne nouvelle, SwiftLint est capable de corriger automatiquement une grosse partie de ces problèmes 🙂 .

Pour cela, depuis un terminal, mettez vous dans le dossier de votre projet, et exécutez la commande « ./Pods/SwiftLint/swiftlint autocorrect« .

Ensuite, effacez le dossier de build d’Xcode, et au besoin, relancez l’IDE. Normalement, la situation devrait s’être grandement améliorée : il n’y a plus que 2 erreurs et 5 warnings à corriger manuellement, chose que je fais immédiatement… 😉

Dans certaines situations, on ne peux pas corriger (cas de librairie externes lesquelles nous n’avons pas la main…), il est donc possible de paramétrer SwiftLint plus finement.

Pour tout ce qui est règles globales, il faut créer un fichier .swiftlint à la racine de votre projet. Par exemple, le mien contient ceci :

Lorsqu’il s’agit d’un besoin temporaire, on peut désactiver une règle directement dans le code avec l’instruction // swiftlint:disable <rule> . La liste des règles se trouve ici : https://realm.github.io/SwiftLint/rule-directory.html

Voilà, j’espère que cette petite introduction vous aura donné envie de vous mettre à Swiftlint et à vous mettre à la qualité ! En tous cas moi, je suis accro !

Tutoriel 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 !

Une application mobile dédiée à la pratique du canoë, du kayak…

PhotoKayakChuteEau.png

Allez, cette fois, c’est parti pour le développement d’une nouvelle application mobile iOS. Je n’ai pas encore le nom définitif, et je ne peux pas encore trop en dire…

Sachez juste qu’elle est dédiée aux pratiquants de sports nautiques en rivière tels que le kayak, le canoë, le rafting, standle padle… et qu’elle sera compatible Apple Watch.

Au programme, WatchKit, MapsKit, CoreData, gps sur iPhone et Apple Watch 3, Alamofire, API REST…

Un peu de travail en perspective…

Allez, pour vous faire saliver, l’écran principal :

kayak - iphone

Je mettrai la suite au fur et à mesure de l’avancée !

A propos de… moi !

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

Développeur Swift en perpétuelle recherche de nouveaux challenges pour utiliser ses compétences en développement d’applications mobiles iPhone, iPad, Apple Watch !

Développeur d’applications mobiles spécialisé en Swift sur iOS (IPhone, iPad, AppleWatch), j’assiste mes client.es dans leur projet de développement d’applications natives en les guidant de la conception à la publication sur les stores d’applications.

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

Vous pouvez aussi me retrouver sur Linkedin, Tumblr ou Twitter !

Développement d’applications iOS

Voir ici : https://vincent-barousse.blog/category/applis-mobile/

Et ici : Behance

Création de site Internet

2018 : Création du site web de l’entreprise de nettoyage Carré Net, basé sur le CMS Joomla.

2015 : Création du site web de l’entreprise de couverture Alain Chevalier, basé sur le CMS Joomla.

2014 : Création du blog « Pour quelques lignes de plus« , basé sur le CMS WordPress.

2013 : création du site « BarousseWebCreation« , basé sur le CMS Joomla.

Autres

Depuis 2011 : Indépendant en services informatiques et Internet

Réparation, maintenance, installation et formation à domicile pour les particuliers et PME/TPE sur Mazières de Touraine et sa région. Environ 500 clients à ce jour. https://www.baroussewebcreation.fr/

Depuis 2014 : Blogueur

Créateur et rédacteur du blog « Pour quelques lignes de plus« , dédié principalement à la programmation informatique

De Septembre 2014 à juin 2016 : Animateur Rythmes Scolaires

Animation de jeux à caractère éducatif pour des enfants de 6 à 10 ans dans le cadre des « TAPS ». Le but était de sensibiliser les enfants à la programmation d’un ordinateur (Scratch, Lightbot…) et à l’usage d’Internet : https://vincentbarousse.wordpress.com/category/le-coin-des-kids/

2015 : Créateur de l’Atelier de la Création Numérique

Atelier créé avec le soutien de la mairie de Mazières de Touraine afin d’apprendre le code aux enfants de 6 à 10 ans accompagnés de leurs parents : https://vincentbarousse.wordpress.com/2015/04/02/latelier-de-la-creation-numerique-a-mazieres-de-touraine/#more-121

Rien à voir

Passionné (malade ???) de vieux Land Rover, j’aime la photographie, j’adore l’archéologie industrielle, je fais du modélisme naval et je pratique le VTT, la spéléologie, la natation et le kayak. A oui, je suis aussi amoureux de la Loire (le fleuve) 😉

Voilà, vous savez (presque…) tout de moi !

Mise à jour de l’application mobile « 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