La première appli mobile d’un senior backend : une galerie photo créée en 5 mois en vibe coding (sortie sur iOS / bêta Android)
(zizi.tnstory.co.kr)Bonjour, je suis développeur backend senior.
Je n’avais aucune expérience en appli/front, et j’ai créé pour la première fois une application mobile uniquement en vibe coding.
Cela m’a pris 5 mois ; la version iOS est sortie, et la version Android est en bêta privée en raison des contraintes liées aux politiques pour développeurs individuels.
Pourquoi je l’ai créée
Un jour, ma fille m’a dit : « Je n’ai plus assez d’espace de stockage pour mes photos, mais c’est trop pénible d’en supprimer. » J’ai donc commencé simplement avec l’idée d’une « appli de galerie pour supprimer, classer et rechercher rapidement », puis au fil du développement les fonctionnalités n’ont cessé d’augmenter.
Fonctionnalités principales
- Tri rapide (Quick Cull) — comparer par swipe et supprimer en lot d’un seul coup
- Recherche de texte par OCR — utilisation d’Apple Vision / Google ML Kit pour rechercher à partir du texte présent dans les photos
- Recherche de lieux — prise en charge de 180 pays avec GeoHash + reverse geocoding (données publiques OSM, avec une base de données distincte construite pour les dong administratifs en Corée)
- Synchronisation/sauvegarde entre appareils — Google Drive + modèle CDC (smartphone ↔ tablette)
- Recherche par tags/emplacement/calendrier — retrouver des dizaines de milliers de photos en quelques secondes
Stack technique
- React Native + Expo (newArch)
- Un peu de natif — Swift, Kotlin (OCR/rendu photo rapide et autres zones dépendantes de la plateforme)
- Supabase + Google OAuth
- Reanimated 4, FlashList v2
- SQLite + FTS5 (recherche locale)
Ce que j’ai ressenti en la créant
On pourrait croire que l’IA va tout faire, mais en réalité il faut quand même énormément de travail manuel au niveau du code (prompts). En particulier, les différences de comportement selon les plateformes et le tuning des performances ont finalement dû être examinés un à un par un humain (même si l’IA m’a aussi aidé dans ce processus).
J’ai mis en place les données pour la recherche de lieux dans 180 pays (les bases de reverse geocoding par pays ne sont téléchargées via CDN que pour les pays nécessaires), mais je n’ai pas pu vérifier sur le terrain les régions hors de Corée. J’aimerais que des personnes d’autres pays l’essaient, mais il est difficile d’obtenir des retours pour valider les données.
Ce que je pense avoir bien fait
Rendu d’image progressif en 4 étapes : ThumbHash → vignette système par défaut → taille du viewport → taille d’origine
J’ai essayé d’optimiser au maximum, mais comparé à l’application photo par défaut, il reste encore beaucoup de chemin à parcourir.
État actuel
- Page d’accueil (présentation + Privacy): https://zizi.tnstory.co.kr
- iOS App Store: https://apps.apple.com/app/6760991211
- Inscription à la bêta Android: https://groups.google.com/g/zizi-beta-tester
(rejoindre le groupe → opt-in possible sur le Play Store) - iOS: prise en charge d’iCloud
- Android: malheureusement, les photos sauvegardées dans le cloud (Google Photos, etc.) ne sont pas directement accessibles pour des raisons de politique ; il faut donc les télécharger manuellement pour pouvoir y accéder
Vos retours sont les bienvenus
- Les retours de validation sur la recherche de lieux de la part d’utilisateurs iOS ayant des photos prises hors de Corée sont les bienvenus
- N’hésitez pas à partager librement vos idées ou critiques sur les workflows de tri de photos
Merci.
Aucun commentaire pour le moment.