TODAY I LEARNED
TIL
Une collection de découvertes techniques et d'astuces glanées au fil des projets. Des notes courtes, rangées par thème, mises à jour à chaque nouvelle entrée.
36 NOTES · 11 THÈMES
AGENTS
—01ANDROID
—09adb en script : les pièges qui font mentir un test
Utilisé à la main, adb sert à installer un APK et à lire les logs. Dès qu'on s'en sert pour
2026-07-28
Forcer l’orientation portrait d’une Activity
Forcer une Activity à rester en mode portrait à l’aide du manifeste Android.
2025-11-13
Implementation de Firebase Remote Config
Firebase Remote Config permet de modifier le comportement et l'apparence de votre application sans avoir à publier une mise à jour sur le Play Store. Cela est utile pour activer des fonctionnalités progressivement (feature flags), effectuer des tests A/B ou personnaliser l'interface utilisateur.
2026-01-21
Lancer une Activity et récupérer un résultat à la fermeture
Comment lancer une nouvelle Activity depuis une autre, et exécuter une fonction dans l’Activity de base lorsqu’on revient après la fermeture de la nouvelle Activity.
2025-11-07
Ne pas utiliser un ViewModel dans un Worker
Éviter d’appeler un ViewModel dans un Worker WorkManager.
2025-10-31
Notifications Locales (Sans Firebase)
Pour afficher une notification simple (ex: rappel, alarme, fin de téléchargement) sans serveur distant, on utilise le NotificationManager.
2026-01-15
Optimiser les VectorDrawables avec Avocado
avocado est un outil en ligne de commande qui optimise les fichiers VectorDrawable et AnimatedVectorDrawable Android. Il permet de réduire considérablement la taille des fichiers XML en supprimant les groupes inutiles et en simplifiant les données de chemin (path data) sans modifier le rendu visuel.
2026-02-26
Ouvrir une Activity depuis une notification sans recréer d’instance
Lorsqu’on clique sur une notification, Android peut recréer une nouvelle instance de l’Activity,
2025-11-12
Piloter un téléphone au texte affiché avec uiautomator
Automatiser un écran Android sans instrumenter l'application : ni testTag, ni resource-id ajouté
2026-07-28
FIGMA
—03Ajouter du scroll dans un écran
Dans Figma, le défilement (scrolling) ne s'active pas automatiquement. Il faut configurer le comportement de débordement (Overflow) dans les paramètres de prototypage pour permettre aux utilisateurs de faire défiler le contenu verticalement ou horizontalement.
2026-01-15
Créer une frame
Les cadres (frames) sont les éléments fondamentaux de Figma. Contrairement aux simples groupes, les frames permettent d'utiliser des fonctionnalités avancées comme les Constraints, l'Auto Layout, et de définir des zones de défilement. Elles servent de conteneurs pour vos designs.
2026-01-15
Créer une section
Les sections dans Figma permettent d'organiser le canevas en regroupant des cadres (frames) et d'autres objets. Elles sont particulièrement utiles pour structurer des flux de travail, marquer l'état d'avancement d'un design (Prêt pour le dev, en cours, etc.) ou regrouper des écrans par fonctionnalités.
2026-01-15
GIT
—03Hooks (pre-commit & pre-push)
Les Git Hooks sont des scripts qui s'exécutent automatiquement avant ou après certaines commandes Git (commit, push, merge, etc.).
2026-01-16
Ignorer des commits dans git blame
La commande git blame est très utile pour savoir qui a modifié une ligne et pourquoi.
2026-01-16
Utiliser deux URL différentes pour le pull et le push
Configurer Git pour utiliser deux URL différentes :
2025-11-04
GITHUB
—03Configuration de Dependabot
Dependabot automatise la mise à jour des dépendances d'un projet en créant des Pull Requests.
2026-02-13
Donner le rôle admin sur un dépôt personnel
Sur un dépôt appartenant à un compte personnel (et non à une organisation), promouvoir un
2026-07-28
Réessayer automatiquement une étape (retry)
Il arrive qu'une étape de CI échoue de manière aléatoire ("flaky") à cause de problèmes réseaux, de timeouts ou de tests instables.
2025-11-20
KOTLIN
—03Différence entre collect() et first() sur un Flow
En Kotlin Coroutines, il existe plusieurs façons de consommer un Flow.
2025-12-15
Ne pas utiliser `break` dans un `forEach`
En Kotlin, on ne peut pas utiliser break ou continue dans un forEach.
2025-11-10
Préférer `object` à une `class` avec `companion object`
En venant de Java, on a tendance à vouloir reproduire le comportement des méthodes static (ou du pattern Singleton) en utilisant une class contenant un companion object.
2025-11-27
LINUX
—03Créer une Desktop Entry pour une Web App (Notion, etc.)
Certaines applications (comme Notion) n'ont pas de client officiel sous Linux.
2025-12-01
Gérer ses dotfiles avec GNU Stow
Gérer ses fichiers de configuration (dotfiles) peut vite devenir chaotique.
2025-11-21
Le repliage de dossiers de GNU Stow
On croit que stow crée un lien symbolique par fichier. C'est faux : il lui arrive de lier le
2026-07-28
MACOS
—02Le Brewfile ne liste pas tout ce qui est installé
Un Brewfile est le manifeste d'une machine : formules, applications, extensions. brew bundle
2026-07-28
mas : sans lui, le Brewfile oublie les apps du Mac App Store
brew bundle dump est censé photographier tout ce qui est installé sur la machine. En réalité il
2026-07-28
OPENAPI
—06La section components
La section components sert de bibliothèque pour stocker des objets réutilisables. Cela permet de garder le fichier propre, d'éviter les répétitions et de garantir la cohérence des modèles de données.
2026-02-09
La section info
La section info fournit les métadonnées essentielles sur l'API. C'est la première chose que les utilisateurs (et les générateurs de documentation) lisent pour comprendre l'objectif et la version de l'interface.
2026-02-09
La section paths
La section paths est le composant central d'OpenAPI. Elle définit tous les points de terminaison (endpoints) disponibles, les opérations HTTP et la logique de requête/réponse.
2026-02-09
La section servers
La section servers définit les URLs de base où l'API est accessible. Cela permet aux outils de test (comme Swagger UI) d'exécuter des requêtes directement contre les bons environnements.
2026-02-09
Mock Server avec Postman
Un serveur de mock permet de simuler le comportement d'une API avant même qu'elle ne soit développée. Postman facilite grandement cette étape en important directement un fichier openapi.yaml.
2026-02-09
Structure d'un fichier openapi.yaml
OpenAPI (anciennement Swagger) est la norme de description pour les API REST. Un fichier openapi.yaml permet de documenter les points d'entrée (endpoints), les paramètres, les formats de réponse et les schémas de données de manière standardisée.
2026-02-09
PYTHON
—01SQL
—02Activer hot_standby_feedback pour les requêtes longues sur un réplica
Lorsqu’on exécute des requêtes longues (ex. : modèles dbt, analytique, exports) sur une base de données read-only (standby), il arrive que la requête soit interrompue brutalement par le moteur.
2025-11-20
Création d’un utilisateur et gestion des droits
Créer un utilisateur PostgreSQL directement via SQL et gérer ses droits.
2025-11-03