Un shortcut pour créer des images carrées avec bordures pour Instagram

Quand il s’agit de publier des images sur Instagram, trouver le bon ratio et la bonne résolution est un véritable casse-tête. Avec l’arrivée des Stories et des Reels, les choses se sont compliquées encore un peu plus.

Vous pouvez charger des images de toute résolution ou ratio, mais Instagram va arbitrairement les redimensionner, ce qui est le moindre mal, mais surtout les recadrer si elles sortent des ratios minimum et maximum autorisés.

Pour rappel, voici les règles en vigueur actuellement :

  • Pour les Reels et les vidéos : ratio standard 9:16 et une résolution recommandée de 1080x1920px. Il est possible de descendre à 1080×608 pour un ratio 1.91:1
  • Pour les Stories, c’est assez similaire : ratio 9:16 pour une résolution de 1080×1920
  • Pour les photos, ça se complique : la largeur maximale est de 1080px, mais la hauteur peut varier de 566px à 1350px. Cela donne une plage de ratios comprise entre 1.91:1 et 4:5. Les dimensions recommandées sont donc 1080×1920 en mode portrait et 1080×608 en paysage.

Si l’on se concentre aux images, on s’aperçoit que le format classique de la photographie 24×36 (ratio 3:2) n’est pas compris dans la plage acceptée par Instagram. Instagram va donc recadrer ces images en coupant les bords qui dépassent. Vous pouvez décider que cela vous convient, mais si vous voulez conserver l’intégralité de votre image, le seul moyen est de ramener votre image dans un ratio accepté par Instagram. La façon la plus simple et la plus courante de le faire est de générer une image carrée en ajoutant des bordures en haut et en bas ou sur les côtés de l’image.

C’est le choix que j’ai fait pour mon compte Instagram réservé pour mes photographies : fredrigaudeau. C’est l’occasion de vous y abonner si ce n’est pas déjà le cas.

Jusqu’à présent, j’utilisais une application (Squaready) pour ajouter ces bordures. Il en existe des centaines sur l’AppStore. Je me suis dit qu’il y avait certainement moyen de faire plus simple et plus pratique avec un shorctut de l’app Raccourcis Apple. Les quelques shortcuts que j’utilise sont assez basiques et mes compétences également. C’est avec l’aide de cette vidéo que j’ai pu trouver les astuces permettant l’ajout des bordures.

Le résultat est un shortcut que vous pouvez utiliser dans les actions de partage sur une ou plusieurs images. Si vous n’avez pas sélectionné d’image, Squarify (c’est le petit nom que j’ai donné à ma modeste création) ouvrira l’app Photos afin que vous choisissiez une/des images. Squarify vous demandera la taille souhaitée (1080px par défaut, la résolution attendue par Instagram) et la couleur de la bordure, noire ou blanche. La couleur de la bordure vous permettra de les rendre invisibles dans un des deux modes d’affichage d’Instagram : blanc pour le mode clair, noir pour le mode sombre évidemment.

Pour installer Squarify, vous pouvez utiliser ce lien.

Je vous donne également le détail, si vous souhaitez le recréer vous-même à la main.

Mon carnet d’adresses de Coffeeshops

Vous connaissez maintenant ma passion pour le café, j’y ai consacré ici toute une série. Hélas, pour ceux qui viennent ici pour d’autres raisons, je vais encore vous en parler.

Il y a quelque temps, j’avais partagé quelques adresses parmi mes préférés à Paris. C’était un peu restrictif. Tout d’abord parce que vous n’habitez pas tous à Paris et puis parce que 5 adresses, c’est un peu court. J’avais donc envie de partager plus d’adresses sorties de mon carnet.

Comme vous le savez, mon carnet d’adresses, c’est Mapstr. Je vous disais ici à quel point cet app m’est devenu indispensable. Je l’utilise pour tout. La conséquence est que mes adresses café sont mélangées avec des boutiques de chaussure, des spots photo ou des restos. Pas vraiment pratique.

J’ai donc extrait toutes ces adresses dans une nouvelle carte Mapstr exclusivement réservée au café de spécialité. Vous pouvez y accéder et vous y abonner par ce lien.

J’y recense tous les coffeeshops que je connais, soit parce qu’ils m’ont été conseillés au fil de mes lectures, des réseaux sociaux ou par le bouche-à-oreille, soit parce que je les fréquente. Ainsi pour chaque adresse vous aurez la possibilité de savoir si je l’ai testée. Si c’est le cas, vous verrez ma notation et surtout mon avis en quelques mots. Ces fonctionnalités sont assez récentes dans Mapstr mais je les trouve géniales. On peut indiquer ses visites dans un lieu et y mettre quelques annotations pour expliquer son expérience. J’y indique également par des tags ce que propose chaque coffeeshop : vente de grains, de matériel, de livre, pâtisserie ou plus.

Cette carte ne se limite pas à Paris. Vous y trouverez quelques adresses un peu partout en France, essentiellement dans des villes que j’ai visitées, mais pas seulement. Il y a également des adresses dans le reste de l’Europe et du monde. Vous en trouverez à Tokyo, adresses que j’ai repérées en vue d’un hypothétique mais non moins désiré voyage. Finalement, plus de 130 adresses s’y trouvent.

Je continue d’alimenter au fil de mes découvertes et des tests des adresses que je n’ai pas encore visitées. Je compte aussi sur vous pour me donner vos bonnes adresses ou m’indiquer les erreurs que j’aurais pu commettre dans mes descriptions.

Bon voyage !

Mapstr s’occupe de vos bonnes adresses

Je suis certain que cela vous arrive régulièrement. Vous entendez parler d’une app. Vous l’installez et la trouvez géniale. Et puis, un jour, vous voulez la réutiliser et vous vous apercevez qu’elle a été automatiquement supprimée de votre téléphone parce que vous ne l’avez pas utilisée depuis des semaines.

Des apps comme celles-ci j’en ai plein mon iPhone mais Mapstr n’en fait pas partie. C’est un signe.

C’est le signe que l’app remplit réellement une fonction qu’aucune autre app ne couvrait. C’est le signe qu’elle vous est vraiment utile. C’est aussi le signe qu’elle est bien conçue et vous donne envie de l’utiliser. Mapstr est certainement une des apps que j’utilise le plus sur mon iPhone.

