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 2 — Écriture, close-out alpha (roadmap). La Phase 1 (lecture : login, drapeaux, forum, topics, cache, deep links, recherche de base) est livrée ; la Phase 2 ferme les derniers flux d’écriture et de polish avant de basculer vers les MPs.

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.