Redface 2

Le futur client Android pour Hardware.fr.

Voir les spécifications Voir les guides Voir sur GitHub


Pourquoi une réécriture ?

Redface v1 a rendu service à la communauté HFR pendant des années. Mais sa stack technique a atteint ses limites :

  Redface v1 Redface 2
Langage Java 11 Kotlin
UI XML + ButterKnife Jetpack Compose
Réseau Retrofit 1.9 (!), OkHttp 3 OkHttp 5
Async RxJava 1 Coroutines + Flow
Injection Dagger 2 Hilt (KSP)
Event bus Otto StateFlow
minSdk 16 (Android 4.1, 2012) 29 (Android 10, 2019)

Retrofit 1.9 n’est plus maintenu depuis 2016. RxJava 1 depuis 2018. ButterKnife est officiellement déprécié. Le minSdk 16 empêche d’utiliser les APIs modernes.

Un refactoring incrémental serait plus coûteux qu’une réécriture. Chaque brique dépend des autres — migrer Retrofit demande de migrer RxJava, qui demande de migrer les patterns async, qui touche toute l’architecture.

Vision

Redface 2 est conçu pour :

  • La vitesse — Scroll fluide à 120fps, prefetch intelligent, cache agressif. L’objectif : que le forum semble local.
  • Les extensions communautaires — Les meilleurs ajouts des userscripts HFR (alertes qualitay, bookmarks, blacklist, redflag…) intégrés nativement.
  • La maintenabilité — Architecture modulaire, testable, où chaque feature est isolée. Facile à comprendre pour un nouveau contributeur.
  • L’ouverture — Système d’extensions pour que la communauté ajoute ses propres features sans toucher au cœur de l’app.

Vue d’ensemble

graph TB
    subgraph "Presentation"
        A[Jetpack Compose] --> B[MVI ViewModels]
    end
    subgraph "Domaine"
        B --> C["Repositories (interfaces)"]
    end
    subgraph "Données"
        D["Repository implémentations"]
        D --> E[OkHttp 5 + Jsoup]
        D --> G[Room Cache]
    end
    C -.->|implémente| D
    E --> F["forum.hardware.fr"]
    style A fill:#e74c3c,color:#fff
    style B fill:#e67e22,color:#fff
    style C fill:#f1c40f,color:#000
    style D fill:#16a085,color:#fff
    style E fill:#2ecc71,color:#fff
    style G fill:#3498db,color:#fff
    style F fill:#95a5a6,color:#fff

État du projet

Phase courante : Phase 4 — Extensions + refonte UI (roadmap). Phases 1 (lecture), 2 (écriture) et 3 (messages) sont livrées : login, drapeaux, forum, topics, cache, deep links, recherche, écriture/édition/citation/création, MPs classiques et MultiMPs (lecture, reply, quote, onglet DT), MPStorage lecture et écriture (opt-in). La bêta 0.16.0 (clôture Phase 3) est publiée (Play open testing + F-Droid) ; seule la sync MPStorage bidirectionnelle complète reste reportée (#6). En cours : refonte UI Drapeaux (#603) / Topic (#604).

Les specs restent la source de vérité du projet, mais elles doivent désormais refléter le code réel : tout écart entre une page canonique et le repo est traité comme un bug de spec, pas comme une dette future. Voir /spec-reality pour la procédure d’audit cross-fichier.

Les contributions sont les bienvenues : ouvrez une issue, commentez les existantes ou proposez une PR sur le slice courant.


Sommaire

Spécifications

Guides


Haut de page

Redface 2 — Specs v0.10.8 — Un projet communautaire pour Hardware.fr

This site uses Just the Docs, a documentation theme for Jekyll.