Il existe des apps pour se rappeler de tout : des apps pour regrouper vos tâches, stocker une liste de pages web, collectionner vos meilleures photos, faire des playlists de musique mais rien pour vos adresses. Vous avez votre carnet d’adresses personnelles, les gens que vous connaissez, mais rien pour les lieux que vous voulez vous remémorer. Un ami vous donne une adresse de restaurant intéressant, elle finit sur un bout de papier ou dans une note que vous avez toutes les chances de ne jamais retrouver. Mapstr vient combler ce manque : enregistrer votre collection de lieux facilement pour l’avoir sous la main à tout moment.

Pour mieux comprendre ce qui a amené Sébastien Caron, son concepteur, à créer Mapstr, je vous invite à écouter son interview dans le podcast de Matthieu Stefani, Generation Do It Yourself. Dans l’épisode 292, il parle de son parcours, de l’idée d’origine, des difficultés à trouver la bonne formule, bref de l’aventure passionnante de cette petite startup qui chatouille les grands de la Tech avec ses 3 millions d’abonnés. De plus, Sébastien est un coffee geek avec lequel j’ai plaisir à partager trucs et adresses, une qualité de plus à son crédit. Il décrit lui-même Mapstr comme le Spotify des adresses, car, l’app ne permet pas seulement d’enregistrer ses adresses préférées, elle permet surtout de les partager facilement avec ses amis ou la terre entière si vous le souhaitez en vous abonnant aux cartes.

Passons en revue quelques fonctionnalités.

Créer un compte

Mapstr est disponible sur iOS (iPhone et Apple Watch), Android et en version web.

Lorsque vous créez un compte, vous avez le choix entre deux types : privé ou public. Avec un compte privé, c’est vous qui maîtrisez qui accède à vos adresses : vous acceptez ou refusez les demandes d’abonnement, vous pouvez même masquer certaines adresses. Un compte public est accessible à tous sans restriction.

Avec votre compte, vous avez une carte. Il n’est pas possible d’avoir plusieurs cartes avec le même compte. C’est une des limitations de l’outil. Cependant, vous pouvez créer plusieurs comptes, le passage d’un compte à l’autre étant très facile dans l’app.

Gérer ses adresses

L’ajout d’adresse s’effectue par moteur de recherche sur le nom, l’adresse ou même les coordonnées GPS. Vous pouvez également ajouter une adresse que vous auriez vue sur la carte d’un autre utilisateur à votre carte. Enfin, vous pouvez récupérer les adresses de votre compte Foursquare, Swarm, de votre carnet d’adresses ou d’un fichier CSV issu d’un export depuis l’app.

À la création, vous devrez indiquer au moins un tag pour catégoriser l’adresse. Évidemment, c’est vous qui gérez vos tags, les possibilités sont infinies : type de lieu, regroupement des adresses pour un voyage, personne qui vous a donné cette adresse, etc. Vous pouvez également indiquer quelques notes personnelles, indiquer si vous l’avez déjà testée (auquel cas vous pourrez indiquer votre notation du lieu), si l’adresse est privée et si vous souhaitez être avertis quand vous passez à proximité.

Les adresses apparaissent sous forme d’étiquettes colorées, les couleurs représentant les tags. Vous pouvez également consulter vos adresses sous forme de liste et évidemment les filtrer selon vos tags pour les retrouver facilement.

En balade, lorsque vous avez sélectionné le lieu que vous voulez visiter, vous pouvez facilement consulter le site web, appeler ou naviguer à l’aide du bouton « Y aller ». Vous aurez alors 4 modes de transport : taxi, transports en commun, à pied, en voiture. Pour chacun de ces modes, il est possible de paramétrer votre app préférée pour vous y rendre, par exemple Apple Maps quand vous êtes à pied et Waze en voiture.

Partager et explorer

Vous pouvez utiliser Mapstr pour simplement gérer vos adresses mais la force de l’app réside dans ses fonctions de partage et d’exploration. L’onglet Découvrir vous proposera des adresses autour de vous selon des thématiques, des idées de destination de voyage, des cartes d’utilisateurs près de chez vous. Vous y trouverez également des cartes officielles. Ce sont des cartes proposées par des magazines, des éditeurs de guide (le Petit Futé par exemple), des influenceurs. Vous pouvez vous abonner à ces cartes. Certaines sont gratuites, d’autres payantes.

Vous pouvez évidemment vous abonner de la même manière à n’importe quelle carte des autres utilisateurs en utilisant le module de recherche. C’est cette fonction qui vous permettra de partager vos meilleures adresses avec vos connaissances. Vous retrouverez ces cartes dans vos abonnements et vous pourrez basculer sur ces cartes comme si c’était la vôtre, voire les superposer à votre carte personnelle.

Enfin, si vous le souhaitez, vous pouvez collaborer à plusieurs sur la même carte.

Pour finir

Je n’ai fait que survoler les principales fonctionnalités de Mapstr mais vous avez compris le principe. L’app est gratuite et sans abonnement ce qui est plutôt rare. Vous pouvez adhérer au Mapstr Club moyennant un paiement annuel dont vous choisissez le montant (de 29,99 à 999,99 EUR). Cela vous permet seulement de recevoir les bons plans en avance sur votre boite mail, il s’agit donc plutôt d’un soutien au développement qu’un véritable abonnement. Pensez-y si le produit vous plaît et que vous voulez donner un petit coup de pouce à la formidable startup (française qui plus est) de Sébastien.

Vous pouvez utiliser ce lien de parrainage pour créer votre compte, c’est un lien qui vous permettra d’avoir une carte gratuite parmi les cartes payantes. Vous pouvez me trouver sur Mapster sur mon compte personnel @fredrig et sur mon compte public @eiffair qui est une carte des coffee shop de café de spécialité. J’aurais l’occasion d’y revenir plus largement ici dans quelques jours.

Blog et flux RSS en 2023

Évidemment que le blog n’est pas mort en 2023. Le mien est un rescapé. J’ai bien failli le fermer cette année mais j’avais toujours dans le coin de ma tête l’idée que je le regretterais dès sa fermeture.

A l’aube de 2023, je suis heureux de l’avoir toujours sous la main, même pour écrire quelques lignes.

https://twitter.com/bonjouryannick/status/1608553189615505408

Quant aux flux RSS, je continue de les utiliser. Ils sont un complément bien pratiques à Twitter. Ils me permettent de suivre des blogs ou des sites d’information. Je les consulte tous les jours avec mon App préférée lire

Redimensionner les fenêtres MacOS comme dans Windows

