Retour aux projetsSur l'App Store

Application iOS

BeFish

Application de pêche et de chasse sous-marine inspirée de BeReal : on publie sa prise du jour en double photo, on suit ses amis et on collectionne les espèces. Conçue, développée et publiée de bout en bout, de l'interface SwiftUI au backend Supabase jusqu'à la fiche App Store.

Icône de l'application BeFish

iPhone · Apple Watch · Widgets

Le carnet de pêche qu'on partage

4

langues : français, anglais, espagnol, italien

83

espèces à débloquer, de commune à légendaire

37

succès synchronisés avec Game Center

38k+

lignes de Swift, app, montre et widgets

Aperçu

L'app telle qu'elle est publiée.

Capture d'écran BeFish : Fil des prises
Fil des prises
Capture d'écran BeFish : Météo de pêche
Météo de pêche
Capture d'écran BeFish : Trophées
Trophées
Capture d'écran BeFish : Guide réglementaire
Guide réglementaire

Une prise, deux photos

Le poisson et la réaction du pêcheur, capturés coup sur coup. Poids, espèce, profondeur et conditions météo sont consignés, et les plus belles prises remontent au classement.

« Je suis à l'eau »

Avant de partir, on indique son heure de retour et ses amis de confiance. Sans confirmation de sortie, le serveur les alerte avec la dernière position connue.

Météo de pêche

Vent, baromètre, houle, marée et température de l'eau sur dix jours, avec un indice de mordée qui détaille chaque facteur et une alerte la veille au soir.

Guide de la chasse sous-marine

Tailles minimales, espèces interdites, quotas et réserves tracées sur la carte, chaque règle citant son texte officiel. L'app prévient si une prise semble hors la loi.

Amis, messages et clubs

Messagerie privée et de groupe avec photos, mémos vocaux et réactions. Clubs avec classement, sorties, inscriptions et concours entre membres.

Pensée pour la mer

Publication hors ligne : la prise et ses photos partent toutes seules dès que le réseau revient. Les spots ne sont jamais publics, seulement visibles des amis.

Architecture

Une app native, un backend verrouillé par la base.

L'app iOS est écrite en Swift et SwiftUI, accompagnée d'une extension de widgets, d'une app Apple Watch et d'une activité en direct. Les données vivent dans Supabase : chaque règle d'accès est portée par PostgreSQL lui-même, si bien qu'aucune requête directe à l'API ne peut contourner ce que l'app interdit. Les traitements critiques, comme l'alerte « Je suis à l'eau », tournent côté serveur, là où le réseau ne manque jamais.

Côté iPhone et Apple Watch

  • Swift et SwiftUI, cible iOS 17, organisation par fonctionnalités.
  • WeatherKit pour les conditions, Open-Meteo pour la houle et les marées.
  • Widgets, activité en direct sur l'écran verrouillé, raccourcis Siri et Game Center.
  • App Apple Watch : confirmation de sortie et carnet d'apnée sur Apple Watch Ultra.
  • Mesure du poisson en réalité augmentée avec ARKit.

Côté serveur

  • PostgreSQL Supabase, Row Level Security sur chaque table.
  • Fonctions SQL security definer pour toutes les écritures sensibles.
  • pg_cron chaque minute pour les alertes de sécurité, purges planifiées des positions.
  • Edge Functions pour les notifications push APNs et l'alerte météo du soir.
  • Back-office de modération : admins en double authentification TOTP, journal des actions.

Défis techniques

  • Alerte de sécurité décidée par le serveur et non par le téléphone, qui peut être hors réseau en mer.
  • Publication rejouable : identifiants fixés par l'app pour qu'un envoi repris ne crée jamais de doublon.
  • Localisation complète en quatre langues, notifications push comprises, résolues sur l'iPhone.
  • Données juridiques sourcées : réglementation et zones protégées construites à partir des textes officiels.
  • Vie privée : position des prises réservée aux amis, position de sortie effacée au retour, synthèses arrondies.

Compétences mises en avant

Développement iOS natif en Swift / SwiftUI
Écosystème Apple : watchOS, WidgetKit, ActivityKit
Modélisation PostgreSQL et sécurité RLS
Notifications push et tâches planifiées
Internationalisation d'une app complète
Publication et suivi sur App Store Connect

Stack technique

SwiftSwiftUISupabasePostgreSQLRow Level Securitypg_cronEdge FunctionsWeatherKitOpen-MeteoMapKitARKitWidgetKitActivityKitwatchOSGame CenterApp IntentsAPNs

Le code source reste privé, mais l'application est disponible gratuitement sur l'App Store pour iPhone et Apple Watch.