|
1 |
+// Auteur : Simon-Pierre Boucher — contact@spboucher.ai |
|
2 |
+// /telecharger — l'app KA sur toutes les plateformes : iOS (TestFlight), |
|
3 |
+// Android (APK direct signé) et macOS (DMG notarié). Versions, tailles, |
|
4 |
+// empreintes SHA-256 et dates affichées — la transparence, comme toujours. |
|
5 |
+import type { Metadata } from "next"; |
|
6 |
+ |
|
7 |
+export const metadata: Metadata = { |
|
8 |
+ title: "Télécharger l'app KA — Groupe KA", |
|
9 |
+ description: |
|
10 |
+ "KA, la super-app de l'écosystème Groupe KA : 12 univers, recherche universelle, carte 2D/3D, favoris, KA Agent. iPhone (TestFlight), Android (APK direct) et macOS (DMG notarié).", |
|
11 |
+}; |
|
12 |
+ |
|
13 |
+type Release = { |
|
14 |
+ platform: string; |
|
15 |
+ icon: string; |
|
16 |
+ version: string; |
|
17 |
+ build: string; |
|
18 |
+ date: string; |
|
19 |
+ size?: string; |
|
20 |
+ sha256?: string; |
|
21 |
+ href: string; |
|
22 |
+ cta: string; |
|
23 |
+ note: string; |
|
24 |
+ available: boolean; |
|
25 |
+}; |
|
26 |
+ |
|
27 |
+const RELEASES: Release[] = [ |
|
28 |
+ { |
|
29 |
+ platform: "iPhone (iOS 17+)", |
|
30 |
+ icon: "📱", |
|
31 |
+ version: "1.0.0", |
|
32 |
+ build: "build 7", |
|
33 |
+ date: "2026-08-18", |
|
34 |
+ href: "https://testflight.apple.com/", |
|
35 |
+ cta: "Ouvrir TestFlight", |
|
36 |
+ note: "Distribution bêta via TestFlight (App Store à venir). Carte Mapbox 2D/3D, 12 univers, KA Agent, Vrai-Prix natif, alertes.", |
|
37 |
+ available: true, |
|
38 |
+ }, |
|
39 |
+ { |
|
40 |
+ platform: "Android (8.0+)", |
|
41 |
+ icon: "🤖", |
|
42 |
+ version: "2.0.0", |
|
43 |
+ build: "release signée", |
|
44 |
+ date: "2026-08-18", |
|
45 |
+ size: "49 Mo", |
|
46 |
+ sha256: "a2ef688bfa5a4358b9188697947d51cfb498ad99481566b918bc7af383c8d0eb", |
|
47 |
+ href: "/dl/KA-android-2.0.0.apk", |
|
48 |
+ cta: "Télécharger l'APK", |
|
49 |
+ note: "APK signé Groupe KA, installation directe (autoriser « sources inconnues »). Carte Mapbox 2D/3D, parité complète avec iOS.", |
|
50 |
+ available: true, |
|
51 |
+ }, |
|
52 |
+ { |
|
53 |
+ platform: "macOS (14+)", |
|
54 |
+ icon: "💻", |
|
55 |
+ version: "1.0.0", |
|
56 |
+ build: "notarisée Apple", |
|
57 |
+ date: "2026-08-18", |
|
58 |
+ href: "/dl/KA-macos-1.0.0.dmg", |
|
59 |
+ cta: "Télécharger le DMG", |
|
60 |
+ note: "App native SwiftUI signée Developer ID et notarisée : barre de menus (pouls en direct, recherche ⌘⇧K), fenêtre complète des 12 univers.", |
|
61 |
+ available: false, // bascule à true quand le DMG est déposé dans public/dl/ |
|
62 |
+ }, |
|
63 |
+]; |
|
64 |
+ |
|
65 |
+export default function TelechargerPage() { |
|
66 |
+ return ( |
|
67 |
+ <main className="mx-auto max-w-6xl px-4 py-12 sm:px-6"> |
|
68 |
+ <p className="kicker">L'écosystème dans votre poche · et sur votre bureau</p> |
|
69 |
+ <h1 className="gk-display mt-3 text-[clamp(28px,4.5vw,44px)] leading-[1.02] font-bold tracking-[-0.035em] uppercase"> |
|
70 |
+ Télécharger <span className="hl">l'app KA</span> |
|
71 |
+ </h1> |
|
72 |
+ <p className="mt-4 max-w-xl text-[14.5px] text-ink-2"> |
|
73 |
+ Une seule app, les 12 univers : logements, propriétés, autos, emplois, |
|
74 |
+ épicerie, restos, sorties, créateurs, estimation immobilière, recherche |
|
75 |
+ du web québécois — avec la carte 2D/3D, les favoris multi-univers, les |
|
76 |
+ alertes et KA Agent, l'assistant IA de l'écosystème. |
|
77 |
+ </p> |
|
78 |
+ |
|
79 |
+ <div className="mt-10 grid gap-6 md:grid-cols-3"> |
|
80 |
+ {RELEASES.map((r) => ( |
|
81 |
+ <article key={r.platform} className="gk-card gk-card-hover flex flex-col p-6"> |
|
82 |
+ <p className="text-[34px]" aria-hidden="true">{r.icon}</p> |
|
83 |
+ <h2 className="gk-display mt-2 text-[19px] font-bold">{r.platform}</h2> |
|
84 |
+ <p className="gk-mono mt-1 text-[11px] font-bold tracking-[0.08em] text-green uppercase"> |
|
85 |
+ v{r.version} · {r.build} · {r.date} |
|
86 |
+ {r.size ? ` · ${r.size}` : ""} |
|
87 |
+ </p> |
|
88 |
+ <p className="mt-3 flex-1 text-[13px] text-ink-2">{r.note}</p> |
|
89 |
+ {r.available ? ( |
|
90 |
+ <a |
|
91 |
+ href={r.href} |
|
92 |
+ className="gk-display mt-5 inline-block rounded-full border-[1.5px] border-ink bg-ink px-5 py-[10px] text-center text-[14px] font-bold text-lime transition-colors hover:bg-green-deep" |
|
93 |
+ > |
|
94 |
+ {r.cta} ↓ |
|
95 |
+ </a> |
|
96 |
+ ) : ( |
|
97 |
+ <span className="gk-mono mt-5 inline-block rounded-full border-[1.5px] border-dashed border-ink px-5 py-[10px] text-center text-[11px] font-bold text-ink-3 uppercase"> |
|
98 |
+ Arrive d'une minute à l'autre |
|
99 |
+ </span> |
|
100 |
+ )} |
|
101 |
+ {r.sha256 && ( |
|
102 |
+ <p className="gk-mono mt-3 text-[9px] break-all text-ink-3"> |
|
103 |
+ SHA-256 : {r.sha256} |
|
104 |
+ </p> |
|
105 |
+ )} |
|
106 |
+ </article> |
|
107 |
+ ))} |
|
108 |
+ </div> |
|
109 |
+ |
|
110 |
+ <p className="gk-mono mt-10 text-[11px] leading-relaxed text-ink-3"> |
|
111 |
+ Les trois apps consomment les mêmes données en direct que les sites — |
|
112 |
+ rien d'inventé, tout est traçable. Code : git.spboucher.ai |
|
113 |
+ (ka-ios · ka-android · ka-macos). Un seul compte KA ID pour tout. |
|
114 |
+ </p> |
|
115 |
+ </main> |
|
116 |
+ ); |
|
117 |
+} |
|
118 |
|