Bonjour. Je suis étudiant en médecine et, depuis deux mois, j’apprends seul le vibe coding tout en développant une app pour la barre de menus de macOS. Je la lance aujourd’hui !
MiniAI - Ce que fait l’app
Vous pouvez sélectionner du texte n’importe où puis appuyer sur le raccourci clavier défini, et une petite fenêtre s’ouvre dans la barre de menus pour laisser l’IA vous l’expliquer. L’idée clé, c’est d’éliminer l’aller-retour vers le navigateur pour faire une recherche Google puis revenir.
Au départ, je l’ai créée parce que je trouvais pénible de chercher les termes que je ne connaissais pas en lisant des articles scientifiques, mais une fois terminée, je me suis rendu compte que je l’utilisais aussi dans plein d’autres situations, comme pour rédiger des e-mails en anglais ou lire du code.
Stack technique
- UI: NSPanel + SwiftUI (floating window d’une app de barre de menus)
- Réponses IA: effet de frappe en temps réel via streaming SSE
- Backend: proxy d’API avec Supabase Edge Function (pour éviter d’embarquer la clé API dans le client)
- Rate limiting: limitation par utilisateur basée sur PostgreSQL
- Déploiement: signature Developer ID + notarization terminée
La partie sur laquelle j’ai passé le plus de temps pendant le développement
- Détection globale de sélection de texte (gestion des autorisations de l’Accessibility API)
- Sécurité de la clé API (au début je l’avais codée en dur côté client, je m’en suis rendu compte plus tard et j’ai tout refait)
- Processus de notarization (première fois pour moi, j’y ai perdu deux jours)
Je pense que ceux qui ont déjà distribué une app macOS comprendront particulièrement le point 3. Même en suivant la documentation, il y avait plusieurs étapes qui ne passaient pas du premier coup.
État actuel
- Bêta publique, gratuit
- Téléchargement disponible sur le site
Vos retours sont les bienvenus
- Est-ce que l’UX du raccourci clavier est naturelle ?
- Est-ce qu’il n’y a pas de problème sur une installation propre ?
- Voyez-vous des points d’amélioration dans l’architecture ?
- Des conseils de personnes ayant développé une app similaire ?
Je serais ravi d’avoir vos retours sur l’architecture ou vos galères avec la notarization macOS.
Et une dernière chose : pour celles et ceux qui ont leur activité principale à côté et développent des produits en side project,
comment décidez-vous entre « approfondir davantage » et « s’arrêter là pour l’expérience puis passer au suivant » ?
16 commentaires
Bonjour, voici quelques remarques !
opt + space. Je me demande si un autre raccourci par défaut ne serait pas préférable.Wow, merci beaucoup d’avoir regardé tout ça d’aussi près 🙏
Raccourci clavier : oui, c’est bien ça. Le problème de conflit avec ⌥Space est
celui qu’on nous remonte le plus souvent de la part des utilisateurs d’Alfred/Raycast.
Nous avons bien identifié le besoin d’une fonctionnalité de configuration de raccourci personnalisé,
et nous allons la faire remonter dans les priorités d’amélioration !
Signature / notarisation : oui, actuellement l’app est signée en adhoc.
Comme le projet en est encore à ses débuts, le coût de la notarisation nous semblait
encore un peu lourd, donc nous l’avions mis en attente 😅
Merci de l’avoir vérifié !
Mode de distribution : nous envisageons aussi une distribution via l’App Store ou Homebrew Cask.
Pour l’instant, nous avons d’abord publié en DMG pour aller plus vite,
mais je pense que la direction que vous avez suggérée est la bonne,,
J’ai été touché de voir que vous aviez même vérifié
codesigndirectement.Merci infiniment pour l’attention et l’affection que vous portez au produit !
S’il y a à nouveau le moindre inconfort, n’hésitez surtout pas à nous le dire, c’est très encourageant 😄
À moins que vous ne comptiez vraiment le vendre à un niveau production, je pense que vous pourriez aussi le publier en open source sur GitHub pour recueillir des retours, non ?
Merci beaucoup pour votre précieux retour !
Comme c’est mon premier projet dans ce type de business, je l’ai surtout mené pour me faire de l’expérience, mais je pense que le distribuer en open source pour que davantage de personnes puissent l’utiliser directement est aussi une très bonne idée 😁
Si je le publie en open source, vous devrez absolument me faire vos retours~~ :)
Le fait que ce soit open source ne vous empêche pas de le vendre. Il existe d’ailleurs pas mal d’apps qui suivent une approche à deux voies. L’open source, c’est surtout une démarche de création en commun avec d’autres développeurs intéressés par le projet, plutôt qu’avec le grand public. Si vous craignez qu’on vous le vole, vous pouvez toujours choisir une licence bien définie, mais… à l’ère de la grande IA, où les projets en clean room pullulent, je ne suis pas sûr que ça ait encore beaucoup de sens. Et si vous le passiez en open source, vous croyez vraiment qu’on se contenterait de vous faire des retours ? :)
Haha, merci pour les conseils de ce développeur senior 😄
En ce moment, le monde change tellement vite que c’est vraiment difficile de s’y adapter !
Merci pour toutes ces informations, et j’espère que vous continuerez à suivre cela avec beaucoup d’intérêt à l’avenir 😁
De quel modèle d'IA s'agit-il ??
Il est indiqué que l’API Claude est utilisée.
C’était pourtant clairement indiqué dans le corps du texte, et je me suis dit avec un coup de stress : « Attends, ce n’est pas moi qui ai posé la question ? », alors j’ai cherché.
J’ai passé un bon moment à fouiller le résumé, l’article original, le site et même après avoir installé le programme, sans rien trouver, avant de voir que c’était écrit dans la politique de confidentialité.
En général, on ne va pas jusqu’à éplucher la politique de confidentialité juste pour vérifier la stack technique.
La prochaine fois, je vous serais reconnaissant de bien indiquer aussi où cela est mentionné.
Merci beaucoup pour vos précieux retours !
J’avais hésité à mentionner le modèle, mais je me suis dit que le grand public ne connaîtrait शायद pas bien le concept d’API, donc je ne l’avais pas mentionné.
Comme certaines personnes se posent la question, je vais le modifier.
Au fait, avez-vous essayé l’application ? J’aimerais bien savoir ce que vous en avez pensé :)
Ah, je l’ai dit à jhk0530.
Où est-il indiqué qu’ils utilisent l’API de Claude ?
Je suis allé voir l’article et le site web, mais je ne le vois pas.
Bonjour ! Je suis le créateur.
J’utilise actuellement le modèle Claude Sonnet 4 !
Par la suite, je prévois d’implémenter une option permettant de choisir directement le BYOK ou d’autres modèles.
Merci de votre intérêt :)
Merci pour votre réponse !
J’utilisais parfois la fonction de traduction contextuelle de DeepL, mais je vais essayer ça un moment.
À l’avenir, ce serait aussi une bonne idée de prendre en charge le format https://www.openresponses.org/ pour permettre également l’utilisation de LLM locaux !
Vous comptez donc surtout l’utiliser pour les fonctions de traduction !
À l’avenir, nous prévoyons aussi d’ajouter une fonction de sélection de mode afin d’aller vers une traduction un peu plus spécialisée :)
Merci également pour votre suggestion d’une méthode permettant d’utiliser un modèle local, et pas seulement des API externes ! Nous l’ajouterons à notre feuille de route pour une future implémentation.
Merci pour ce précieux retour, et si vous rencontrez le moindre inconfort ou problème, n’hésitez surtout pas à nous le faire savoir 😄
Je l’utilise depuis une semaine, et l’expérience est tellement bonne que je continue à m’en servir. Merci.
Ce serait encore mieux si le problème du mode de distribution des raccourcis clavier, comme l’ont mentionné d’autres personnes, pouvait être résolu ! J’ai hâte de voir la suite.