🏛️ Architecture du projet
Ondes Core repose sur une architecture hybride combinant un shell natif Flutter et des mini-apps web, le tout supporté par un backend Django robuste.
Diagramme d'architecture
┌─────────────────────────────────────────────────────────────────┐
│ ONDES CORE │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────────────────────────────┐ │
│ │ Mini-App │ │ Flutter App │ │
│ │ (WebView) │◄──►│ ┌─────────────────────────────┐ │ │
│ │ │ │ │ Bridge Controller │ │ │
│ │ HTML/JS/ │ │ ├─────────────────────────────┤ │ │
│ │ CSS │ │ │ ┌─────┐ ┌─────┐ ┌────────┐ │ │ │
│ └─────────────┘ │ │ │ UI │ │User │ │ Device │ │ │ │
│ │ │ │ └─────┘ └─────┘ └────────┘ │ │ │
│ │ │ │ ┌─────┐ ┌─────┐ ┌────────┐ │ │ │
│ ▼ │ │ │Store│ │ App │ │Friends │ │ │ │
│ window.Ondes │ │ └─────┘ └─────┘ └────────┘ │ │ │
│ │ │ ┌────────────────────────┐ │ │ │
│ │ │ │ Social │ │ │ │
│ │ │ └────────────────────────┘ │ │ │
│ │ └─────────────────────────────┘ │ │
│ └─────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────┐ │
│ │ Django API │ │
│ │ ┌─────────┐ ┌─────────────┐ │ │
│ │ │ Store │ │ Friends │ │ │
│ │ │ (apps) │ │ (relations) │ │ │
│ │ └─────────┘ └─────────────┘ │ │
│ │ ┌─────────────────────────────┐ │ │
│ │ │ Social (posts, feed, │ │ │
│ │ │ stories, media, HLS) │ │ │
│ │ └─────────────────────────────┘ │ │
│ └─────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
Stack technique détaillée
| Couche | Technologie | Rôle |
|---|---|---|
| Frontend natif | Flutter | Sert de "coquille" (Shell). Gère le WebView, l'interface native (barre de navigation, modales) et les appels systèmes via les Platform Channels. |
| Mini-Apps | HTML/CSS/JS | Applications développées par les utilisateurs. Elles tournent dans le WebView. |
| Bridge | JavaScript Injection | Mécanisme de communication bidirectionnel entre le JavaScript de la WebView et le Dart de Flutter. |
| Backend | Django REST Framework | API centrale. Gère l'authentification, le stockage des apps (.zip), les relations sociales et les médias. |
| Base de données | SQLite (Dev) | Stocke les données utilisateurs, les métadonnées des apps et le graphe social. |