Windows est le système d’exploitation que j’utilise majoritairement. Ce n’est pas un choix, c’est celui de la société qui m’emploie. D’ailleurs, s’il y a un qualificatif qui sied bien à Windows, c’est professionnel. Windows est devenu un système vraiment stable. Les écrans bleus de la mort ont disparu depuis longtemps. Il est rapide et efficace. C’est Pro et comme pour tout outil de travail : on est pas là pour s’amuser. C’est assez moche, pas toujours simple, car il a pour mission de couvrir tous les usages1. Bref, Windows manque sérieusement d’âme.

C’est pour cette raison que je préfère2 utiliser MacOS à la maison. C’est joli, agréable à utiliser, puissant et avec ce petit plus qui rend l’expérience utilisateur plus smooth diraient les Anglo-saxons.

Passant la majeure partie de mon temps sur Windows, il y a quand même quelques trucs qui me manquent quand je passe sur Mac (même si l’inverse est plus souvent vrai). Si je ne devais en retenir une, c’est la possibilité de gérer la taille d’une fenêtre Windows simplement en la glissant vers le bord supérieur de l’écran. Chez Apple, bien que les dernières versions aient apporté quelques améliorations (Split View par exemple), la gestion de l’emplacement et de la taille des fenêtres est clairement en retrait et source d’agacements permanents.

Et puis, j’ai découvert Magnet, un petit utilitaire qui résout ce problème. Et bien plus encore. Avec Magnet, vous pouvez non seulement glisser une fenêtre vers le bord supérieur de l’écran pour qu’elle occupe tout l’écran, mais vous pouvez également utiliser des zones spécifiques du bord de l’écran pour donner à vos fenêtres des emplacements et des tailles spécifiques. Glissez la fenêtre vers le bord supérieur gauche et la fenêtre sera calée en haut à gauche en occupant un quart de l’écran. Glissez vers le bord droit et elle occupera la moitié droite de l’écran. Vous avez compris le principe, voici l’étendue des possibilités en fonction des zones :

Si vous préférez les raccourcis clavier, c’est également possible et vous pouvez les régler vous-même. Enfin, Magnet est également disponible dans la barre de menu, proposant les différentes dispositions pour la fenêtre active en un clic.

Magnet est disponible dans le Mac App Store au prix de 3,99€ et franchement payer deux cafés pour être débarrassé de ces manques de MacOS, ça me va en attendant Apple.

  1. Essayez de trouver un réglage dans le Panneau de configuration, qui a plusieurs présentations, qui ne regroupe plus tous les réglages car il y a aussi une petite icône dans la barre d menus qui permet d’avoir certains réglages, mais pourquoi seulement certains et pas d’autes? Sans parler des noms très professionnels qu’ont les options : le mot Wifi n’apparaît jamais, par contre on vous parle de point d’accès réseau. etc.
  2. Je dis bien je préfère, c’est juste mon choix et pas un jugement de valeur.

Débuter avec Swift pour iOS – (2/2) Quelle méthode pour apprendre ?

Après un premier article qui tentait de vous convaincre que programmer est une activité amusante et passionnante, allons maintenant au coeur du sujet. Comment réellement apprendre Swift ? Quels sont les meilleurs cours ? Quels types de cours ? Comment vraiment progresser ?

La première difficulté quand on débute en développement – et ce n’est pas spécifique à Swift – est de se trouver confronté à une quantité pléthorique de supports pour apprendre. Faire le bon choix parmi tous ces contenus est donc le défi numéro un. Je suis passé par là, et j’ai mis quelque temps avant de trouver les supports qui me conviennent et surtout ceux qui me permettaient de progresser réellement.

Une des clés pour progresser est d’avoir un bon équilibre entre théorie et pratique. Oui, la théorie est absolument nécessaire. Vous trouverez beaucoup de tutos qui vous permettent de développer rapidement des applications. On suit les étapes pas à pas et l’on aboutit à un résultat incroyable en quelques heures. La difficulté arrive lorsque vous allez vouloir faire vos propres développements. On ne peut pas se contenter de copier-coller des bouts de code pour faire ses propres projets. Très vite, vous allez atteindre des limites qui sont liées à la compréhension de ce que vous faites réellement, non seulement des instructions en elles-mêmes, mais aussi des concepts de base indispensable. Tôt ou tard, ils vont vous manquer pour avancer. Il faut être capable d’adapter ce que l’on a appris pour ses propres besoins.

On peut se dire qu’on trouve toujours des réponses à ses problématiques sur Stackoverflow. C’est une source indispensable pour trouver des solutions et des bouts de code faits par des développeurs plus expérimentés. Il est conseillé de s’inspirer des autres, de copier du code, d’en réutiliser, mais si on ne comprend pas ce qui se passe, il sera très difficile d’adapter, de corriger ses erreurs et d’optimiser son code. Viendra alors la frustration de ne pas réellement avancer. Comme je le disais dans la première partie, programmer doit être amusant. C’est un processus créatif et c’est pour cela que c’est passionnant. Sans plaisir, pas de progression.

Les cours

Le moment est venu de parler des ressources. Les cours sont la première source pour apprendre. S’il est bien structuré, un cours permet d’avoir une progression maîtrisée de l’apprentissage tout en couvrant le maximum de concepts. Je vous en propose trois, avec des approches différentes. À vous de voir celui qui vous convient le mieux. Rien n’interdit d’ailleurs de commencer avec un cours et de l’abandonner s’il ne vous convient pas. C’est ce que j’ai fait.

iOS 13 &Swift 5 – Angela Yu – Udemy

Si vous faites sur recherche de cours sur Swift iOS, vous allez très vite tomber sur les cours d’Angela Yu sur la plateforme Udemy. La popularité de son cours iOS 13 & Swift 5 – The Complete iOS App Development Bootcamp est absolument incroyable. Près de 200 000 participants ! C’est le cours par lequel j’ai commencé. Angela est une formidable pédagogue, la progression est bien calibrée, ses explications sont claires. Les applications que l’on construit ensemble sont intéressantes, jolies et couvrent une grande partie des API Apple. Évidemment le cours est en anglais, mais il reste relativement simple à suivre. Le cours est monumental : 573 vidéos réparties en 36 sections, soit près de 60 heures de vidéo (et au moins 4 fois plus de temps pour les visionner).

