Heure locale --:--:-- contact@rahman.ovh
Tableau périodique
21 2026 Ka KARA Mobile · flamme lithium

Élément 21 · Mobile · 2026 · Produit publié

KARA

Application iPhone d'inventaire de métaux précieux (lingots, pièces, bijoux) : valeur estimée au cours du marché, suivi dans le temps, simulation de vente, pièces jointes, rapports PDF et widgets. SwiftUI/SwiftData avec iCloud, API SvelteKit sécurisée par App Attest, sans compte utilisateur.

Configuration électronique

  • 1s Swift
  • 1s SwiftUI
  • 2p SwiftData
  • 2p CloudKit
  • 2p WidgetKit
  • 2p SvelteKit
  • 2p Redis

KARA, inventaire de métaux précieuxKARA, inventaire de métaux précieux

KARA est une application iPhone pour tenir l'inventaire de ses métaux précieux : lingots, pièces, bijoux. Pour chaque objet, on note le poids, la pureté, le prix d'achat et l'endroit où il est rangé. L'application estime ensuite sa valeur au cours du marché et suit son évolution. Elle est publiée sur l'App Store depuis l'été 2026. La version Android est en préparation.

En bref

  • Type : application iOS publiée, avec un site web et une API.
  • Stack : Swift, SwiftUI, SwiftData, CloudKit, WidgetKit ; SvelteKit, TypeScript et Redis côté serveur.
  • Code : public, sous licence PolyForm Noncommercial.
  • Version : 1.1.1 (septembre 2026).

Liens

Le besoin

Quand on achète de l'or ou de l'argent physique, on finit vite avec des factures dans un tiroir, des certificats dans un autre, et aucune idée de ce que vaut l'ensemble aujourd'hui. Les applications existantes demandent souvent un compte et envoient l'inventaire sur leurs serveurs. KARA garde tout sur le téléphone et n'a pas de compte.

Ce que fait l'application

  • Enregistrer chaque objet : poids, pureté, quantité, prix d'achat, emplacement, notes et étiquettes.
  • Estimer la valeur du métal à partir des cours disponibles, et suivre la performance dans le temps.
  • Voir la répartition par métal et fixer des objectifs.
  • Simuler une vente : choisir des objets et des quantités pour estimer le produit et la plus-value, sans toucher à l'inventaire.
  • Joindre photos, factures et certificats, et générer un rapport PDF directement sur l'appareil.
  • Afficher les cours et la valeur du portefeuille dans des widgets.
  • Protéger l'accès avec Face ID, Touch ID ou le code de l'appareil, et masquer les montants.

CoffreCoffre

PerformancePerformance

Comment c'est construit

Le dépôt regroupe l'application, le site et l'API.

Dossier Technologies Contenu
apple/ SwiftUI, SwiftData, CloudKit, WidgetKit Application iPhone, widgets et tests
website/ SvelteKit, Svelte 5, TypeScript, Redis Site bilingue et API utilisée par l'application
website/data-pipeline/ TypeScript, GitHub Actions Collecte et publication mensuelle des cours des métaux
shared/ JSON Catalogue d'actifs commun aux plateformes

Les données restent sur l'appareil

L'inventaire est stocké avec SwiftData et peut être synchronisé dans la base iCloud privée de l'utilisateur. Le serveur ne reçoit jamais l'inventaire : il ne fournit que les cours.

Une API protégée sans compte utilisateur

Sans compte, il faut quand même empêcher n'importe qui d'appeler l'API. Les requêtes de l'application sont authentifiées avec App Attest, qui prouve qu'elles viennent d'une copie authentique de l'application. Le serveur limite le débit par installation et par adresse IP. Les deux sont pseudonymisés avec un HMAC avant d'être utilisés comme clés Redis.

Des widgets qui se mettent à jour seuls

Une extension de widget ne peut pas utiliser App Attest. Après une première requête authentifiée, le serveur délivre donc un jeton en lecture seule, valable uniquement sur la route des cours pour widgets. Redis n'en garde que l'empreinte SHA-256. Le widget récupère lui-même les cours et recalcule la valeur du portefeuille en local, sans envoyer l'inventaire.

Saisie assistée depuis une photo

Une option, désactivée par défaut, permet de remplir une fiche à partir d'une photo ou d'une facture. Seul le fichier choisi est envoyé à un modèle OpenAI, via le serveur. Les médias et les données extraites ne sont jamais journalisés.

Qualité et livraison

  • Une quarantaine de fichiers de tests côté iOS (unitaires, interface, widgets) et autant côté site et API (tests unitaires et Playwright).
  • Audit Lighthouse du site, build de production bloqué si la configuration est incomplète.
  • Image Docker multi-étapes déployée avec Dokploy.
  • Cours des métaux mis à jour chaque mois par un workflow GitHub Actions.

Ce que le projet montre

  • Une application iOS native livrée sur l'App Store, avec widgets, synchronisation iCloud et protection biométrique.
  • Une conception orientée vie privée : pas de compte, pas d'inventaire côté serveur, identifiants pseudonymisés.
  • La sécurisation d'une API publique avec App Attest et de la limitation de débit.
  • La gestion complète d'un produit : site bilingue, fiches App Store, notes de version.