Programmation Swift : iOS Developer Notes For Professionals

ios Dev Pros

Voici mon nouveau livre de chevet : iOS Developer Notes for Professionals !

Je crois que tout le langage Swift est abordé dans ce livre ! Cela va de la création toute simple d’une UIView au parsing de JSON, tout en passant par l’usage de des frameworks les plus utilisés (Fastlane…) et des designs paterns (MVC, MVVM…).

Bref, le top du top pour le développeur Swift !

Bon, finalement, le lire avant de s’endormir n’est pas forcément la meilleure idée, mais c’est le genre de livre à garder impérativement sous la main toute la journée de développement !

En plus, il est gratuit !

A télécharger (sans modération) ici :

iosDeveloperBook

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

Tutoriel Swift : envoyer des sms / iMessages

des sms en swift

Suite à la demande d’un client, j’ai pas mal bossé en janvier sur les envois de sms via une application, que cela soit en utilisant les api’s natives (comme ici), ou en utilisant des sms proxys comme Twilio.

C’est donc l’occasion de faire un petit récapitulatif de ce que j’ai découvert et de faire un petit tutoriel sur l’envoi de sms en Swift sur iOS.

Mais d’abord, voici ce que j’ai « découvert » sur la gestion des sms / iMessages par iOS12

D’abord, la différence fondamentale entre un sms et un message type iMessage / mms / rcs… est que le sms ne nécessite pas de réseau « data » pour fonctionner, alors que les 3 autres types de messages nécessitent une connexion avec des données mobiles (3G, 4G…).

De plus, iOS semble « savoir » si votre correspondant.e possède un téléphone iOS, donc la possibilité de recevoir des iMessages, ou si votre le téléphone de votre correspondant.e est sur un autre OS, et donc utilise le format sms. Je précise que cela fonctionne que votre correspondant.e soit enregistré.e dans vos contacts ou non.

It’s a mirical !!!

Et bien non. Il fallait y penser, mais en fait avant d’envoyer votre message, le système vérifie si le numéro de téléphone de votre destinataire se trouve dans la bas de donnée iCloud d’Apple. Et oui. Par contre, en tant que développeur.se, n’espérez pas accéder à cette fonctionnalité… j’ai testé pour vous.

Autre comportement inattendu d’iOS 12, le rendu d’un sms est différent si le numéro de téléphone émetteur est enregistré dans vos contact ou non. Par exemple, si vous envoyez un lien, dans le premier cas, votre destinataire aura un petit carré gris affichant « Touchez pour voir le contenu », et dans le second cas, seule l’url sera visible.

Enfin, iOS, contrairement à Android, impose une confirmation manuelle avant l’envoi d’un message (en fait, on comme vous le verrez, on se contente de faire passer un numéro de téléphone et un message à l’api d’iMessage).

Voila pour la théorie, et maintenant, la pratique !

L’application d’exemple est très simple : un champ texte pour mettre le numéro de téléphone de votre destinataire, une zone de texte pour mettre votre message et un bouton « Envoyer « , et 2 ou 3 décorations 🙂

Sous iOS, pour envoyer un sms / iMessage, nous aurons besoin du framework « MessageUI« . C’est lui qui s’occupe de tout, via MFMessageComposeViewController.

Donc, tout se joue dans les 2 fonctions « sendMessage » et « messageComposeViewController » :

« sendMessage » récupère le contenu des champs « phoneNumber » et « message« . Puis, après avoir controlé que les capacités du device (il n’y à rien à rajouter dans Info.plist), envoie les données à « messageComposeViewController« . On récupère ensuite le résultat.

Comme d’habitude, le code complet de l’application présentée sur trouve sur Gitlab : https://gitlab.com/vinceBar/ios-sms-demo

Et si vous avez des questions, remarques… commentez !

La liste des APIs publiques

Il y a quelques temps, j’avais rédigé un article concernant la parfaite toolkit API pour développeur.se mobile. Cet article est bien sûr régulièrement mis à jour et vous le trouverez ici : https://vincent-barousse.blog/

Cette fois, je vous propose rien de moins que l’annuaire des APIs publiques !

A retrouver sur ce site : https://public-apis.xyz

Tutoriel Swift : formatage de numéros de téléphones avec PhoneNumberKit

PhoneNumConverterExample

Dans le cadre de mon activité de freelance, j’ai récemment dû répondre à une offre dans laquelle il était demandé :

 

– De créer un champ texte intégrant un numéro de téléphone

 

– Ce champ texte devra formater le numéro de téléphone pour avoir le même affichage que dans l’appli « Contacts » d’Apple.

 

– Le formatage doit se faire dans les normes locales de chaque pays.

 

– Puis le numéro de téléphone doit, toujours en fonction de la localisation, être converti à la norme E164.

 

– L’utilisation de frameworks externes est autorisée.

 

– Forcément, il faut réaliser tout cela pour moins de 5 euros et en 5 mn 😦 …

 

Comme j’ai trouvé le challenge intéressant (et avec l’espoir de facturer à un tarif un peu plus décent…), je me suis penché sur la question.

La première option qui m’est venue à l’esprit est de partir d’une « page blanche », et de tout coder. Après tout, filtrer et formater des entrées utilisateur n’est pas bien compliqué.

Oui mais pour que cela fonctionne pour tous les pays, cela devient nettement plus gourmand en temps et en neurones…

C’est ainsi que j’ai découvert le génialissime framewok « PhoneNumberKit« 

Lire la suite

Tutoriel Swift : des animations faciles avec Lottie !

IphoneX Lottie Snowman

Je ne sais pas si vous vous êtres déjà frotté à la programmation d’animations pour iOS ou mac OS, mais moi je trouve cela passablement compliqué et rébarbatif !

 

Heureusement, Airbnb à eu la bonne idée de mettre à notre disposition le framework Lottie !

Il s’agit ni plus ni moins que d’une méthode simple pour importer directement un fichier d’animation créé avec Adobe After Effects dans notre application Swift !

Comment ? Voyons cela…

Lire la suite