La plateforme Udemy est agréable à utiliser. Il y a même une App qui m’a permis d’utiliser l’iPad pour visualiser les vidéos en utilisant le Mac pour développer en même temps. Toutes les ressources sont disponibles pour avancer et chaque leçon a son propre fil de discussion qui permet d’échanger avec les autres élèves en cas de problème de compréhension ou de mise en application.

J’en suis à la session 204 et j’ai déjà appris beaucoup de choses. En réalité, j’en suis à cette leçon depuis plusieurs semaines, car j’ai basculé sur un autre cours, laissant celui-ci de côté pour le moment.

Effectivement, la critique que l’on pourrait faire au cours d’Angela est d’être construit sur la forme de tuto : on fait en même temps qu’Angela. Il y a bien quelques vidéos « Deep Dive » de temps en temps, qui s’attardent sur des concepts théoriques au fil de l’apprentissage, mais pas de cours théorique structuré. Il manque surtout, à mon goût, de véritables exercices pratiques à effectuer seuls. Il y a des challenges au fil des vidéos pour compléter le code que l’on est en train de construire, mais arrivé à la session 200, Angela ne nous a toujours pas laissés construire une App de A à Z avec les concepts appris. La conséquence est qu’il est difficile de mesurer ses progrès, de savoir réellement ce que l’on a acquis et surtout sa capacité à faire soi-même.

Pour cette raison, ce n’est peut-être pas le cours que je conseillerais pour commencer. Par contre, je vais y revenir pour compléter mon apprentissage et certainement découvrir de nouvelles choses tout en ayant acquis l’assurance et l’autonomie.

Pour finir, à noter que le cours est payant comme la plupart sur le site Udemy. Ne l’achetez pas au prix fort (129,99€). Je n’ai pas très bien compris comment fonctionne la tarification Udemy, mais ils font régulièrement de fortes « promotions » sur leurs tarifs. Si vous créez un compte, je pense que vous allez bénéficier d’emblée de ces tarifs « préférentiels ». Il est affiché à 14,99€ en ce moment, ce qui me semble un prix raisonnable au regard de la qualité et de la quantité de contenu offert.

100 Days of Swift – Hacking with Swift

Cette assurance et cette autonomie, je pense qu’il est plus facile de l’acquérir avec les cours de Paul Hudson et plus particulièrement celui qui est destiné aux débutants : 100 Days of Swift. J’étais déjà bien avancé dans le cours d’Angela Yu lorsque j’ai découvert le site Hacking with Swift. Le principe est simple : 100 courtes leçons qui ont pour objectif de passer 1 heure par jour pendant 100 jours avec Swift. Ces leçons sont un mélange de cours, de vidéos, de lectures, de quizz et surtout d’écriture de code.

Les 12 premiers jours sont consacrés à l’acquisition des concepts de base sous la forme de courtes vidéos suivies de tests. C’est progressif, bien fait et les tests permettent de vérifier qu’on a bien compris. Je vous conseille de télécharger l’App iOS gratuite Unwrap qui couvre ces 12 premiers jours. En plus des cours, elle propose des challenges, des quizz et des tests qui permettent d’apprendre de façon ludique tout au long de la journée dès que vous avez un moment. Les 12 premiers jours m’ont permis d’apprendre beaucoup plus et de façon bien plus structurée que le cours d’Angela.

La totalité du cours est basée sur ce concept d’apprentissage suivi de révision et de mise en pratique. Ainsi, après les 12 premiers jours, comme c’est le cas après chaque bloc d’apprentissage, il y a trois jours de révision et consolidation. On commence réellement à programmer à partir du jour 16 avec trois projets très simples. Les leçons sont sous forme de vidéos accompagnées de la transcription complète, code compris. À la fin de chaque projet, un challenge est donné. Ces challenges ne sont jamais corrigés (juste quelques indices pour aider), car Paul insiste sur le fait que l’apprentissage doit être fait par soi-même. À chacun de chercher parmi ce que l’on a appris ou sur d’autres ressources. En dernier recours, si vous êtes vraiment bloqué sur un challenge vous pouvez trouver sur GitHub des développeurs qui ont mis à dispositions leurs solutions à l’ensemble des challenges. J’y ai recours en général pour voir d’autres façons de faire, mais aussi lorsque j’ai séché sur certains points. Ces nombreux challenges progressifs à faire en toute autonomie tout en étant progressifs sont vraiment la clé de la progression.

Je suis au jour 35 actuellement et j’ai réellement pris beaucoup d’assurance. Je comprends comment sont construites les instructions, car Paul fait toujours le rapprochement entre ce que nous faisons dans les tutos et la théorie. Je suis capable de faire une App simple de A à Z ce que je n’avais même pas osé tenter avec le cours d’Angela Yu, ne sachant pas trop si j’en étais capable et par quel bout commencer. J’y prends surtout beaucoup de plaisir.

C’est évidemment le cours que je vous conseille pour commencer, apprendre vite et bien. Et en plus, tout cela est gratuit. C’est d’ailleurs le cas pour la plupart des contenus de Hacking with Swift, les contenus payants étant les livres et les cours avancés. Cela ne me concerne pas pour le moment.

Stanford University – Developing Applications for iOS using SwiftUI

Les universités américaines proposent de nombreux cours en ligne. Ce sont des enregistrements de ceux donnés à leurs étudiants. Ils ne se contentent pas de mettre les vidéos en ligne, toutes les ressources pour suivre les cours sont également disponibles, permettant à chacun de suivre le même cursus que les étudiants. L’université de Stanford propose donc ce cours dédié au développement d’applications iOS. Je n’ai pas encore regardé celui-ci, mais j’avais par le passé commencé quelques leçons de Java de la Stanford University. J’avais apprécié la très grande qualité des enseignements.

Si vous préférez un enseignement guidé qui vous rappelle vos études, c’est une excellente option. Par contre, ces cours demandent un investissement personnel important. Le travail à faire en dehors des cours (apprentissages, travaux pratiques) représente une masse de travail non négligeable. C’est un excellent moyen pour apprendre. À l’inverse, en tant qu’élève à distance et isolé, vous n’aurez pas de camarades de classe pour vous aider. C’est l’école de la débrouille.

Pour ma part, je pense regarder ce cours lorsque j’aurai terminé les deux autres, pour consolider mes acquis et vérifier que je progresse. À noter également que ce cours est construit autour du framework SwiftUI. J’en parle un peu plus loin. Et c’est gratuit.

Autres ressources

