No description
Find a file
cedric d1ddd03fe0
Some checks failed
Flutter Build / build (push) Failing after 2m57s
Actualiser .forgejo/workflows/flutter-build.yml
2026-05-20 21:38:02 +00:00
.forgejo/workflows Actualiser .forgejo/workflows/flutter-build.yml 2026-05-20 21:38:02 +00:00
android/app/src/main first commit 2026-04-30 15:20:10 +02:00
ios/Runner first commit 2026-04-30 15:20:10 +02:00
lib Actualiser lib/theme/app_theme.dart 2026-05-20 21:02:44 +00:00
pubspec.yaml first commit 2026-04-30 15:20:10 +02:00
README.md first commit 2026-04-30 15:20:10 +02:00

Shaarli Flutter Client

Un client mobile élégant pour Shaarli, le gestionnaire de signets personnel et minimaliste.

Fonctionnalités

  • 🔐 Connexion sécurisée via clé API (JWT HS512)
  • 📋 Liste des liens avec défilement infini
  • 🔍 Recherche par mot-clé ou par tag
  • 🏷️ Navigation par tags avec compteur d'occurrences
  • Ajout / modification / suppression de liens
  • 🔒 Support des liens privés
  • 🌐 Ouverture dans le navigateur externe
  • 📋 Copie d'URL en un tap
  • 🔄 Pull-to-refresh
  • 💾 Persistence des identifiants (SharedPreferences)

Prérequis

  • Flutter SDK ≥ 3.0.0
  • Une instance Shaarli avec l'API REST v1 activée

Installation

cd shaarli_client
flutter pub get
flutter run

Configuration de Shaarli

  1. Connectez-vous à votre Shaarli
  2. Allez dans OutilsGestion de la clé API
  3. Copiez la clé API (API secret)
  4. Dans l'app, entrez l'URL de votre instance et la clé API

Structure du projet

lib/
├── main.dart                    # Point d'entrée, thème, routing
├── models/
│   └── link.dart                # Modèle de données ShaarliLink
├── services/
│   └── shaarli_service.dart     # Client API REST Shaarli
├── providers/
│   └── app_provider.dart        # État global (Provider)
├── theme/
│   └── app_theme.dart           # Thème dark personnalisé
├── screens/
│   ├── login_screen.dart        # Écran de connexion
│   ├── home_screen.dart         # Liste des liens + recherche
│   ├── link_detail_screen.dart  # Détail d'un lien
│   ├── add_edit_link_screen.dart# Ajout / modification
│   └── tags_screen.dart         # Navigation par tags
└── widgets/
    └── link_card.dart           # Carte de lien réutilisable

Dépendances principales

Package Usage
provider Gestion d'état
http Appels API REST
dart_jsonwebtoken Génération des tokens JWT
shared_preferences Stockage des identifiants
url_launcher Ouverture de liens
timeago Dates relatives (FR)

API Shaarli

L'authentification utilise des tokens JWT signés avec l'algorithme HS512 :

Authorization: Bearer <JWT signé avec la clé API>

Endpoints utilisés :

  • GET /api/v1/info — Vérification de la connexion
  • GET /api/v1/links — Liste des liens (pagination)
  • POST /api/v1/links — Créer un lien
  • PUT /api/v1/links/{id} — Modifier un lien
  • DELETE /api/v1/links/{id} — Supprimer un lien
  • GET /api/v1/tags — Liste des tags