Contexte et limites de Finder

Le Finder de macOS repose sur un système de dossiers hiérarchiques hérité des premiers systèmes de fichiers. Chaque fichier possède un chemin absolu, par exemple /Users/John/Desktop/file.pdf. Cette organisation oblige l'utilisateur à mémoriser l'emplacement ou à recourir à Spotlight, qui indexe le contenu mais nécessite des mots‑clés pertinents. L'article cite plus de 1 000 fichiers stockés sur le bureau d’un utilisateur, illustrant la difficulté de navigation lorsqu’une arborescence devient plate et volumineuse. Le modèle actuel ne propose aucune vue globale qui permette de parcourir visuellement l’ensemble des objets sans connaître leur répertoire.

Architecture proposée par Kepter

Kepter introduit une « drawer » qui agrège tous les fichiers de l’utilisateur dans une interface unique, éliminant la dépendance à la hiérarchie. L'application parcourt le disque à l’aide de l’API FileManager de macOS, récupère les métadonnées (type, taille, date) et génère des vignettes. Les données sont ensuite stockées dans une base SQLite locale pour un accès rapide. Le flux de travail se résume ainsi : scan du disque → création d’un index SQLite → affichage en grille ou en liste dynamique. Le code suivant montre le point d’entrée du scan :

let fm = FileManager.default
let homeURL = FileManager.default.homeDirectoryForCurrentUser
let urls = try fm.contentsOfDirectory(at: homeURL, includingPropertiesForKeys: [.isDirectoryKey], options: [])

Cette approche minimise les appels système répétés, car l’indexation ne se refait que lors de modifications détectées via FSEvents.

Analyse des performances et de la scalabilité

Le prototype a été testé avec plus de 20 utilisateurs, chacun disposant de plusieurs dizaines de milliers de fichiers. L’index SQLite, limité à 2 GB par défaut, a contenu jusqu’à 150 000 entrées sans dépassement de la mémoire vive, grâce à l’utilisation de colonnes d’index sur le nom et le type de fichier. Le temps moyen de création d’index sur un disque SSD de 512 GB est de 12 s, alors que la recherche instantanée dans l’interface répond en moins de 200 ms, bien en dessous du délai perceptible par l’utilisateur. En revanche, sur des disques HDD, le scan initial monte à 45 s, ce qui indique une dépendance forte à la bande passante d’E/S.

Implications pour l’expérience utilisateur

En supprimant la contrainte de localisation, Kepter libère la charge cognitive liée à la mémorisation des chemins. L’affichage visuel permet de repérer un fichier par son icône ou sa miniature, ce qui réduit le nombre d’interactions nécessaires pour atteindre l’objet cible. Cependant, l’absence de structure hiérarchique peut compliquer la gestion de permissions spécifiques, car les ACL macOS restent attachées aux dossiers d’origine. Une solution consiste à conserver les chemins réels en arrière‑plan et à appliquer les droits lors de l’ouverture du fichier, ce qui ajoute une couche de vérification au moment de l’accès.