Ces cours ne seront pas les seules ressources dont vous aurez besoin. Je vous livre en vrac quelques liens que j’utilise en complément :

  • Les documentations officielles du langage Swift (swift.org) et des frameworks Apple. Le site Developper d’Apple propose aussi de nombreuses autres ressources pas toujours évidentes à trouver au premier abord.
  • Stackoverflow évidemment
  • Le sub Reddit r/swift
  • Je ne recommande pas d’utiliser YouTube pour apprendre. Vous n’y trouverez que des petits bouts d’apprentissage, très peu de choses structurées. Par contre, pour des sujets précis, on trouve évidemment d’excellentes ressources, par exemple sur la chaîne de Sean Allen.
  • De nombreux blogs de développeurs proposent des articles pour les débutants. Swift by Sundell en est un bon exemple.

Mon expérience

UIKit ou SwiftUI

C’est certainement la première question que vous allez vous poser avant de commencer. Jusqu’ici, la maturité de SwiftUI rendait les développeurs frileux pour le conseiller comme première approche pour les débutants. Les dernières versions ont tellement évolué qu’il est maintenant en première ligne. Un exemple. Alors que Hacking with Swift proposait de commencer par 100 Days of Swift (UIKit) il y a encore deux mois lorsque j’ai commencé, il propose aujourd’hui dans sa page Start Here de commencer par le cours 100 Days of SwiftUI. Je continue de penser qu’il est préférable de commencer par UIKit lorsqu’on est un débutant, pour se plonger dans le code encore majoritairement utilisé pour développer. Dans un deuxième temps, il est certain que je déroulerai les 100 Days of SwiftUI.

Quelques conseils

Ayant dépassé maintenant les premiers mois d’apprentissage, je mesure mieux les écueils. Voici quelques conseils.

Le développement d’App est quelque chose de complexe, en tout cas plus complexe que je ne l’imaginais. N’imaginez pas faire votre première App avant le premier mois d’apprentissage. Cela peut être frustrant, mais voyez cela comme un indicateur de votre motivation.

Cela signifie également qu’il faut consacrer du temps à l’apprentissage. Ce temps il se mesure plus en régularité qu’en nombre d’heures par séances. Passer ne serait-ce que 30 minutes chaque jour est selon moi plus bénéfique qu’une session de 5h tous les dimanches. Cela vous permet de rester en contact avec le code et d’entretenir les acquis. C’est aussi pour cette raison que j’apprécie les 100 Days of Swift. Un peu chaque jour.

Enfin, si je ne devais donner qu’un conseil, c’est celui-ci : privilégiez un apprentissage qui vous met en situation d’écrire votre propre code assez vite, régulièrement et sans aide. Ce n’est que par les essais et les erreurs que vous apprendrez. Vous essaierez de comprendre, vous trouverez les solutions, vous progresserez.

Bien sûr, apprendre peut être intéressant par le simple plaisir de la découverte. Cela risque de s’émousser devant les difficultés. Le meilleur moyen de l’éviter est d’avoir un objectif en tête. Identifiez une idée d’App que vous aimeriez développer, même si c’est une idée qui existe déjà. Dès que vous vous sentez à l’aise, commencez à la développer, par petits morceaux. C’est la clé de la motivation.

Débuter avec Swift pour iOS – (1/2) Pourquoi apprendre à développer ?

Comme si je n’étais pas suffisamment dispersé dans mes activités1, j’ai décidé d’en ajouter une à ma panoplie de zappeur. Depuis plusieurs semaines, j’essaie d’apprendre à développer des applications mobiles avec Swift pour iOS. J’en suis au stade où j’ai le sentiment de progresser dans mon apprentissage, fort de mes erreurs, mais aussi des premiers résultats positifs. Il me paraissait intéressant de partager mon expérience de débutant, si vous aussi vous pensez vous lancer.

Avant de passer aux outils, méthodes et astuces pour apprendre, je vous propose dans cette première partie de voir ce qui peut motiver pour apprendre à programmer.

Comment j’en suis arrivé là

Pour être tout à fait honnête, je ne suis pas un total débutant. Ma formation initiale en informatique m’a amené, au début de ma carrière, à faire un peu de développement. C’étaient les prémices de la programmation évènementielle, une nouvelle façon de concevoir les logiciels très éloignée de la programmation linéaire qui était la norme à l’époque. Les plus nostalgiques (ou les plus anciens !) se souviennent certainement de Borland Paradox. J’ai très peu développé, mais je garde en mémoire des moments d’intense exhaltation. Inévitablement, un jour, cela s’est rappelé à moi.

L’inventivité des développeurs d’applications mobiles est tout simplement stupéfiante. En quelques années, des fonctionnalités que l’on rangeait dans la catégorie « science fiction » sont devenues réalité. Les mettre en œuvre est aujourd’hui à la portée de chacun, si l’on fait l’effort d’apprentissage. La richesse de l’écosystème mobile en fait une plateforme aux possibilités infinies. Vouloir explorer ces possibilités, c’est un peu comme entrer dans un nouvel univers. C’est à la fois intrigant et passionnant.

Pourquoi apprendre à développer

Le développement logiciel est généralement perçu comme une compétence professionnelle. Aux deux extrémités des clichés, on imagine le millénial qui développe la future grande idée d’une startup ou bien le développeur chevronné qui code, bit à bit, le micrologiciel de la climatisation de votre voiture. Le fantasme du développeur est plus proche de la première catégorie, l’ultime cliché étant le développeur indépendant qui a eu une idée de génie et qui voit son application truster les premières places du classement de l’AppStore.

Il y a une autre voie. Une autre motivation. Développer peut être un loisir, quelque chose de ludique, une passion.

Développer c’est créer

Le côté créatif du développement est clairement ce qui m’attire le plus. J’ai toujours aimé fabriquer des choses, utiles ou artistiques, aboutir à une chose tangible qui sort de mes mains ou de mon esprit. Le développement d’applications possède ses deux facettes : on fabrique quelque chose avec des outils et des matériaux (le langage de programmation) tout en concrétisant des idées (les fonctionnalités, le design). Au final, le produit peut être beau, à regarder ou à utiliser.

Développer c’est écrire

