Introduction

En tant que développeur macOS / iOS expérimenté, j'ai récemment tenté de créer une application de chat simple avec prise en charge Markdown en utilisant Swift et SwiftUI. Cependant, j'ai constaté que les outils natifs sont encore immatures pour les écrans complexes et les rendus de texte.

Contexte Technique

Pour créer une application de chat avec prise en charge Markdown, j'ai d'abord utilisé SwiftUI, mais j'ai rencontré des problèmes de performance et de sélection de texte. J'ai ensuite essayé de utiliser NSTextView, mais j'ai perdu les avantages de la performance et des tests que j'avais obtenus avec SwiftUI. J'ai également exploré les possibilités d'AppKit et de NSCollectionView, mais j'ai rencontré des problèmes de blinking et de performances.

J'ai également tenté d'utiliser WebKit pour rendre le Markdown, ce qui a fonctionné, mais avec des limitations. Finalement, j'ai décidé d'utiliser Electron, ce qui m'a permis d'obtenir des performances et des fonctionnalités que je n'avais pas pu obtenir avec les outils natifs.

Analyse et Implications

Cette expérience m'a montré que les outils natifs d'Apple, tels que SwiftUI et AppKit, ne sont pas adaptés pour les applications de chat avec prise en charge de texte riche. Les limitations de ces outils peuvent entraîner des problèmes de performance, de sélection de texte et de rendu de Markdown. En revanche, les solutions basées sur le web, telles que Electron, peuvent offrir des performances et des fonctionnalités supérieures pour les applications de chat.

Perspective

Il est important de noter que les outils natifs d'Apple sont toujours utiles pour les applications simples et les parties critiques en termes de performances. Cependant, pour les applications de chat avec prise en charge de texte riche, les solutions basées sur le web peuvent être une meilleure option. Il est essentiel de prendre en compte les limitations et les avantages de chaque approche pour choisir la meilleure solution pour son projet.