Tous les billets dev
La plus grosse surprise était peut-être son nom. Apple Vision Pro avec visionOS. Bravo l’équipe marketing. « Reality Pro » avait quelque chose d’irréel et « xrOS » ressemblait à un accident de clavier.
27 juin 2023,
#dev
#visionOS
Nano Notes est une application très simple. Un écran avec la liste des notes et un écran pour modifier une note. Côté code, ça donne une UITableView et une UITextView.
16 mai 2023,
#dev
#iOS
Quand on partage une URL avec UIActivityViewController, iOS propose de la copier dans le presse-papiers. Rien de plus normal. Mais si on compile ce même code pour macOS avec Catalyst, cette option n’est pas proposée.
6 mai 2023,
#dev
#iOS
#macOS
J’avais complètement oublié MiXiT. Ça fait pourtant huit ans que je maintiens mon application, mais cette fois, j’avais oublié.
10 avril 2023,
#dev
#iOS
#macOS
Ce week-end marque le début des vacances de printemps. L’occasion idéale pour mettre à jour PlayGuide, notre annuaire des aires de jeux pour enfants.
8 avril 2023,
#dev
#iOS
#macOS
Développer une application basée sur une API qu’on ne contrôle pas est une source d’inquiétude permanente. C’est le cas avec mon application pour la Bibliothèque Municipale de Grenoble.
15 janvier 2023,
#iOS
#dev
La page d’accueil pour StudioAMANgA.com n’avait pas bougé depuis plusieurs années. Je viens de la mettre à jour, avec des nouveautés visuelles mais aussi un gros changement technique.
13 décembre 2022,
#dev
#web
Depuis plusieurs années, j’avais envie de créer une application pour trouver les aires de jeu autour de chez moi. L’application PlayGuide est maintenant disponible sur l’App Store.
3 décembre 2022,
#dev
#iOS
On peut difficilement ignorer SwiftUI. Au début, il y avait du potentiel et de l’enthousiasme. Ainsi que des limitations et des bugs. Normal ! Les premiers retours étaient prometteurs. Certains développeurs adorent expérimenter avec les technologies balbutiantes. En général, je préfère attendre.
29 septembre 2022,
#dev
#iOS
#SwiftUI
AcknowList existe parce que CocoaPods propose une liste des licences pour un projet : le fichier « acknowledgments.plist ». Que faire pour Swift Package Manager ? On peut toujours intégrer des licences manuellement, mais sans fichier de référence, l’intégration n’est pas vraiment satisfaisante. Quand soudain je découvre le fichier « Package.resolved ».
26 septembre 2022,
#dev
#iOS
Mes notes pour les sessions « Complications and widgets: Reloaded » et « Go further with Complications in WidgetKit » de la WWDC 2022.
24 juin 2022,
#dev
#iOS
#watchOS
Mes notes pour les sessions « Build a desktop-class iPad app » et « Adopt desktop-class editing interactions » de la WWDC 2022.
22 juin 2022,
#dev
#iOS
Mes notes pour la session « What’s new in Swift » de la WWDC 2022.
8 juin 2022,
#dev
#iOS
#macOS
Mes notes pour la session « What’s new in UIKit » de la WWDC 2022.
8 juin 2022,
#dev
#iOS
J’utilise CocoaPods depuis des années pour mes projets personnels et professionnels. Au fil des années, j’ai mis à jour mes bibliothèques open source pour les rendre compatible avec SPM. Et maintenant, je réalise que certaines de mes applications n’ont plus besoin de CocoaPods.
24 mai 2022,
#dev
#iOS
Dans mon article du mois dernier, j’expliquais que Trackup était extensible, offrant des possibilités d’évolution intéressantes. Depuis, j’ai mis en pratique une de ces idées, avec un nouveau package Swift qui présente un historique de versions.
12 mai 2022,
#dev
#iOS
MiXiT, la conférence « avec des crêpes et du cœur », revient les 24 et 25 mai à Lyon. Et comme pour chaque édition, je publie une mise à jour de mon application.
23 avril 2022,
#dev
#iOS
#macOS
Pour tous mes projets perso, j’utilise un système simple pour gérer les développements passés, présents et futurs. En d’autres termes : feuille de route, suivi de progression et notes de version. Tout ça, avec un seul fichier texte.
24 mars 2022,
#dev
La dernière mise à jour d’AcknowList ajoute une interface SwiftUI. Le principe reste le même : la bibliothèque est configurée avec une liste de licenses, et affiche le résultat. En plus des UIViewController (UIKit), il y a donc maintenant des View (SwiftUI).
3 février 2022,
#dev
#iOS
#SwiftUI
Une application iOS peut facilement invoquer Apple Mail. Pour les autres clients mail (Gmail, Outlook, etc), j’ai créé ThirdPartyMailer. Cette bibliothèque utilise les *custom URL schemes* pour invoquer des applications spécifiques, avec certaines options : destinataire du mail, sujet, contenu, CC/BCC. Pratique, mais le développeur doit choisir le client à utiliser, ou offrir ce choix à l’utilisateur dans l’application.
15 janvier 2022,
#dev
#iOS
Je viens de publier 1List version 3. Quoi de neuf ? L’application a une nouvelle interface, toute simple et toute blanche.
27 octobre 2021,
#dev
#iOS
#macOS
Les dernières versions d’iOS ont apporté beaucoup de nouveautés pour les développeurs. Si je devais n’en retenir qu’une, ce serait SF Symbols. Plus qu’une API, c’est une partie intégrante de l’OS, ouverte aux applications tierces.
14 octobre 2021,
#iOS
#dev
Chaque version d’iOS apporte son lot de nouveautés. Mais avant toute chose, il convient de tester l’impact du nouveau SDK sur les fonctionnalités existantes. En d’autres termes, comment éviter les régressions avec les mises à jour d’Xcode ?
26 juillet 2021,
#dev
#iOS
Mes notes pour la session « Embrace Expected Failures in XCTest » de la WWDC 2021.
28 juin 2021,
#dev
#Xcode
Mes notes pour la session « SF Symbols in UIKit and AppKit » de la WWDC 2021.
24 juin 2021,
#dev
#iOS
#macOS
Mes notes pour la session « Use the camera for keyboard input in your app » de la WWDC 2021.
24 juin 2021,
#dev
#iOS
Mes notes pour la session « Focus on iPad keyboard navigation » de la WWDC 2021.
22 juin 2021,
#dev
#iOS
Mes notes pour la session « Your guide to keyboard layout » de la WWDC 2021.
22 juin 2021,
#dev
#iOS
Mes notes pour la session « Customize and resize sheets in UIKit » de la WWDC 2021.
21 juin 2021,
#dev
#iOS
Mes notes pour la session « What’s new in Mac Catalyst » de la WWDC 2021.
21 juin 2021,
#dev
#macOS
Mes notes pour la session « What’s new in Swift » de la WWDC 2021.
18 juin 2021,
#dev
Mes notes pour la session « What’s new in Foundation » de la WWDC 2021.
18 juin 2021,
#dev
#iOS
#macOS
Mes notes pour la session « Elevate your DocC documentation in Xcode » de la WWDC 2021.
15 juin 2021,
#dev
#Xcode
Mes notes pour la session « Meet DocC documentation in Xcode » de la WWDC 2021.
15 juin 2021,
#dev
#Xcode
Mes notes pour la session « Meet TestFlight on Mac » de la WWDC 2021.
14 juin 2021,
#dev
#macOS
Mes notes pour la session « What’s new in UIKit » de la WWDC 2021.
12 juin 2021,
#dev
#iOS
Mes notes pour la session « Meet the Location Button » de la WWDC 2021.
12 juin 2021,
#dev
#iOS
Mes notes pour la session « Meet the UIKit button system » de la WWDC 2021.
9 juin 2021,
#dev
#iOS
Voici Memorii 4, une nouvelle version de mon application d’apprentissage par cartes mémoire. Au programme des nouveautés : l’ajout de vocabulaire coréen, un widget pour les Favorites, et de nombreuses améliorations de l’interface.
31 mai 2021,
#dev
#iOS
#macOS
Au début de l’année, l’indice de qualité de l’air pour Grenoble a évolué, avec une nouvelle échelle allant de 1 à 6. J’avais alors mis à jour mon application Air Grenoble pour refléter ce nouvel indice, mais sans en modifier le format. Air Grenoble 3 apporte une nouvelle interface, mieux adaptée à ce nouvel indice.
18 mai 2021,
#dev
#iOS
#macOS
La conférence MiXiT est de retour les 18, 19 et 20 mai. Le moment est donc venu de mettre à jour mon application. Il y a même quelques nouveautés cette année, avec le partage des sessions, la possibilité d’ajouter une session à votre calendrier, mais aussi une version Mac.
4 mai 2021,
#iOS
#macOS
#dev
Depuis 5 ans, je m’inflige de maintenir VTAck et AcknowList, deux bibliothèques qui implémentent exactement la même chose, en Objective-C et en Swift. Quand un bug est corrigé d’un côté, je le reprends pour l’autre. Quand une fonctionnalité est ajoutée d’un côté, rebelote. Un exercice qui était assez instructif au début, qui devient de plus en plus une corvée.
29 avril 2021,
#dev
#iOS
J’ai commencé à travailler sur VTAcknowledgementsViewController pendant mes vacances de fin d’année 2013. Cette semaine, je viens de publier sa version 2.0.
16 mars 2021,
#dev
#iOS
Comment construire une application pour un service web qui ne dispose pas d’API publique ? Pour la Bibliothèque de Grenoble, je vous avais expliqué que j’utilisais une web view invisible, pilotée par des commandes JavaScript, extrayant les informations des pages HTML. La situation vient de changer avec la dernière mise à jour.
10 mars 2021,
#iOS
#dev
Je viens de mettre à jour mes principaux sites web pour retirer Google Analytics.
5 mars 2021,
#dev
#web
Cette semaine, j’ai renommé les branches principales de tous mes repos, remplaçant les « master » par des « main ».
3 février 2021,
#dev
Les Formatters sont des classes bien utiles. Dernière amélioration remarquable : l’ajout de ListFormatter avec iOS 13.
19 janvier 2021,
#dev
#iOS
« App Clip » était annoncé comme l’une des grandes nouveautés d’iOS 14. Depuis la keynote aux multiples sessions WWDC, en passant par sa mise en avant dans App Store Connect, Apple a tout fait pour encourager son utilisation.
27 novembre 2020,
#dev
#iOS
On peut réellement porter une application iOS sur le Mac en cochant une case dans Xcode. C’est la promesse de Catalyst, qui implémente UIKit sur macOS, pour permettre de compiler un projet mobile en application Mac.
16 novembre 2020,
#dev
#macOS
Depuis un mois, mon application Comic Book Day est sur la page d’accueil du Mac App Store.
19 octobre 2020,
#dev
#macOS
La dernière mise à jour d’Air Grenoble apporte un widget iOS 14. Vous pouvez ainsi afficher la qualité de l’air sur votre écran d’accueil.
28 septembre 2020,
#dev
#iOS
Je viens de publier Comic Book Day 2.0. Mise à jour majeure ! Au programme : une version Mac et la synchronisation iCloud.
14 septembre 2020,
#dev
#iOS
#macOS
Memorii est maintenant disponible sur le Mac App Store, avec synchronisation iCloud des données entre iPhone, iPad et Mac.
5 août 2020,
#dev
#macOS
#iOS
Air Grenoble est maintenant disponible sur le Mac App Store. Vous pouvez ainsi consulter la qualité de l’air depuis votre ordinateur.
3 août 2020,
#dev
#macOS
Mes notes pour les sessions dédiées aux « iOS pickers, menus and actions » de la WWDC 2020.
9 juillet 2020,
#dev
#iOS
Mes notes pour la sessions WWDC 2020 « Swift packages: Resources and localization ».
2 juillet 2020,
#dev
#iOS
Mes notes pour les sessions dédiées aux tests de la WWDC 2020 : « Write tests to fail », « Triage test failures with XCTIssue » et « XCTSkip your tests ».
27 juin 2020,
#dev
#iOS
Je sais bien que l’accessibilité est un sujet important, mais pour être honnête, j’y pense plutôt a posteriori, quand je suis à court d’idées pour de nouvelles fonctionnalités. Heureusement qu’il existe des initiatives comme la Journée Mondiale de Sensibilisation à l’Accessibilité pour me secouer un peu.
15 juin 2020,
#dev
#iOS
Un écran de lancement iOS doit passer par un storyboard avec uniquement des classes de base. Et si votre projet supporte encore iOS 10, un asset catalog ne peut pas inclure des couleurs personnalisées. Tout cela signifie a priori qu’il est impossible de supporter le mode sombre au lancement. Flash blanc aveuglant garanti à chaque fois.
14 mai 2020,
#dev
#iOS
La dernière mise à jour de Games Keeper ajoute la possibilité de chercher dans l’historique des parties. Vous pouvez chercher le nom d’un joueur ou le titre de la partie. Pour aller plus vite, la liste complète des joueurs et des titres est affichée en dessous du champ de recherche.
27 avril 2020,
#dev
#iOS
Les nouveautés du SDK iOS 13.4 ont ravivé mon intérêt pour la prise en charge du clavier.
21 février 2020,
#dev
#iOS
Une bonne complication Apple Watch doit être actualisée aussi souvent que nécessaire pour garder l’information toujours fraîche, mais aussi rarement que possible pour économiser la batterie.
8 février 2020,
#dev
#watchOS
Les SF Symbols sont une collection d’icônes standardisées pour iOS 13, mise à disposition par Apple pour les applications tierces. J’apprécie énormément de pouvoir les inclure dans mes propres applications, me débarrassant au passage des alternatives plus ou moins satisfaisantes que j’utilisais jusqu’à présent. Il y a juste un problème.
22 janvier 2020,
#dev
#iOS
Xcode 11 facilite la manipulation des optionnels dans les tests unitaires en introduisant une nouvelle fonction : XCTUnwrap.
13 janvier 2020,
#dev
#Swift
Les notifications ont une importance particulière. iOS offre aux utilisateurs de nombreuses options pour les contrôler, mais tout repose sur la fameuse question : « Autorisez-vous cette application à vous envoyer des notifications ? »
27 novembre 2019,
#dev
#iOS
J’ai récemment mis à jour Air Grenoble pour que son Extension Siri émette un « output ». Mais à quoi ça sert ? Voici un exemple : un utilisateur peut ajouter une notification personnalisée à une application qui n’en propose pas. Plus concrètement, je souhaite recevoir une notification tous les matins quand la qualité de l’air pour la journée s’annonce mauvaise.
8 novembre 2019,
#dev
#iOS
C’est plus fort que moi. Quand j’utilise fréquemment un service qui ne propose pas d’application mobile… je finis par créer moi-même l’application manquante. L’envie est encore plus forte quand le site web en question est mal adapté pour un écran mobile.
25 octobre 2019,
#iOS
#app
#dev
Le formidable succès de CocoaPods ne pouvait aboutir qu’à une seule chose : la création par Apple d’un outil similaire, plus limité, mais mieux intégré au reste de l’écosystème. C’est donc Swift Package Manager (SPM). Le projet existe depuis 2015, mais la communauté des développeurs iOS semble y porter un plus grand intérêt cette année avec son intégration à Xcode 11.
11 octobre 2019,
#dev
#Swift
Je n’ai jamais vraiment été satisfait de l’interface de Games Keeper. Depuis sa première version, elle ressemble davantage à un prototype qu’à une application aboutie. En l’adaptant pour iOS 13, j’ai développé une nouvelle interface qui me paraît plus plaisante, tout en restant cohérente avec le fonctionnement de l’application. Je ne dirais pas que je suis pleinement satisfait du résultat, mais il s’agit d’une amélioration significative. Voici donc Games Keeper 3.
27 septembre 2019,
#iOS
#app
#dev
Air Grenoble souffle sa deuxième bougie avec la sortie d’une version 2.3 accompagnant iOS 13. Voici le tour des nouveautés.
20 septembre 2019,
#iOS
#app
#dev
Les captures d’écran sont incontournables sur l’App Store. Elles sont obligatoires pour publier une application, mais surtout elles sont importantes pour communiquer avec un futur utilisateur potentiel, et le convaincre d’installer l’application.
28 août 2019,
#dev
#iOS
Si vous consultez un site web avec le mode sombre d’iOS 13 ou de macOS Mojave activé, vous serez probablement gêné de découvrir un texte noir sur un fond de page éblouissant, tranchant avec le reste de vos applications. Par défaut, un contenu web ne s’adapte pas au mode sombre.
27 août 2019,
#dev
#web
Le mode sombre ne laisse pas indifférent. Mais que vous soyez enthousiasmé ou consterné, Apple annonce « Dark Mode » comme la nouveauté principale d’iOS 13. Si vous développez une application iPhone ou iPad, ça signifie qu’il vous faudra supporter cette fonctionnalité aussi tôt que possible.
17 juillet 2019,
#dev
#iOS
iOS 13 change beaucoup de petites choses pour les barres de navigation. Le plus frappant, peut-être, est qu’une barre avec un grand titre fusionne complètement avec le fond de la vue principale. La « barre » disparaît, pour ne laisser que le titre et les éventuels boutons de chaque côté.
5 juillet 2019,
#dev
#iOS
Mes notes pour la session 208 de la WWDC 2019 : Creating Independent Watch Apps.
20 juin 2019,
#dev
#iOS
#watchOS
Mes notes pour la session 224 de la WWDC 2019 : Modernizing Your UI for iOS 13.
19 juin 2019,
#dev
#iOS
Mes notes pour la session 259 de la WWDC 2019 : Targeting Content with Multiple Windows.
15 juin 2019,
#dev
#iOS
Mes notes pour la session 258 de la WWDC 2019 : Architecting Your App for Multiple Windows.
15 juin 2019,
#dev
#iOS
Mes notes pour la session 212 de la WWDC 2019 : Introducing Multiple Windows on iPad.
14 juin 2019,
#dev
#iOS
Mes notes pour la session 239 de la WWDC 2019 : Great Developer Habits.
13 juin 2019,
#dev
#iOS
#macOS
Mes notes pour la session 221 de la WWDC 2019 : Introducing PencilKit.
12 juin 2019,
#dev
#iOS
Mes notes pour la session 511 de la WWDC 2019 : Supporting Dark Mode in Your Web Content.
11 juin 2019,
#dev
#macOS
#iOS
#web
Mes notes pour la session 214 de la WWDC 2019 : Implementing Dark Mode on iOS.
9 juin 2019,
#dev
#iOS
Mes notes pour la session 206 de la WWDC 2019 : Introducing SFÂ Symbols.
8 juin 2019,
#dev
#iOS
#macOS
Mes notes pour la session 801 de la WWDC 2019 : What’s New in iOS and macOS Design.
7 juin 2019,
#dev
#iOS
#macOS
De nombreuses applications iOS proposent un mode sombre. macOS propose un mode sombre, et une API pour les applications qui veulent l’adopter. Tout porte à croire qu’iOS 13, quand il sera présenté le mois prochain, proposera un mode sombre. Le mode sombre est à la mode.
23 mai 2019,
#iOS
#app
#dev
Je vous propose un petit jeu. Pendant plusieures années, l’écran principal de mon application Games Keeper affichait un bug. Saurez-vous le trouver sur cette image ?
13 mai 2019,
#dev
#iOS
Parfois, je veux lire sur mon Apple Watch. Oui, l’écran a la taille d’un timbre. Apple a sûrement une bonne raison pour ne pas proposer son application Notes sur watchOS. Mais, parfois, je veux lire sur mon Apple Watch. J’ai donc décidé de développer une application pour remplir ce rôle. Elle s’appelle Nano Notes, et vous pouvez la télécharger gratuitement sur l’App Store.
25 avril 2019,
#iOS
#app
#dev
J’ai découvert cette astuce avec un billet de Paul Hudson, sur une idée partagée en 2016 par Maciej Konieczny. Plutôt que d’utiliser des booléens, il est souvent préférable de déclarer des énumérations à deux valeurs.
25 mars 2019,
#dev
#Swift
#Objective-C
La conférence lyonnaise MiXiT vient d’annoncer son programme pour l’édition 2019, ce qui me permet de mettre à jour mon application iOS. Voici donc la version 5 (cinquième année, déjà ), prête pour la conférence qui aura lieu les 23 et 24 mai.
14 mars 2019,
#mixit
#iOS
#app
#dev
Pour proposer davantage de fonctionnalités sur un écran si petit, WatchKit permet d’afficher des menus contextuels (« context menus » en VO). À n’importe quel moment, l’utilisateur peut appuyer fort sur l’Apple Watch pour faire apparaître des actions associées à l’écran actif.
20 février 2019,
#dev
#watchOS
Memorii est une application de mémorisation de vocabulaire pour l’étude d’une langue étrangère. Elle fonctionne sur le principe des cartes mémoire : on y entre des listes de mots, et l’application fait défiler cette liste de différentes façons pour faire travailler la mémoire.
12 février 2019,
#iOS
#app
#dev
Je fais parfois des erreurs vraiment basiques. Par exemple, je viens de comprendre la cause d’un bug qui me contrariait depuis plusieurs semaines. Mon erreur : j’utilisais un dictionnaire à la place d’un tableau.
26 novembre 2018,
#dev
#iOS
#Swift
L’application Raccourcis fonctionne comme la plupart des systèmes de programmation « visuelle » : avec des blocs, prenant des valeurs en entrée, et produisant d’autres valeurs en sortie. Input/output classique. Avec iOS 12, l’application Raccourcis gère un nouveau type de bloc, les... Raccourcis Siri, c’est-à -dire des actions spécifiques, proposées par une application.
2 octobre 2018,
#iOS
#app
#dev
Les « Siri Shortcuts » sont une des principales nouveautés d’iOS 12. Une fonctionnalité très prometteuse, mais un peu difficile à résumer, et qui va au-delà de Siri l’assistant vocal. Plus généralement, il s’agit en fait de marquer certaines activités se déroulant au sein d’une application, pour ensuite laisser le système les exposer en dehors de l’application elle-même. Avec une commande Siri, donc, mais aussi sur l’écran d’accueil, l’écran de recherche, ou avec la nouvelle application « Raccourcis ».
17 septembre 2018,
#iOS
#app
#dev
Développer pour iOS en 2018, c’est encore et toujours une histoire de UITableView. Les protocoles de data source et de delegate n’ont pas vraiment changé depuis iPhone OS 2, mais on continue à débattre des mille et une façons de les implémenter. Swift, en particulier, apporte de nouvelles solutions.
7 septembre 2018,
#iOS
#app
#dev
UIKit permet d’animer facilement n’importe quel élément affiché à l’écran. Il convient évidemment de faire preuve de retenue pour ne pas détruire son interface avec une avalanche d’animations, mais il faut aussi savoir s’amuser, et une petite dose d’animation suffit parfois à rendre une application unique et plus agréable à utiliser.
30 août 2018,
#iOS
#app
#dev
L’icône a un rôle essentiel de représentation. Difficile de la changer trop souvent sans déstabiliser inutilement ceux qui ont l’habitude de la voir sur leur écran d’accueil. Mais une « v2 » est toujours une bonne opportunité pour rafraîchir et améliorer l’icône.
23 août 2018,
#iOS
#app
#dev
« Air Grenoble » est une petite application iOS qui permet de consulter facilement l’indice de qualité de l’air. C’est un projet qui me plaît beaucoup, pour plusieurs raisons.
16 août 2018,
#iOS
#app
#dev
Doucement mais sûrement, Apple améliore ses outils pour le « testing » des applications (tests unitaires, intégration continue, etc). Voici le compte-rendu de la session « WWDC 2018 - What’s New in Testing », avec tous les changements apportés cette année.
22 juin 2018,
#dev
#iOS
#Xcode
#unit test
Contact[s] est une application de gestion de carnet d’adresses, qui permet de configurer un client mail tiers. La dernière mise à jour apporte la prise en charge de Microsoft Outlook et Yahoo Mail. En coulisses, le changement est plus significatif : l’application utilise maintenant ThirdPartyMailer, un projet open source qui se concentre sur cette gestion des clients mail.
2 juin 2018,
#iOS
#app
#dev
C’est bien connu, on adore débugger un problème avec NSLog() ou print. On sait bien qu’il existe des outils plus adaptés pour suivre le déroulement d’un programme, mais on préfère souvent ce bon vieux loggeur, facile à mettre en place, facile à maîtriser.
18 mai 2018,
#dev
#Xcode
Depuis quelques temps, j’essaie de poster régulièrement sur Twitter des « astuces » pour mes applications iOS. Se faire remarquer sur l’App Store est un art difficile. Très difficile, surtout quand on est un petit développeur amateur. Twitter est un moyen de communication utile, qui a l’avantage d’être rapide à alimenter.
7 mai 2018,
#dev
#iOS
#Twitter
Localiser une application est une tâche difficile, qui implique de nombreux aspects au-delà de la simple traduction de texte. iOS inclut des outils qui peuvent faciliter cette localisation, et l’adapter aux réglages de l’utilisateur.
19 avril 2018,
#dev
#iOS
MiXiT est une conférence très sympathique pour beaucoup de raisons, mais notamment parce qu’elle propose une API simple pour consulter le programme. Je trouve que c’est une excellente occasion pour construire une petite application.
12 avril 2018,
#mixit
#iOS
#app
#dev
J’utilise OCMock pour écrire des tests unitaires avec Objective-C depuis plusieurs années, mais je viens tout de juste de découvrir un nouveau cas d’utilisation, pas vraiment évident, mais bien pratique. Il s’agit de configurer un mock pour invoquer un block passé en paramètre.
8 mars 2018,
#dev
#Objective-C
#unit test
Les App Extensions gagnent chaque année en importance. Depuis leur introduction avec iOS 8, elles fonctionnent essentiellement comme des applications indépendantes, avec notamment leur propre numéro de version.
16 février 2018,
#dev
#Xcode
L’importance des notations sur l’App Store a généralisé le concept du « Please rate this app ». Ces alertes encouragent, de façon plus ou moins insistante, l’utilisateur à laisser un avis sur l’App Store. Tout ça pour obtenir le plus de ★★★★★.
28 juin 2017,
#dev
#iOS
Dès qu’une nouvelle version d’iOS arrive, on aimerait pouvoir abandonner les précédentes. D’une part, pour bénéficier des dernières APIs, mais aussi pour simplifier les conditions d’exécution du code. Or, avec un peu de pragmatisme, il convient généralement de supporter une ou deux versions antérieures afin de ne pas exclure une partie des utilisateurs potentiels.
30 mai 2017,
#iOS
#Xcode
#dev
« UITableView » est un élément fondamental de l’interface d’iOS depuis la toute première version du SDK. Elle s’organise en deux niveaux : des sections, et des lignes. Rien de compliqué lorsque le contenu est statique. Mais les choses peuvent vite se corser quand ces sections et ces lignes apparaissent dynamiquement.
27 février 2017,
#dev
#Swift
#UIKit
À la création d’un nouveau fichier, Xcode insère systématiquement un en-tête contenant des renseignements de base : nom du fichier et du projet, le créateur, la date de création, et le nom de l’organisation attachée au projet.
26 janvier 2017,
#dev
Pour garantir la bonne qualité d’un code source, on conseille souvent de garder les fonctions courtes. Au-delà d’une dizaine de lignes, mieux vaut re-découper. C’est généralement une bonne règle à suivre, mais qui peut entraîner un nouveau problème. En effet, cette contrainte favorise des fonctions plus concises, mais parfois trop fragmentées, ce qui nuit à la lisibilité du code dans son ensemble.
18 janvier 2017,
#Objective-C
#dev
Tous les ans c’est la même chose. Une nouvelle version d’iOS arrive, avec son SDK et ses API, et autant de nouvelles opportunités. Je voulais donc en profiter pour construire une nouvelle app, et essayer d’être présent dès le premier jour de disponibilité de l’OS.
8 novembre 2016,
#iOS
#dev
La nouvelle édition de Mix-IT se déroulera la semaine prochaine, c’était donc le bon moment pour mettre à jour mon app iOS permettant d’en consulter le programme, initialement publiée l’année dernière.
17 avril 2016,
#mixit
#iOS
#app
#dev
J’ai récemment eu l’occasion de mettre à jour une application pour watchOS 2. Un peu en retard, pour un OS disponible depuis septembre dernier. Mais ce passage n’est pas anodin, car le mode de fonctionnement des apps s’en trouve littéralement renversé.
12 février 2016,
#dev
#watchOS
#WatchKit
Comment découper son code en méthodes/fonctions ? Quel est le bon moment pour choisir d’écrire une nouvelle méthode, plutôt que de simplement continuer avec celle déjà existante ? Ces questions sont terriblement basiques, mais je continue de me les poser continuellement.
24 janvier 2016,
#dev
Après les « nullability annotations » d’Xcode 6.3, voici les « generics » d’Xcode 7. L’intention est la même : faire évoluer Objective-C pour faciliter son interopérabilité avec Swift. Avec, au passage, l’occasion d’améliorer la qualité du code Objective-C pour lui-même, en permettant à Xcode de détecter toute une nouvelle catégorie de bugs.
27 novembre 2015,
#Objective-C
#Xcode
#dev
Tous les ans c’est la même chose, Apple garde quelques API en surprise pour la sortie d’iOS au mois de septembre. Avec iOS 9 et les écrans 3D Touch des nouveaux iPhones, voici donc « Peek » et « Pop », qui remportent conjointement le prix de l’API au nom le plus ridicule à porter. Du côté du code, par contre, il est question de « view controller previewing » et de « commit » du preview, le tout restant associé à Force Touch.
3 octobre 2015,
#iOS
#UIKit
#dev
Cette semaine, j’ai publié une première version d’AcknowList, une bibliothèque en Swift pour afficher les licences CocoaPods à l’intérieur d’une application. Si ça vous rappelle quelque chose, c’est parce que j’avais initialement créé ce projet en Objective-C, il y a presque deux ans. Les temps changent, il faut s’adapter. Toutes les occasions de mettre Swift en pratique sont bonnes à prendre, et on peut bien sûr en tirer quelques leçons.
27 septembre 2015,
#Swift
#CocoaPods
#dev
Une nouvelle API à la fois simple d’utilisation et intéressante pour la plupart des apps : une combinaison comme on les aime. Avec iOS 9, on peut donc indexer le contenu d’une application, afin de rendre des données accessibles à tout moment depuis le champs de recherche système (a.k.a. « Spotlight »). Une opportunité plutôt rare dans un OS où chaque app est soigneusement sandboxée. Il faudra encore attendre pour une éventuelle API Siri, mais cette nouveauté constitue déjà une amélioration importante.
12 septembre 2015,
#iOS
#dev
Mon dernier billet de blog présentait les « nullability annotations », en essayant d’expliquer comment elles contribuent à améliorer un code Objective-C. Avec un peu de recul, et après davantage de temps passé à les mettre en pratique, ces annotations me posent un problème. Un cas particulier, peut-être, mais absolument incontournable, puisqu’il s’agit de l’initialisation des objets.
11 août 2015,
#Objective-C
#Xcode
#dev
J’adore quand Xcode trouve des bugs dans mon code. C’est un peu comme si une IA passait mon travail en revue pour m’aider à l’améliorer. Le pair-programming du futur, sans doute.
26 juillet 2015,
#Objective-C
#Xcode
#dev
Safari n’est pas exactement le navigateur favori des développeurs web. Il dispose cependant d’une fonctionnalité, un peu cachée et donc relativement méconnue, qui vaut vraiment le détour lorsqu’il s’agit de concevoir un site (ou une app) mobile. Je n’ai probablement pas à vous convaincre de l’intérêt du Web Inspector. Depuis Firebug jusqu’aux _DevTools_ de Chrome, la possibilité d’explorer le DOM avec une interface graphique est devenue incontournable. Mais comment faire pour un smartphone ou une tablette, quand le navigateur mobile ne dispose pas d’une telle fonctionnalité ? Dans le cas d’iOS, Safari s’en occupe très bien, encore faut-il savoir l’activer.
28 juin 2015,
#iOS
#web
#dev
On peut dire que la WWDC est vraiment devenue « worldwide » depuis qu’Apple diffuse les vidéos des sessions pendant le courant de la semaine, allant cette année jusqu’à proposer plusieurs retransmissions en direct. Bref, San Francisco ou pas, tout le monde peut bénéficier de cette avalanche d’informations. Nouvelles versions des OS, nouvelles API, il y a forcément beaucoup de choses à dire, je ne vais donc pas me priver d’y ajouter mon commentaire.
17 juin 2015,
#WWDC
#iOS
#OS X
#watchOS
#dev
Parmi les premières apps Apple Watch disponibles, on trouve de nombreux gestionnaires de rappels. Clear, Wunderlist, Things, tous ont répondu à l’appel de WatchKit. Tous ? Non ! Une application fait clairement défaut : Reminders, a.k.a. Rappels, l’application d’Apple. Vous pouvez demander à Siri de créer un nouveau rappel depuis votre montre, mais vous ne pouvez pas les consulter.
17 mai 2015,
#Apple Watch
#WatchKit
#dev
Comment développer des applications sans jamais avoir utilisé l’OS concerné, ni même la classe de produit en question ? C’est le casse-tête posé par Apple aux développeurs tiers depuis quelques mois avec WatchKit, le SDK de l’Apple Watch. Le grand jour est arrivé, la montre est enfin disponible (pour les pré-commandes les plus rapides), et l’App Store Apple Watch contient environ 3000 apps. Ce nombre est comparable aux apps iPad pour le lancement de la tablette, alors que l’iPhone n’avait de 500 apps pour l’ouverture de l’App Store en 2008. Dernier chiffre pour mettre tout ça en perspective, on trouve environ 1,4 million d’apps iPhone aujourd’hui.
26 avril 2015,
#Apple Watch
#WatchKit
#dev
Mix-IT, c’est un peu la WWDC lyonnaise. L’année dernière, la conférence avait vendu tous les billets en 48 heures ; cette année il aura suffit de 3 heures.
4 avril 2015,
#mixit
#iOS
#dev
Je ne me suis pas franchement jeté sur Swift après l’annonce de la WWDC 2014, mais dotSwift est passé par là , et voici maintenant ma première application Swift disponible sur l’App Store (pour être précis, l’application principale est en Swift, l’extension du clavier est encore en Objective-C). À défaut d’être original, je pense que c’est le bon moment pour un premier bilan de ma courte expérience avec ce nouveau langage qui s’annonce, rappelons-le, comme l’avenir du développement pour les plateformes Apple.
29 mars 2015,
#Swift
#dev
La première fois qu’on me l’a présenté, CocoaPods m’avait laissé sceptique. Gérer ses dépendances et configurer un workspace Xcode était déjà assez compliqué comme ça, pas besoin de rajouter un outil tiers par dessus tout le reste. Bien sûr, c’est pourtant exactement pour cela que CocoaPods est si intéressant, parce qu’aucun développeur Objective-C ne devrait avoir à configurer un workspace pour une quelconque dépendance, ou mettre à jour un code tiers en téléchargeant une archive zip sur GitHub pour ensuite déplacer manuellement un ensemble de fichiers.
19 mars 2015,
#CocoaPods
#dev
Coincé entre la déferlante iOS et la montée en puissance des web apps, le développement OS X n’est pas franchement au centre des attentions. Il s’agit pourtant d’une plateforme toujours intéressante, pour plusieurs raisons.
15 février 2015,
#dev
#Cocoa
#OSÂ X
La qualité d’un code source est avant tout une question de structure. Lorsque je relis un code (notamment le mien), mon premier reproche concerne très souvent le manque de structure. Il n’existe pas de solution universelle, mais les bonnes pratiques en la matière permettent vraiment de développer plus efficacement, seul ou à plusieurs sur un projet. Voici donc un résumé des points qui me paraissent les plus importants pour bien structurer un code Objective-C.
25 octobre 2014,
#code
#dev
#Objective-C
#Cocoa