Si vous aimez écrire, développer devrait vous passionner. Le processus d’écriture est très proche du développement logiciel : vous devez assembler des idées, utiliser une grammaire, une syntaxe pour former quelque chose de compréhensible. Apprendre un langage de programmation c’est comme apprendre une nouvelle langue. La progression est similaire : on commence avec des phrases simples utilisant les mots de base du langage. Petit à petit, on enrichit son vocabulaire et l’on prend plaisir à former des phrases complexes dans un style agréable et efficace. On parle même de développeurs qui écrivent bien, même si leur application fait la même chose qu’une autre écrite dans un style plus rudimentaire.

Être tout simplement devant son clavier, voire les mots se former à l’écran est motivant quand on écrit. On retrouve cette même motivation quand on écrit du code.

Développer c’est inspirant

Si vous avez déjà vu des développeurs, vous avez sans doute remarqué à quel point ils étaient immergés dans leur activité. Une attitude qui a injustement donné leur réputation d’asocial aux développeurs. En réalité, c’est un autre phénomène qui entre en jeu ici : la notion de flow telle que l’a décrite pour la première fois Mihaly Csikszentmihalyi dans son formidable livre Vivre, la psychologie du bonheur. Le flow est un état de fluidité mental que l’on atteint en faisant des activités qui occupent tout notre esprit. On perd généralement la notion du temps et l’on est dans une intense concentration. Mihaly Csikszentmihalyi avance que la succession de ces expériences est une des sources de l’équilibre et du bonheur. J’adhère à cette idée.

Chacun a pu vivre ces moments et en ressortir revigoré, plein d’énergie positive et de satisfaction d’avoir fait quelque chose d’enrichissant pour soi-même. Pour ma part, c’est le souvenir que j’ai de mes longues séances de développement.

Développer c’est ludique

Quand on développe on est souvent à la recherche d’une énigme. Parfois, cette énigme est de trouver la solution pour implémenter une idée. C’est un jeu de piste et d’exploration souvent amusant. Il faut bien l’avouer, la plupart du temps l’énigme consiste à rechercher pourquoi ça ne fonctionne pas. Assez paradoxalement, cette recherche de solutions à ses propres bugs est aussi ludique que la partie créative.

Je n’ai pas suffisamment de référence de gamer pour en parler longuement moi-même, mais les développeurs rapprochent souvent les deux activités : développer c’est comme jouer aux jeux vidéos. Être immergé dans son activité, trouver des solutions, interagir avec l’écran, arriver au bout d’une quête. Ce n’est d’ailleurs peut-être pas un hasard si développeurs et gamers sont souvent les mêmes personnes.

Développer c’est apprendre

Évidemment. On commence par apprendre un nouveau langage. Au-delà du langage, on apprend surtout de nouveaux concepts. Les débutants en Swift savent de quoi je parle si j’avance le mot « closure ». Si l’on aime apprendre et découvrir, on est servis. Chaque jour est une nouvelle découverte.

Développer permet aussi de mieux comprendre comment fonctionne les applications que l’on utilise. Si vous êtes curieux, apprendre un langage, c’est comme soulever le capot d’une voiture.

Développer c’est s’ouvrir de nouveaux horizons

En arrivant au terme de cette liste de motifs, on pourrait croire que l’on peut développer juste pour la beauté du geste. Si cela peut être motivant pour débuter, il faut rapidement y trouver un objectif plus concret. C’est un conseil largement partagé : la pratique est le seul moyen de progresser. Il est indispensable de se fixer des objectifs pour mettre en œuvre ce que l’on apprend.

Fixer ces objectifs, c’est aussi s’ouvrir de nouveaux horizons. Vous avez peut-être une idée d’application à développer. C’est peut-être juste un utilitaire pour votre propre besoin. C’est peut-être quelque chose de plus ambitieux, mais il faut bien commencer par les bases.

Vous avez peut-être envie de commencer une nouvelle carrière. Certes, apprendre seul en quelques mois ne fera pas de vous un développeur professionnel, mais cela vous permettra de mieux comprendre le métier. Savoir si cela vous plait vraiment et si vous devez aller plus loin.

Pourquoi développer en Swift pour iOS

Si je me suis tourné vers Swift, c’est simplement par logique personnelle, l’écosystème que j’utilise étant celui d’Apple. C’est simplement ma préférence personnelle. Les motivations pour apprendre à développer s’appliquent naturellement à tout type de langage et toute plateforme.

Dans mon cas, Swift présente l’intérêt d’être un langage relativement répandu (du moins dans le monde Apple). C’est le gage de pouvoir trouver facilement de l’aide pour apprendre. La richesse des possibilités offertes par la bibliothèque de composants d’Apple permet d’imaginer toutes sortes d’applications : des utilitaires, des jeux, manipuler de l’audio ou de la vidéo, de la réalité augmentée, la géolocalisation, etc. Les possibilités sont immenses. Je sais que je ne serai jamais limité par le framework.

Les limites sont simplement celles de mes compétences en développement. Et ça, c’est le moteur n° 1 pour apprendre encore et encore pour enfin matérialiser mes idées.

Dans la deuxième partie, je partagerai les ressources que j’utilise pour apprendre et les quelques leçons que j’ai apprises de mes premiers essais.

  1. Fred, tu ferais mieux de te tenir à un rythme régulier sur tes articles de blog, ta newsletter et ton podcast. Et aussi traiter tes street-photo qui dorment par centaines sur ton disque dur.

Comment j’utilise Notion

Il y a quelques semaines, je décrivais les outils que j’utilise pour gérer mes différents types de données. J’ai eu beaucoup de questions autour de l’outil Notion, à la fois par des lecteurs qui le découvraient mais aussi d’autres qui avaient tenté de le mettre en place sans réussir à trouver la bonne formule. Il faut dire que Notion peut être un peu intimidant au premier abord. On se retrouve devant une page blanche avec beaucoup de possibilités, mais difficile de savoir par où commencer et comment s’organiser. Je vous propose de montrer mon utilisation, en espérant que cela clarifie certains concepts pour vous et vous inspire pour construire votre système. Avant cela, quelques mots pour décrire ce qu’est Notion.

Notion : c’est quoi ?

Classé dans la grande famille des outils de productivité, il est parfois décrit comme un outil d’entreprise, un gestionnaire de notes, un outil d’organisation, un outil collaboratif… En réalité, Notion est un peut tout cela à la fois car il vous permet d’en faire ce que vous avez décidé d’en faire. Pour être plus précis, je dirais qu’il s’agit d’un outil de wiki survitaminé. C’est une application web (même si des outils Mac, PC et mobiles existent, ils sont basés sur le moteur de la version web) qui permet de créer facilement des pages qui peuvent être organisées en faisant des liens entre elles. C’est le principe du wiki. La différence vient de la nature des données que vous allez pouvoir intégrer au sein d’une page. On y retrouve les plus classiques : texte riche, images, vidéos, liens externes qui peuvent apparaître sous forme de page embarquée, table des matières, formules mathématiques, audio, code, listes à cocher (todo list), etc.

