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 !

Nouvelle mise à jour de l'application mobile Kayak Tracker !

Toujours ravie de satisfaire les demandes des utilisateurs.rices, j’ai rajouté quelques fonctions dans l’application Kayak Tracker.

Vous pouvez maintenant exporter vos tracks soit d’application à application (via un email), soit dans Google Earth !

Voici la vidéo explicative :

Parmi les autres nouveautés / améliorations, il y a également de nouveaux fonds de carte (vue satellite, vue mixte) et une amélioration des traductions !

Comme d’habitude, l’application est à télécharger sur l’app store :

Et bonnes balades !

Reason et la gestion des risques

Je m’intéresse un peu à l’aéronautique, et surtout à sa partie technique/maintenance. Or, en surfant sur un de mes forums favoris : crash-aerien.aero, j’ai entendu parler des plaques de Reason. Quel est le rapport avec la choucroute me direz-vous ? Et bien c’est simple, je pense que ce concept est non seulement applicable à l’informatique, mais aussi dans la vie de tous les jours, et que nous pouvons en faire un formidable outil de lutte contre la procrastination !

James Reason est un psychologue expert en facteurs humains. Membre des plus respectées instances du Royaume Uni, il est connu, entre autres, pour ses travaux sur la réduction des risques en milieu hospitalier. Il est aussi le père d’un modèle étiologique d’accidents connu sous le nom de SCM : Swiss Cheese Model. C’est de ce modèle et de son application à l’informatique et à la vie en générale dont je vais traiter 🙂 .

Lire la suite

Une application mobile Android / iOS en 1 journée ?

Application mobile Siberian

Depuis quelques années, on voit apparaitre sur le web des générateurs d’applications mobiles. La promesse est la même que pour les cms et les générateurs de sites web : pouvoir bénéficier d’un travail professionnel sans aligner une seule ligne de code…

Et comme pour les cms et autre générateurs de sites web, la réalité est quelque peu nuancée…

Suite à la demande d’un client, je me suis re-penchée sur SiberianCMS, que j’avais déjà testé il y a quelques années sans être convaincue plus que ça.

Le mois de juillet et ses chaleurs aidant, je me suis lancée comme défit de créer une application multiplateforme, avec SiberianCMS, en 1 journée… Voici donc un compte rendu de mes aventures 🙂

Lire la suite

Flutter development : les ressources utiles

Grâce à une super présentation d’Edouard Marquez lors d’un Meetup organisé par le CDG de Tours, j’ai le plaisir d’être en pleine découverte de Flutter.

Donc, Flutter est un projet Open Source porté par Google, et basé sur le langage Dart. C’est (entre autres…) LE nouveau framework de Google pour la création d’applications mobiles multiplateformes.

Encore un me direz vous… oui mais celui-là est différent (je sais, on nous l’a déjà faite celle-là 🙂 ). Plus sérieusement, le fait qu’il soit porté par Google, avec une communauté de développeur.ses en constante augmentation, donne de très bons augures pour l’avenir de ce framework.

Je ne rentrerai pas ici dans la discussion Flutter vs React Native vs Cordova vs Xamarin… cela n’est pas le propos. Par contre, à titre perso, je peux dire que le langage Dart me plaît bien, et venant de Swift (avec aussi un passé en Java et en C), la courbe d’apprentissage n’est pas trop ardue.

Bref, vous l’aurez compris, je kiffe Flutter 🙂

Et comme je sais à que point c’est parfois compliqué de débuter avec un nouveau framework, j’ai décidé ici de vous partager mes ressources ! (bien entendu, je ferai évoluer cette liste au fur et à mesure de mes avancées dans le domaine…)

Les bases :

https://flutter.dev : le site de base. Plein de tutoriels, d’infos et surtout toujours à jour !

https://dart.dev : le site de référence pour le langage Dart

La communauté :

https://www.edouard-marquez.me/blog/ : plein de news sur l’évolution de Flutter et de sa communauté

Les tutoriels :

http://www.iflutter.in : le site de tutoriels le plus complet que j’ai pu trouver à ce jour

https://kodestat.gitbook.io/flutter/ : de nombreux tutos également

https://hackr.io/tutorials/learn-flutter

https://www.didierboelens.com

http://tphangout.com

https://flutterbyexample.com

L’application mobile iOS « Kayak Tracker »

Un carnet de bord pour toutes vos activités nautiques : kayak, canoë, rafting, sup… Grâce à l’application Kayak Tracker, vous pouvez suivre votre sortie en temps réel, l’enregistrer et la commenter, et même suivre vos données cardiologiques (grâce à l’Apple Watch) !


Kayak Tracker est une application destinée à tous les fans de kayak, canoë, rafting, windsurf, kitesurf, stanup padle voile, yatchning… Bref, tous les accros aux sports d’eau.

Transformez votre iPhone en véritable carnet de bord pour vos sorties en kayak, canoe, rafting…

Avec cette application jolie et simple d’usage, vous pouvez :

  • Savoir à tous moment où vous vous trouvez, la distance que vous avez parcourue et le temps écoulé.
  • Pour chaque parcours, vous retrouvez la distance parcourue, la durée totale de trajet, la vitesse maximale et la vitesse moyenne ainsi que le dénivelé.
  • Vous pouvez personnaliser vos sorties ne ajoutant des photos (jusqu’à 3) et des commentaires.
  • L’application vous communique également les conditions météo du lieu où vous vous trouvez, et celle de l’endroit où vous comptez aller.
  • Grâce à votre Apple Watch, vous retrouverez également vos données cardiologiques dans vos parcours (courbe cardio, bpm max, min et moy).
  • Toujours grâce à votre Apple Watch, vous commandez toutes les fonctions utiles de l’ampli (start, stop sauvegarde, position…) sans sortir votre iPhone ! Plutôt pratique pour éviter de lui faire prendre un bain 🙂

Cerise sur le gâteau, pas besoin de compte, toutes vos données sont stockées dans votre téléphone, pour le plus grand respect de votre vie privée !

Kayak tracker est conçue pour fonctionner en arrière plan sur votre téléphone lorsque vous enregistrez un parcours, et est optimisée pour une gestion de l’énergie optimale (testée sur des randonnées de 6 heures sans problème). Vous la lancez au début de votre randonnée, et vous l’oubliez jusqu’à la fin de la promenade !

Attention, les sports d’eau sont potentiellement dangereux pour votre matériel, et rappelez-vous que vous les faites pour votre entière responsabilité. Soyez prudent.es ! Le développeur de cette application ne saurait être tenu pour responsable d’aucun dommage pouvant arriver à votre Apple Watch ou votre iPhone. Utilisez une Apple Watch série 2 au minimum (modèles étanches) et mettez toujours votre téléphone dans un sac étanche !

Application à télécharger sur l’App Store :

Bonnes navigations !


Git Memorandum

Comme pour tous.tes les développeur.ses, Git fait partie de mon quotidien… Et comme tous.tes les développeur.ses, il m’arrive aussi de galérer avec Git 😦 .

C’est pourquoi j’ai décidé de créer ce billet de blog « Aide mémoire », destiné aussi bien aux débutant.es qu’au utilisateur.ices averti.es… Article sur lequel je partagerai bien entendu mes petites galères et mes (grandes) solutions !

Lire la suite