Tutoriel Swift : Initiation aux tests unitaires

skills-3371153_1920

« Tester, c’est douter ! », oui mais souvent, douter évite de grosses boulettes !!

C’est pour cela que j’ai décidé de publier une série de tutoriels sur les tests unitaires en programmation Swift.

Mais voyons en premier ce qu’est un test unitaire et quel est son but !

Lire la suite

Mise à jour de l’application mobile « Mes Animaux et Moi » !

rubber-stamp-1560308_1280

6 mois sans updates, c’est vrai que l’application « mes animaux et moi » prenait un peu la poussière…

C’est maintenant chose faite !

Screenshot1FRiphoneX

Pour cette fois, pas de mise nouvelles fonctionnalités (mais promis, je réserve une surprise pour la prochaine update…).

L’application est maintenant optimisée pour les nouveaux iPhones XR et XS, ainsi que pour le nouvel iPad Pro.

Quelques corrections de bugs mineurs, mais surtout un gros refactoring du code, un passage en Swift 4.2 et une migration de la base de donnée cloud sur Firebase 5.

Tout cela apporte une diminution de la taille de l’application, tout en améliorant ses performances globales sur des devices relativement anciens.

Bref, ce n’est pas forcément visible sur l’UI, mais un gros travail d’optimisation à été réalisé sur l’appli. Elle est prête à affronter 2019 et ses futures mises à jour !

Retrouvez « Mes animaux et moi » sur l’App Store :

download_on_the_app_store_badge_us-uk_135x40

Tutoriel Swift : mise à jour Firebase 5

Firebase 5

Google à récemment mis à jour son API pour l’utilisation de Firebase… et a cassé la compatibilité avec les anciennes versions… (:

Pas grave, c’est l’occasion de faire une petite update de l’application mobile Mes Animaux et Moi !

Cet article n’est pas un tutoriel à proprement parler, mais plutôt un mémo pour vous montrer les changements nécessaires à la partie du code s’occupant de l’enregistrement des données et des photos.

Voici donc l’ancien code :

firebase4-Storage

et le nouveau :

firebase 5-Storage.png

Les changements se situent au niveau de la méthode « storageRef« .

Attention, je précise (à toutes fins utiles…) qu’il s’agit d’extraits de code, donc vous pouvez vous en inspirer mais pas les utiliser tels quels !

 

Tutoriel Swift : HealthKit ou comment récupérer des données cardiologiques en Swift grâce à l’iPhone

Düsseldorf graphic Design Institute(1)

Cela faisait un petit moment que je n’avais pas publié de nouveaux tutoriel. Celui que je vous propose aujourd’hui est à la fois un tuto et une POC, qui va nous permettre d’aborder un gros morceau : HealthKit

Voici à quoi ressemblera notre appli terminée :

heartStatisitcs

HealthKit : Késako ?

Lire la suite

Développement mobile : React Native, je continue mes essais !

Ma première application mobile React Native

Comme je l’avais évoqué ici, je m’intéresse au développement cross platform, et plus particulièrement à la prometteuse technologie React Native.

Et, grâce au super cours d’Open Classroms, (un giga merci à eux), j’ai pu, après beaucoup de transpiré du cerveau, avoir la joie de faire fonctionner ma première application React Native !

Bon, ce n’est pas grand chose, un petit pas dans Javascript, mais un grand pas pour moi !

Lorsque Microsoft à proposé gratuitement Visual Studio et Xamarin, j’avais déjà tenté la programmation cross platform… et n’avais pas été très enthousiasmé : courbe d’apprentissage rude à mon goût, passage en langage natif tôt ou tard incontournable, temps de compilation ++ …

Mais là, j’ai été bluffé ! J’ai eu un coup de foudre technologique 🙂

La technologie est encore jeune, c’est clair, et je ne suis pas prêt de l’utiliser de manière professionnelle, mais c’est vraiment prometteur !

Le plus bluffant est l’absence de la phase de compilation (merci Javascript) : le résultat d’un changement du code est visible immédiatement sur le device ou la MV (merci Expo). Impressionnant.

Pour le debug, pour le moment, je ne suis pas vraiment à l’aise… Comme « IDE », j’utilise « Atom« , et je n’en ai pas encore exploré toutes les possibilités.

Niveau apprentissage, c’est clair que j’ai du boulot ! Je suis pas près d’être aussi performant qu’en Swift ! Mais ce n’est pas le but pour le moment. De toutes façons, je n’ai pas trouvé comment faire d’appli pour l’Apple Watch alors…

Pour les curieux, voici le code source sur FramaGit (soyez tolérants, c’est mon premier programme en JS :

https://framagit.org/VinceBar/MoviesAndMe.git

Et comme d’habitude, si vous avez des questions, suggestions… commentez !

Quant à moi, je sens que je vais passer quelques we à faire du React Native !

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 !