FF
FlutterFlow Audit
Mission Codeur #483874
App vidéo FlutterFlow•Feed + Firestore + Camera + Upload

FlutterFlow Video Feed — Audit & Fix Preview

Corrections livrées en mode tâche-par-tâche. Je reprends ton app, j'isole les 4 bugs classiques (controllers, lag, leak, permission), je livre les fixes en commits séparés. Tu valides à chaque étape.

4
bugs typiques détectés
65€/h
tarif horaire dev
30j
garantie post-livraison
tâche/tâche
validation incrémentale
01 / 04

Audit du feed actuel

Les 4 bugs typiques que je rencontre sur 90% des apps vidéo FlutterFlow. Je commence toujours par cet audit avant d'écrire la moindre ligne de fix.

#01critique
À fixer

VideoPlayerController non disposed

Symptôme
Audio fantôme qui continue après scroll, RAM qui grimpe à chaque vidéo lue
Cause racine
Les controllers sont créés dans initState() mais jamais dispose() — Flutter conserve les decoders en mémoire
Fix livré
Custom Action FlutterFlow `disposeAllVideoControllers` + override dispose() sur la page Feed + pool de 3 controllers max
#02majeur
À fixer

ListView.builder qui lag au scroll

Symptôme
Frames droppées (>16ms), feed saccadé dès qu'il y a 10+ vidéos chargées
Cause racine
Pas de `cacheExtent` configuré + chaque card rebuild les thumbnails Firestore sans `keepAlive`
Fix livré
Passage à `PageView.builder` vertical + `AutomaticKeepAliveClientMixin` + précharge n+1 et n-1 uniquement
#03critique
À fixer

Memory leak listeners Firestore

Symptôme
App qui crash après ~5 min, log `OutOfMemoryError` sur Android, 200+ Mo retenus
Cause racine
Les `StreamSubscription` sur les collections Firestore ne sont jamais cancel — chaque page navigation ajoute un listener
Fix livré
Wrapper `FirestoreManager` avec `cancel()` sur dispose + migration vers `StreamBuilder` au lieu de subscribe manuel
#04critique
À fixer

Permission caméra refusée silencieusement

Symptôme
Sur iOS 17+, l'écran caméra reste noir, aucun message — sur Android 14, crash direct
Cause racine
`permission_handler` pas configuré côté natif (Info.plist + AndroidManifest), pas de fallback `Permission.camera.request()`
Fix livré
Patch des fichiers natifs via FlutterFlow Custom Files + écran d'onboarding avec request + fallback `openAppSettings()`
02 / 04

Preview fix

Rendu avant/après sur un feed vidéo TikTok-like — même UI, mais performance et stabilité refondues côté logique Dart.

Avant — feed actuel
Pour toiAbonnés
⚙
♥
12.4k
💬
342
↗
Partager
@maya_creates
Tuto montage 60 sec
buffering…
Après — feed corrigé
Pour toiAbonnés
⚙
♥
47.1k
💬
342
↗
Partager
@brico.studio
Bunker DIY — épisode 4
RAM en feed (Android mid)
Avant
384 Mo
→
Après
118 Mo
-69 %
Frames droppées / min
Avant
42
→
Après
3
-93 %
Temps boot écran feed
Avant
3.1 s
→
Après
0.8 s
-74 %
03 / 04

Pipeline upload

Flow complet de la capture caméra à l'apparition dans le feed, chaque étape câblée et instrumentée (logs Firebase + Sentry).

1
Camera
Capture
Permission native + preview avec ratio 9:16, durée 60s max, switch front/back
CameraController.startVideoRecording()
↓
2
Compress client
FFmpeg / video_compress
H.264 medium, 720p, bitrate 1.8 Mbps, hash MD5 pour déduplication
VideoCompress.compressVideo(quality: MediumQuality)
↓
3
Firebase Storage
Upload
Resumable upload (UploadTask), retry exponentiel, progress stream → UI
storageRef.putFile(file, metadata)
↓
4
Firestore doc
Write metadata
Doc /videos/{id} avec downloadURL, userRef, duration, thumb, createdAt
videosCollection.add({ ...meta, createdAt: serverTimestamp() })
↓
5
Feed refresh
Realtime listener
StreamBuilder sur query orderBy('createdAt').limit(20), insertion optimiste
snapshots().where('status', '==', 'ready').limit(20)
⚡
Garde-fous ajoutés
  • • Retry resumable upload (3 tentatives, backoff exponentiel)
  • • Suppression du blob Storage si l'écriture Firestore échoue (cleanup atomique)
  • • Cap 60s côté capture pour éviter les fichiers >100 Mo
  • • Thumbnail générée locale avant upload (UI instantanée)
  • • Quota check : compte les uploads/jour côté Firestore Rules
04 / 04

Tarif & livraison

Tarification claire, garantie incluse. Tu choisis le mode qui colle à la taille du chantier.

Hourly
65€/ heure HT

Tu décris le bug, je le fixe. Idéal pour 1-2 corrections isolées.

  • ✓Devis temps après audit (30 min offert)
  • ✓Commit par commit, validation à chaque étape
  • ✓Loom de chaque fix livré
  • ✓Facturé à la fin, pas d'engagement
Démarrer un audit
Recommandé
Forfait 3 corrections
290€HT — package

Les 4 bugs typiques détectés ci-dessus, fixes livrés en une passe.

  • ✓Audit complet du projet FlutterFlow
  • ✓3 fixes au choix parmi l'audit
  • ✓Tests Android + iOS sur device cloud
  • ✓Loom de recette + doc des changements
  • ✓Garantie 30 jours sur les fixes
Prendre le forfait
Garantie 30 jours
Inclusesur tous les fixes

Si un bug fixé revient dans les 30 jours, je le reprends gratuitement.

  • ✓Re-fix sans nouveau devis
  • ✓Couvre les régressions liées au fix
  • ✓Délai d'intervention < 48h
  • ✓Communication WhatsApp directe
En savoir plus
Mode tâche-par-tâche

Tu m'ajoutes en collaborateur sur ton projet FlutterFlow. Je traite un bug à la fois, je te montre le diff, tu valides, on passe au suivant. Aucun risque de "tout péter" — chaque étape est rollback-able.

Communication

Loom de 2 min par fix (avant/après + explication), WhatsApp pour les questions courtes, point visio uniquement si nécessaire. Réponse sous 4h en heures ouvrées.