Skip to content

Bibliothèques ​

Toutes les dépendances sont dans timemanager-mobile/package.json. Voici celles que le code utilise directement, regroupées par rôle.

Le socle ​

PaquetRôleOù on le voit
expoLa boîte à outils : serveur de développement, build, modules natifspartout
reactLes composants et les hookspartout
react-nativeLes composants mobiles (View, Text, Pressable, TextInput, ScrollView, Animated...)partout
typescriptLe typagepartout
PaquetRôleOù on le voit
expo-routerUne route par fichier, Stack, Tabs, router.push, useLocalSearchParams, useFocusEffect, useIsFocusedsrc/app/, src/hooks/use-query.ts, src/hooks/use-now.ts
react-native-safe-area-contextLes marges autour de l'encoche et de la barre du bassrc/app/_layout.tsx, src/components/navigation/tab-bar.tsx, src/components/ui/toast.tsx

Fonctions du téléphone ​

PaquetRôleOù on le voit
expo-secure-storeStockage chiffré (Keychain sur iOS, Keystore sur Android) : jeton CSRF et « présentation déjà vue »src/api/client.ts, src/state/onboarding.tsx
expo-hapticsLes vibrations pendant l'appui long sur le bouton de pointagesrc/components/clock/clock-button.tsx
expo-file-systemÉcrire l'export JSON dans un fichiersrc/app/(tabs)/your-data.tsx
expo-sharingOuvrir la feuille de partage native (AirDrop, mail, Fichiers...)src/app/(tabs)/your-data.tsx
expo-web-browserOuvrir un lien dans un navigateur intégré à l'appsrc/app/(tabs)/account.tsx
expo-localizationLire la langue du téléphonesrc/i18n/index.ts

Affichage ​

PaquetRôleOù on le voit
react-native-svgLe dessin vectoriel : icônes, logo, graphiques, anneau de progressionsrc/components/ui/icon.tsx, src/components/ui/logo.tsx, src/components/charts/*, src/components/clock/*
expo-fontLe chargement des policessrc/app/_layout.tsx
@expo-google-fonts/interLa police Inter de la maquette (5 graisses)src/theme/typography.ts
@expo-google-fonts/share-tech-monoLa police Share Tech Mono (initiales, chiffres)src/theme/typography.ts
expo-splash-screenGarder l'écran de lancement tant que l'app n'est pas prêtesrc/app/_layout.tsx
expo-status-barLa couleur des icônes de la barre d'étatsrc/app/_layout.tsx

Textes ​

PaquetRôleOù on le voit
i18nextLe moteur de traductionsrc/i18n/index.ts
react-i18nextLe hook useTranslation() qui donne la fonction ttous les écrans

Les autres paquets ​

Le package.json contient aussi react-native-reanimated, react-native-gesture-handler, react-native-screens, react-native-worklets, expo-image, expo-symbols, expo-glass-effect, expo-linking, expo-constants, expo-device, expo-system-ui, @expo/ui, react-dom et react-native-web.

Ils viennent du modèle de projet Expo. Certains sont utilisés en interne par expo-router (screens, gesture-handler, reanimated, linking, constants). Le code de l'app ne les importe pas directement.

Ce qu'il n'y a pas, volontairement ​

AbsentPourquoi
Une bibliothèque de requêtes (axios, React Query)fetch suffit, et client.ts + useQuery font en 150 lignes ce dont l'app a besoin
Une bibliothèque d'état (Redux, Zustand)Trois contextes React suffisent : session, annuaire, présentation
Une bibliothèque de dates (moment, date-fns)Les quelques calculs sont dans src/api/dates.ts et src/utils/time.ts, l'affichage passe par toLocaleDateString
Une bibliothèque de composants (React Native Paper...)L'interface suit exactement la maquette Figma, avec un kit maison dans src/components/ui/
Une bibliothèque de graphiquesLes trois graphiques sont dessinés directement en SVG