Créer facilement ses classes modèles en Dart à partir d'un JSON

Convertir du json en modele dart facilement

Travaillant actuellement sur un projet en Dart / Flutter, j’ai fait la connaissance du super travail de Javier Lecuona, qu’il trouve ici mon éternelle gratitude 🙂 .

En effet, créer un modèle à partir de fichier JSON est potentiellement source de bugs, surtout lorsque le JSON est un peu complexe. C’est ici qu’intervient l’outil « JSON to Dart » : https://javiercbk.github.io/json_to_dart/

L’usage est simplisme ! Vous récupérez l’intégralité de votre JSON (ici un exemple issu de jsonplaceholder.com) :

Vous le collez dans l’interface de JSON to Dart :

Vous ajoutez le nom que vous désirez donner à votre classe, et il ne reste plus qu’à appuyer sur le bouton « Generate Dart » et à copier / coller le code généré !

Génial je vous dit !

Si vous connaissez la même chose pour Swift, n’hésitez pas à me le faire savoir ! 😉

Des manuels scolaires consultables via Internet

Il va falloir s’y faire, au vu des annonces faites par le président Macron hier, nos habitudes vont devoir changer, et on va devoir se serrer les coudes !

Le changement d’organisation va nécessiter pas mal d’adaptations, dont certaines potentiellement positives 🙂

Par exemple, pour faciliter la vie des parents, les éditions Bordas, Nathan, Le Robert et Retz on eu la bonne idée de proposer leurs manuels scolaires en libre consultation. C’est pas cool ça ?

A consulter ici : https://adistance.manuelnumerique.com/

La Machine learning avec Python

Lorsque l’on s’intéresse au machine learning, ce ne sont pas les ressources qui manquent… mais généralement, elles sont en anglais… Ce n’est pas forcément un problème, mais c’est quand même plus agréable (pour moi) lorsque je trouve des ressources en langue française 🙂

Du coup, je me suis procurée ce livre auprès d’un grand site de vente en ligne… et je désirais vous partager ma satisfaction 🙂

Avec ce livre, si vous avez quelques bases de Python (ou pas, mais faut quand même avoir de bonnes bases dans un langage de programmation, vous aurez une initiation au ML sans devoir passer des jours de remise à niveau en mathématiques.

Le principal intérêt est que, contrairement à beaucoup de tutos en lignes, on part de la pratique pour arriver aux principes mathématiques sous-jacents. Perso, cette manière d’apprendre me convient beaucoup mieux.

En se basant principalement sur scikit-learn, sont abordés :

  • L’apprentissage supervisé avec ses les différents modèles, leur usage, leurs avantages et leur limites, ainsi que les méthodes pour estimer leur incertitude.
  • Idem pour l’apprentissage non supervisé
  • La représentation des donnés
  • L’évaluation et l’amélioration des modèles
  • Le Chaînage d’algorithmes et pipelines
  • Le travail avec les données textuelles

Cela fait quand même un bon aperçu des techniques de ML actuelles !

Et pour aller plus loin, voici quelques liens que je trouve intéressants :

Bonnes lectures et si vous avez des suggestions, n’hésitez pas, commentez !

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 !

Une pépite de fin d’année !

En cette fin d’année, je suis en pleine lecture du super livre de Denis Yurichev « Rétro-ingénierie pour débutants Comprendre le langage d’assemblage », téléchargable ici : https://beginners.re/RE4B-FR.pdf

Ce qui m’a rappelé le temps des webzines : Ah les No Way, Phack, 40Hex… 🙂 Que de bons souvenirs !

Du coup, je me suis demandé si ils étaient encore trouvables quelques part… et j’ai trouvé ce GitHub: https://github.com/cloudsriseup/Hacker_EZines

Ouah !, le top ! Plus de 1 Go de webzines ! Un grand merci à John pour ce super travail !

Vous vous en téléchargez une dizaine sur votre smartphone et hop, sauvé.e du beau-père qui radote, de l’oncle homophobe et de la belle soeur arrogante pour ces interminables repas de « Fêtes » 😉

En vous adressant une fois encore tous mes meilleurs voeux pour cette nouvelle année !

Vincent.

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 !