Mais Notion ne s’arrête pas là, ce n’est pas un simple éditeur de notes. Dans vos pages, vous pouvez évidemment intégrer des liens vers d’autres pages, voire des pages entières mais vous pouvez aussi créer des pages d’un type particulier : les tables (database dans le jargon Notion). Si vous connaissez Airtable, c’est assez proche. Il s’agit de créer vos propres bases de données pour lesquelles vous pouvez créer autant de champ que vous voulez et de différents formats : texte, numérique, fichier lien, URL, date, lien vers d’autres pages. C’est toute la puissance de l’outil. Cela permet par exemple de créer une base de données de notes (chaque enregistrement de votre table étant elle-même une page).

Enfin pour terminer, il existe toute une série de contenus que vous pouvez intégrer dans vos pages : des pages web, des cartes Google Maps, des tweets, des fichiers, des fichiers Figma, Loom, Typeform et une panoplie d’autres outils plutôt destinés aux entreprises. Ajouter un élément est très simple : en tapant / un menu apparaît, il vous suffit de choisir dans la liste et c’est riche ! Et si vous manquez d’inspiration, vous pouvez utiliser les modèles proposés par Notion lorsque vous créez une page ou en copier un depuis les nombreux sites qui en proposent. J’espère que je ne vous ai pas perdus, le mieux est de voir par l’exemple. Passons à mon utilisation.

Podcast sur iPad de A à Z

Au fil du temps, l’iPad devient mon ordinateur principal, cependant il reste certaines tâches que j’ai toujours réalisées sur le Mac. Enregistrer, monter et publier un épisode de podcast fait partie de ces tâches. J’étais habitué à mon workflow et j’avais surtout l’impression que l’iPad n’était pas encore mûr pour cela. Il me semblait que j’allais devoir trouver des contournements et les difficultés que j’imaginais réprimaient mon envie même de tester. Avec iOS 13, Apple a apporté quelques fonctions intéressantes qui pouvaient changer la donne : la meilleure intégration des stockages externes, le support dans Safari des versions natives des sites web (et plus seulement de leur contrepartie limitée mobile), une gestion des fichiers plus intuitive.

Je me suis donc lancé le défi de réaliser un épisode de A à Z sans toucher au Mac. Difficulté supplémentaire, le dernier épisode (vous devez absolument l’écouter !) est enregistré en partie sur le terrain et complété par un enregistrement à la maison. Une dernière précision, l’iPad que j’ai utilisé pour les premières étapes de cet épisode est un iPad Pro 10.5’ qui dispose donc d’un connecteur lightning. C’est une précision importante, car passé depuis sur un iPad Pro 11’ équipé d’un connecteur USB-C, j’ai compris l’intérêt du connecteur USB-C dont il est équipé. Il pallie l’inconvénient de la puissance offerte par le connecteur lightning, souvent trop faible pour reconnaître les dispositifs USB sans alimentation.

Enregistrer sur le terrain

Pour mes enregistrements en balade photo, j’ai utilisé un petit enregistreur portatif Zoom H1. C’est le plus petit de la famille des Zoom, un modèle au prix raisonnable qui a depuis été remplacé par le H1n (le même, en mieux). Il permet de choisir la qualité d’enregistrement et le format des fichiers. J’ai opté pour stéréo 96KHz en .WAV

De retour à la maison, la première étape délicate m’attendait. Comment récupérer les fichiers du Zoom, fichiers qu’il enregistre sur une carte microSD ? Après quelques recherches et tentatives, le plus simple reste la connexion du Zoom avec l’adaptateur pour appareil photo USB pour iPad, ce modèle avec double port USB/lightning. Pour que l’iPad reconnaisse le Zoom il est impératif de connecter l’adaptateur sur une alimentation via sa prise lightning : le connecteur USB est sur le Zoom, le lightning mâle est sur l’iPad et le lightning femelle est connecté sur un chargeur. Miracle, le Zoom apparaît dans Fichiers et il est possible de glisser les fichiers vers un dossier (sur iCloud dans mon cas).

Enregistrer à la maison : le matériel

C’est normalement la configuration standard pour enregistrer mes podcasts : devant mon bureau. Là encore, la gageure était de réussir à connecter le matériel que j’utilise habituellement avec mon Mac, que cela fonctionne et le tout sans ajouter des contraintes ou des pirouettes pour y arriver. Pour enregistrer, j’utilise ce matériel (dont j’ai déjà parlé ici) :

  • Une interface audio USB est une Focusrite Scarlett 2i4 de la marque Focusrite.
  • Un micro Rode NT1-A connecté en XLR sur la Focusrite qui lui fournit l’alimentation fantôme 48V dont il a besoin.
  • Un casque Audio Technica ATH-M50x.
  • Un Hub USB-A.
  • Un pied micro, un filtre anti-pop et les bons câbles.

En situation, cela donne ça :

Comme vous le constatez, entre temps j’ai reçu mon nouvel iPad, un modèle 11’ 2020 qui dispose d’une entrée USB-C. La configuration que je montre ici est celle qui fonctionne avec un iPad avec entrée USB-A :

  • L’interface audio est branchée en USB-A sur le hub USB qui est un hub avec une alimentation (c’est important). L’iPad est lui-même connecté via un adaptateur au hub. Avec le nouvel iPad, j’aurais pu simplifier la connectique en branchant directement l’interface audio sur l’iPad (pas besoin d’un hub alimenté dans ce cas).
  • Le micro est connecté via sa prise XLR sur l’interface audio.
  • Le casque est également branché sur l’interface audio ce qui me permet de monitorer directement ce qui entre dans celle-ci.

Enregistrer et éditer : le logiciel

