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.

Lien : My 11-inch iPad Pro Experiment

Ryan Christoffel nous livre un article très documenté sur l’utilisation comparée des deux tailles d’iPad disponibles. Lorsque j’ai voulu remplacer mon iPad 10’5 j’ai longuement pesé ce choix. En voulant faire de l’iPad mon ordinateur principal, le choix naturel était plutôt pour le grand modèle mais mon utilisation en mode tablette est aussi très fréquente et donc plus adaptée au modèle 11 pouces.

Sans surprise, Ryan arrive à la même conclusion :

Both devices can work in both modes, but the 11-inch is a better tablet, and the 12.9-inch is a better laptop.

L’article mérite néanmoins la lecture car en tant que possesseur d’un modèle 12.9’, il a été surpris par la versatilité du modèle 11’ en particulier pour ce qui me paraissait le plus gênant : l’utilisation en mode split view. Je suis assez d’accord avec lui sur le fait que ça fonctionne très bien aussi sur le petit modèle. Quant à moi, j’ai fini par opter pour le modèle 11’ car ayant pris en main le 12.9’ j’avais réellement l’impression d’avoir une tablette gigantesque dans les mains, pas très portable et surtout l’impression d’avoir un appareil qui n’était pas (plus) vraiment un iPad.

Et comme on est jamais totalement satisfait, je rêve d’un modèle intermédiaire, par exemple 11.7 mais il ne semble pas être dans les cartons d’Apple qui plancherait plutôt pour un modèle géant capable concurrencer les « vrais » ordinateurs.

Magic Keyboard pour iPad Pro : Avis rapide et touche Echap

J’utilise maintenant le Magic Keyboard depuis une dizaine de jours sur mon iPad Pro 11’. Je ne vais pas faire une revue complète, il y a des centaines de tests disponibles et vous devez en avoir vu passer déjà beaucoup trop.

Pour ma part, le Magic Keyboard a complètement transformé ma façon d’utiliser l’iPad, confirmant plus que jamais son statut de vrai ordinateur. Il convient parfaitement à mon utilisation : idéal pour saisir du texte et naviguer entre apps quand je travaille sur un article, je peux facilement ôter l’iPad pour une utilisation chill sur le canapé. La navigation avec le trackpad devient vite naturelle et complètement intégrée à iPadOS. Alors que l’utilisation à la souris semble un peu contre nature sur l’iPad, avec le trackpad on a l’impression qu’il a été pensé pour cette utilisation. Il tombe sous les doigts sans avoir à quitter le clavier. J’avoue qu’Apple a bien joué ce coup, sans dénaturer l’OS d’origine, ils ont réussi à ajouter quelques petites touches qui préparaient cette arrivée sans qu’on s’en aperçoive vraiment. Le clavier en lui-même est très agréable, solide, juste la bonne résistance pour des utilisations prolongées. Le rétroéclairage, en plus d’être pratique, donne un côté qualitatif et esthétique à l’ensemble. Le trackpad a un toucher très doux et précis ; les gestes deviennent vite naturels et la navigation dans l’interface de l’iPad est très proche de celle du toucher, chose que la souris ne parvient pas à reproduire aussi naturellement. Vous l’avez compris, je suis fan. Je peux comprendre les reproches que certains font : en particulier le poids, le fait qu’on ne peut l’ouvrir complètement et qu’il ne remplace pas vraiment un Smart Folio ou même le Smart Keyboard Folio. Tout cela est vrai, mais cela dépend aussi de votre utilisation. Je le considère presque comme un dock sur lequel je peux poser mon iPad pour travailler confortablement et l’enlever facilement quand je le souhaite.

Je lui trouve néanmoins quelques défauts. Mon grief principal concerne l’angle d’inclinaison de l’écran. Peu de testeurs ont relevé cela, je dois avoir une utilisation un peu particulière. Lorsque je suis assis, j’aime avoir l’écran un peu basculé vers l’arrière, voire très basculé vers l’arrière si je suis assis en hauteur et/ou avec l’iPad rapproché de moi. Dans les premiers jours d’utilisation, je n’arrivais pas à trouver une inclinaison suffisamment confortable par rapport à mes habitudes. C’est dommage, je pense que quelques degrés supplémentaires étaient possibles sans compromettre l’équilibre de l’ensemble, au moins sur la version 11’, l’iPad étant plus léger. Avec l’iPad sur ses genoux, assis dans un canapé comme actuellement, c’est mieux. Sur un bureau, il faut un peu éloigner l’ensemble.

L’autre point à relever est assez mineur mais devient évident dès les premières minutes d’utilisation. Le réflexe d’appuyer sur la touche Echap est naturel quand on utilise un clavier. Ici, ce geste tombe dans le vide (ou sur la touche #/@ qui est à son emplacement logique) : pas de touche Echap. Il existe cependant deux moyens de contournement pour remplir cette fonction.

Le premier est un raccourci clavier Cmd-. (Commande-Point). Malheureusement, ce raccourci a été pensé à l’origine pour les claviers QWERTY qui disposent du point en accès direct. Avec un clavier AZERTY, le raccourci est beaucoup moins facile car le point est la majuscule du point-virgule. Faire Cmd-Maj-; pour annuler est tout sauf naturel, donc inutilisable au quotidien.

L’autre possibilité est offerte par un nouveau réglage accessible dans Réglages > Général > Clavier > Clavier physique > Touches de modification. Ce réglage permet de spécifier ce que font les touches de modification (Verr. MAJ, Cmd, Option, Ctrl et Globe). Par défaut chacune fait très logiquement ce qu’elle doit faire : Cmd fait Cmd, Option Option, etc. Cependant, on peut les modifier et ô surprise, l’action « Echap » fait partie des choix pour ces touches. Quand on y réfléchit cette proposition est assez étrange, cela sent l’ajout de dernière minute pour compenser un oubli. Je vous conseille d’affecter l’action « Echap » à la touche Globe dont la fonction d’origine est de changer de clavier. Vous perdrez l’activation du sélecteur de clavier avec la touche Globe mais le sélecteur est facilement appelable par une séquence de touche (qui existe aussi sur Mac) : Ctrl-Espace. On s’y fait assez vite.

Des Apps pour votre iPad

Si, comme moi, votre iPad est en train de devenir votre ordinateur principal, cette vidéo de Christopher Lawley devrait être une grande source d’inspiration pour trouver les Apps qu’il vous faut. Il décrit également les nombreux Shortcuts qu’il a développés pour faire de son iPad un outil de travail plus productif (avec les liens pour les télécharger).

J’utilise une grande partie de ses Apps, certaines ne me sont pas utiles, mais j’en ai repéré une ou deux qui pourraient m’intéresser.