J’ai utilisé Ferrite Recording Studio pour l’enregistrement et le montage de l’épisode. Ce logiciel, assez déconcertant au premier abord avec son interface très éloignée des standards Apple, se révèle à la hauteur des mérites que j’avais lus à son sujet. Il faut dire qu’elle a été spécifiquement faite pour faire du montage de voix et qu’elle propose tout ce qu’il faut pour enregistrer, éditer et exporter. Elle est utilisée par de nombreux podcasteurs et journalistes. J’y ai retrouvé toutes les fonctions que j’utilisais dans Logic Pro, la lourdeur en moins. Il faut avouer qu’ils ne jouent pas dans le même registre, Logic Pro offrant bien plus de possibilités en particulier parce qu’il est destiné essentiellement aux musiciens. D’où une certaine lourdeur pour faire des montages simples comme un podcast.

La prise en main de Ferrite nécessite un peu d’apprentissages, car sous un aspect simple, les fonctions sont nombreuses et pas toujours servies par son ergonomie. Le guide utilisateur est très bien fait et on trouve sur YouTube de nombreux tutoriels. J’ai particulièrement appris avec la vidéo de Jason Snell, l’auteur du site Six colors : Editing Demo – Ferrite + iPad + Apple Pencil. Il s’attarde sur les possibilités d’utiliser l’Apple Pencil que Ferrite gère à merveille avec des réglages spécifiques permettant d’accélérer les opérations de montage. Si vous préférez tout faire au clavier, ou même à la souris ou au trackpad, c’est également possible, la réactivité des développeurs pour intégrer les nouvelles possibilités iOS est parmi les meilleures. J’ai pu importer mes fichiers audio depuis iCloud, ma musique d’intro et les ajouter au projet avec ma piste enregistrée à la maison. Une fois les gestes acquis, le montage est facile et même ludique. Et c’est plutôt cool de pouvoir le faire sur son canapé.

Finaliser l’épisode et le publier

Ferrite dispose logiquement de fonctions spécifiques au format Podcast. Outre le choix des formats d’exportation (j’ai choisi du MP3 stéréo 96KHz) vous pouvez inclure dans votre MP3 les informations complémentaires de votre épisode : le type, le titre, le lien de l’épisode, l’illustration et même les chapitres de l’épisode avec illustration pour chaque chapitre. Il est même possible d’exporter au format vidéo pour publier l’épisode sur YouTube par exemple.

J’utilise Affinity Designer pour réaliser la couverture. C’est l’application que j’utilise également sur mon Mac, j’ai pu reprendre mes modèles, les fichiers étant totalement compatibles avec la version iOS.

Une fois exporté sous iCloud il reste quelques étapes pour la mise en ligne. J’utilise la plateforme Libsyn pour l’hébergement de mes fichiers podcast. Le seul moyen disponible pour uploader un ficher est de passer par l’interface web ; avec les dernières versions de Safari sous iOS, il est maintenant possible d’utiliser les versions Desktop des sites web et disposer de toutes leurs fonctionnalités. Je peux donc télécharger mon fichier sans problème depuis l’iPad.

Il reste à publier l’article sur le blog. Si vous êtes novices en podcasting, sachez qu’il faut générer un flux RSS spécifique vers vos épisodes. Cela est tout à fait possible à partir d’un site WordPress grâce à l’extension PowerPress. L’extension permet de créer un article au format spécifique incluant toutes les informations nécessaires à l’alimentation du flux RSS : nom de l’épisode, numéro, notes, illustration et surtout lien vers le fichier (j’indique juste l’URL pointant vers mon ficher MP3 hébergé chez Libsyn). Mes articles de podcast étant formatés un peu différemment des autres articles du site (ils intègrent en particulier un mini lecteur permettant d’écouter l’épisode depuis l’article), je procède par duplication d’un ancien épisode que j’adapte. C’est possible avec l’interface web WordPress ou bien en utilisant l’app iOS qui est maintenant devenue très complète et performante.

Et voilà !

Au final l’opération s’est avérée bien plus simple que je l’imaginais. Une fois la connectique maîtrisée, l’enregistrement ne pose aucun problème. Le montage avec Ferrite est amusant à faire et le reste du processus de publication est aussi simple qu’avec le Mac. Au-delà de la démonstration que c’était possible, j’ai surtout découvert que c’était possible avec une configuration plus légère, mobile et fun. C’est désormais la configuration que je vais utiliser pour mes prochains épisodes.

Mes données rassemblées

Il y a quelques mois, j’avais détaillé comment mes données étaient éparpillées dans une multitude d’outils. Au fil des tests d’applications, tombé sous le charme de la nouveauté je me suis retrouvé avec une panoplie d’outils pour gérer les mêmes types de données. Il fallait faire quelque chose. Je m’étais alors fixé quelques objectifs pour régler le problème :

  • Je ne dois plus avoir à me poser de questions sur l’App à consulter lorsque je veux enregistrer ou chercher des informations.
  • Je veux réussir à diminuer le nombre d’outils.
  • Si possible, les outils doivent pouvoir être disponibles en tant qu’application web ou version Windows pour utilisation au travail en plus des versions macOS et iOS.
  • Je ne m’interdis pas d’abandonner des Apps que j’utilise aujourd’hui.
  • Je dois quand même essayer de résister à la tentation de la nouveauté, l’App du moment qui aura disparu dans un an.

Le défi était de taille il m’a fallu plusieurs mois pour trouver la configuration idéale. Je l’utilise maintenant depuis assez longtemps pour considérer qu’elle me convient pour durer dans le temps et donc vous la partager.

Gérer les notes

C’est la catégorie qui a toujours été la source de mes égarements. Parce que les notes sont de natures différentes (tout peut être considéré comme une note), chaque type de note peut avoir son outil dédié. C’est la situation dans laquelle je me suis retrouvé à force d’essayer des apps et de les adopter pour gérer chacun une catégorie de mes notes. Trouver un outil universel a été compliqué car aux outils que je possédais déjà, j’en ai ajouté d’autres que je voulais tester. Je savais que je voulais abandonner Evernote qui avait perdu à mes yeux l’agilité de ses débuts. Le format propriétaire était aussi un inconvénient, en particulier parce qu’il ne gère pas le format Markdown qui est un gage de portabilité vers d’autres outils. Je me suis donc retourné vers Bear que j’ai utilisé pendant de nombreuses semaines après y avoir transféré l’essentiel des notes que j’avais dans Evernote (les autres sont passées à la poubelle). Bear est certainement le gestionnaire de notes le plus joli, un design et une ergonomie qui invitent à l’écriture. Mais il n’est réellement adapté qu’à la gestion de textes, pas assez costaud pour gérer des pièces attachées (des pdf de factures par exemple), des signets web ou des tableaux.