wild-bangun

byTaba Belva

Bangun aplikasi Android Lumiere AI Photo Enhancer yang benar-benar berfungsi, siap dipasang, dan dipersiapkan untuk Google Play Store. Jika project sudah ada, lanjutkan dan perbaiki project tersebut, jangan mulai ulang tanpa alasan. DESAIN: UI premium, minimalis, hidup, super smooth, warna biru muda #8FB3E2 dan #B4D9F2, glow lembut dari logo, animasi ringan, transisi halus, serta dark mode/light mode yang tersimpan. Semua UI berbahasa Indonesia. ALUR: Splash → onboarding sekali → Home. Tanpa login. Gunakan Android Photo Picker. Home menyediakan dua mode: 1. Foto Umum HD: meningkatkan resolusi, detail, ketajaman, warna, dan mengurangi artefak. 2. Text HD: memperjelas tulisan pada dokumen, screenshot, poster, dan foto teks sambil menjaga bentuk karakter dan isi tulisan tanpa mengarang teks baru. AI WAJIB NYATA: Integrasikan Real-ESRGAN, prioritaskan x4plus atau varian yang sesuai. Gunakan TFLite/LiteRT bila kompatibel. Pastikan bobot model asli, arsitektur, lisensi, preprocessing, tensor, dan postprocessing benar. Jangan gunakan simulasi atau filter biasa sebagai pengganti AI. Mode teks harus memakai pipeline yang sesuai. Utamakan AI offline dengan model yang benar-benar tersedia. PERFORMA: Optimalkan CPU, RAM, thread, bitmap, dan tiled inference jika didukung. Proses di background, cegah UI freeze, sediakan fallback CPU, dan tangani gambar besar serta kehabisan memori. Jangan mengarang benchmark atau mewajibkan root, Vulkan, NCNN, atau JNI tanpa kebutuhan. FITUR: Before/after interaktif, progres akurat, informasi resolusi, simpan ke galeri, bagikan, tingkatkan lagi, serta riwayat lokal yang dapat dibuka dan dihapus. Jangan menampilkan hasil palsu atau mengklaim 4K jika resolusinya tidak sesuai. TEKNIS: Gunakan Kotlin, Compose atau XML sesuai project, serta Gradle, SDK, Java, dan dependensi yang kompatibel. Semua tombol harus berfungsi. Terapkan penanganan error, izin minimal, keamanan gambar, privasi, dan kebijakan privasi. RILIS: Uji build, instalasi, model AI, kedua mode, hasil gambar, penyimpanan, riwayat, tema, performa, dan crash. Siapkan source code lengkap, aset launcher, APK debug, AAB release, signing aman, dokumentasi, lisensi model, dan persiapan Play Store jika lingkungan mendukung. Kerjakan bertahap dari audit project hingga pengujian. Perbaiki error dan laporkan hasil nyata. Jangan mengklaim AI berfungsi atau aplikasi siap rilis sebelum benar-benar diuji. Prioritaskan kualitas AI, kecepatan, stabilitas, privasi, dan desain premium.

No preview

Comments (0)

No comments yet. Be the first!

System Requirements

System Requirements Document for wild-bangun

Page 1 of 40

1. Introduction

wild-bangun adalah aplikasi Android bernama Lumiere AI Photo Enhancer: alat peningkatan foto berbasis AI nyata yang berjalan offline di perangkat. Aplikasi ini ditujukan untuk pengguna Android umum di Indonesia yang memotret dokumen, screenshot, poster, dan foto sehari-hari, lalu ingin melihat fotonya "berubah" menjadi lebih tajam, lebih detail, dan lebih jelas — cepat, privat, dan tanpa unggah ke server.

Produk ini dibangun dengan komitmen berikut:

  • AI wajib nyata. Integrasi Real-ESRGAN dengan prioritas varian x4plus atau varian yang sesuai, memakai TFLite/LiteRT bila kompatibel, dengan bobot model asli, arsitektur, lisensi, preprocessing, tensor, dan postprocessing yang benar. Simulasi atau filter biasa tidak boleh dipakai sebagai pengganti AI.
  • Dua mode peningkatan. Foto Umum HD (resolusi, detail, ketajaman, warna, pengurangan artefak) dan Text HD (memperjelas tulisan pada dokumen, screenshot, poster, dan foto teks sambil menjaga bentuk karakter dan isi tulisan tanpa mengarang teks baru).
  • Offline dan privat. Inferensi berjalan di perangkat, tanpa login, tanpa unggah gambar.
  • Desain premium. UI minimalis, hidup, super smooth, dengan palet biru muda #8FB3E2 dan #B4D9F2, glow lembut dari logo, animasi ringan, transisi halus, serta dark mode/light mode yang tersimpan. Seluruh UI berbahasa Indonesia.
  • Kejujuran hasil. Tidak menampilkan hasil palsu dan tidak mengklaim 4K jika resolusi aktualnya tidak sesuai.

Audiens dokumen ini adalah tim rekayasa yang akan mengaudit, memperbaiki, membangun, menguji, dan menyiapkan aplikasi ini untuk Google Play Store.

Page 2 of 40

2. System Overview

wild-bangun adalah aplikasi Android native yang dibangun dengan Kotlin dan Jetpack Compose (atau XML sesuai kondisi project yang ada), memakai Gradle, SDK, Java, dan dependensi yang kompatibel. Aplikasi berjalan sepenuhnya di perangkat: pemilihan gambar melalui Android Photo Picker, inferensi AI offline di background, penyimpanan hasil ke galeri melalui mekanisme Android yang sesuai, berbagi melalui share sheet Android, dan riwayat lokal yang dapat dibuka serta dihapus.

Alur utama: Splash → Onboarding (sekali) → Home. Tanpa login. Status onboarding, pilihan tema, dan riwayat disimpan secara lokal.

Aktor: Satu persona aktif — Pengguna Aplikasi Lumiere AI Photo Enhancer. Tidak ada aktor manusia lain, tidak ada peran admin, tidak ada akun.

Kemampuan yang diterima saat ini:

  • Landing anonim yang menjelaskan Lumiere AI Photo Enhancer sebelum alur aplikasi dimulai.
  • Splash yang mengarahkan ke Onboarding hanya saat onboarding belum selesai, dan ke Home setelah status onboarding tersimpan.
  • Onboarding satu kali dengan status tersimpan lokal.
  • Home dengan dua kartu mode: Foto Umum HD dan Text HD.
  • Pemilihan gambar via Android Photo Picker dengan izin minimal.
  • Workspace Enhance: inferensi AI offline, progres akurat, before/after interaktif, informasi resolusi, simpan ke galeri, bagikan, tingkatkan lagi.
  • History: riwayat lokal yang dapat dibuka dan dihapus.
  • Settings: pengaturan tema tersimpan serta konteks informasi privasi dan kebijakan aplikasi.
Page 3 of 40

Pengecualian sempit: Tidak ada login. Tidak ada akun. Tidak ada unggah gambar ke server. Tidak ada simulasi AI atau filter biasa sebagai pengganti AI. Tidak ada klaim 4K palsu. Tidak ada root, Vulkan, NCNN, atau JNI yang diwajibkan tanpa kebutuhan. Tidak ada benchmark yang dikarang.

2a. Product Interpretation and Delivery Boundary

Kepemilikan delivery. Seluruh pengalaman pengguna dimiliki oleh aplikasi Android first-party. Tidak ada provider eksternal yang memiliki permukaan produk, tidak ada layanan backend yang menjadi pemilik alur, dan tidak ada delivery headless. Android Photo Picker adalah permukaan sistem Android yang dipakai sebagai jalur pemilihan gambar dengan izin minimal; galeri dan share sheet Android adalah mekanisme sistem untuk menyimpan dan membagikan hasil. Inferensi AI berjalan sebagai proses background di dalam aplikasi.

Kepemilikan akses. Aplikasi tidak memiliki login dan tidak memiliki akun. Landing dapat dijangkau anonim sebelum alur aplikasi dimulai. Splash, Onboarding, Home, Enhance, History, dan Settings semuanya dapat diakses tanpa identitas, sesuai kontrak halaman yang berlaku. Tidak ada destinasi yang dilindungi, sehingga tidak ada interaksi pembentukan identitas yang diperlukan.

Batas current vs future. Semua kemampuan di atas adalah komitmen saat ini. Persiapan Play Store (APK debug, AAB release, signing aman, dokumentasi, lisensi model) adalah pekerjaan rilis saat ini yang dilakukan jika lingkungan mendukung. Tidak ada fitur future yang didefinisikan dalam thread kebutuhan ini.

2b. Source Content Inventory

Tidak ada reference directive dengan content_source pada sumber, sehingga inventory ini tidak disertakan.

Page 4 of 40

2c. Page Content and Component Coverage

Landing

  • Informasi/state: Penjelasan anonim tentang Lumiere AI Photo Enhancer — apa yang dilakukan aplikasi, untuk siapa, dan bahwa peningkatan berjalan offline tanpa unggah dan tanpa login. Tidak ada state pengguna yang dimuat.
  • Aksi utama: Masuk ke alur aplikasi (menuju Splash).
  • Aksi pendukung: Membaca penjelasan fungsi peningkatan foto dan dua mode yang tersedia.
  • Entitas domain: Tidak ada entitas pengguna; konten produk statis.
  • Tanggung jawab komponen: Hero rata-kiri dengan judul besar dan subbaris "AI offline, tanpa unggah, tanpa login"; glow lembut dari logo sebagai sumber cahaya; panel kaca berlapis di atas gradasi radial biru muda; tombol pil untuk masuk alur.
  • State: Loading tidak berlaku (konten lokal). Empty tidak berlaku. Success: pengguna memahami produk dan masuk alur. Error: tidak ada jalur error produk. Recovery: tidak berlaku.
Page 5 of 40

Splash

  • Informasi/state: Identitas Lumiere dengan glow logo yang bernapas pelan; pembacaan status onboarding tersimpan secara lokal.
  • Aksi utama: Tidak ada aksi pengguna; splash mengarahkan otomatis.
  • Aksi pendukung: Tidak ada.
  • Entitas domain: Status onboarding tersimpan (selesai/belum selesai).
  • Tanggung jawab komponen: Glow logo sebagai sumber cahaya; transisi fade + slide 8px 220ms; routing ke Onboarding hanya saat onboarding belum selesai, dan ke Home setelah status onboarding tersimpan.
  • State: Loading: pembacaan status lokal singkat. Empty: tidak berlaku. Success: routing tepat ke Onboarding atau Home. Error: jika pembacaan status gagal, aplikasi memperlakukan onboarding sebagai belum selesai dan mengarahkan ke Onboarding. Recovery: pengguna dapat menyelesaikan onboarding dan melanjutkan.
Page 6 of 40

Onboarding

  • Informasi/state: Pengenalan satu kali tentang cara kerja aplikasi, dua mode peningkatan, dan sifat offline/privat.
  • Aksi utama: Menyelesaikan onboarding dan menyimpan status selesai secara lokal.
  • Aksi pendukung: Berpindah antar langkah pengenalan.
  • Entitas domain: Status onboarding tersimpan.
  • Tanggung jawab komponen: Panel kaca berlapis dengan border cahaya 1px di tepi atas; bentuk kaca 3D primitif (bola dan kapsul tembus cahaya) sebagai visual pendukung; tombol pil untuk menyelesaikan.
  • State: Loading: tidak berlaku. Empty: tidak berlaku. Success: status onboarding tersimpan dan pengguna diarahkan ke Home. Error: jika penyimpanan status gagal, pengguna tetap dapat melanjutkan ke Home dan onboarding akan ditampilkan lagi pada peluncuran berikutnya. Recovery: menyelesaikan onboarding kembali.
Page 7 of 40

Home

  • Informasi/state: Judul besar rata-kiri "Tingkatkan fotomu" dengan subbaris "AI offline, tanpa unggah, tanpa login"; dua kartu mode dengan ikon, judul mode, dan satu baris penjelasan.
  • Aksi utama: Memilih mode Foto Umum HD atau Text HD, lalu memilih gambar melalui Android Photo Picker.
  • Aksi pendukung: Membuka History; membuka Settings.
  • Entitas domain: Mode peningkatan (Foto Umum HD, Text HD); gambar terpilih dari Android Photo Picker.
  • Tanggung jawab komponen: Bidang gradasi radial #B4D9F2→#EEF4FB setinggi 42% viewport dengan bola kaca 3D tembus cahaya yang mengambang pelan di kanan-atas; glow lembut dari logo memancar dari tepi kiri-atas judul; kartu mode sebagai panel kaca dengan border cahaya 1px di tepi atas, mengangkat 2px dan tepi kacanya menyala saat ditekan; kartu ditumpuk vertikal di mobile dan menjadi dua kolom sejajar di ≥768px.
  • State: Loading: tidak berlaku. Empty: tidak berlaku karena mode selalu tersedia. Success: mode terpilih dan gambar terpilih, lanjut ke Enhance. Error: jika pemilihan gambar dibatalkan atau gagal, pengguna kembali ke Home tanpa kehilangan pilihan mode. Recovery: memilih ulang mode atau gambar.
Page 8 of 40

Enhance

  • Informasi/state: Gambar asli pengguna, progres inferensi yang dihitung dari jumlah tile yang selesai, status model AI, dan metadata teknis (resolusi asli → hasil, ukuran file, waktu proses).
  • Aksi utama: Menjalankan inferensi AI offline untuk mode terpilih; menyimpan hasil ke galeri; membagikan hasil; meningkatkan lagi.
  • Aksi pendukung: Menggeser slider before/after; membuka History; membuka Settings.
  • Entitas domain: Gambar asli, gambar hasil, mode peningkatan, progres tile, metadata resolusi dan ukuran file, waktu proses, status model AI.
  • Tanggung jawab komponen: Panel hasil sebagai kaca tembus pandang tanpa bingkai dengan gambar before/after sebagai bidang penuh; garis pemisah bercahaya dan pegangan bulat kaca; label "Sebelum" dan "Sesudah" sebagai chip kaca kecil di sudut; baris chip metadata teknis dalam Plus Jakarta Sans uppercase 11px tracking +0.14em; deretan tombol pil Simpan / Bagikan / Tingkatkan Lagi; glow logo menyala saat inferensi berjalan dan meredup saat selesai; progres mengalir sebagai garis cahaya dengan persentase nyata.
  • State: Loading: inferensi berjalan di background dengan progres akurat dan UI tidak freeze. Empty: tidak berlaku karena Enhance selalu dimulai dari gambar terpilih. Success: hasil nyata ditampilkan dengan resolusi aktual, dapat disimpan, dibagikan, dan ditingkatkan lagi. Error: kegagalan model, gambar besar, atau kehabisan memori ditangani dengan pesan error yang jelas dan fallback CPU; pengguna dapat mencoba lagi atau kembali ke Home. Recovery: meningkatkan lagi dari hasil yang ada atau memilih gambar baru.
Page 9 of 40

History

  • Informasi/state: Daftar riwayat peningkatan lokal dengan thumbnail, mode, dan resolusi.
  • Aksi utama: Membuka item riwayat; menghapus item riwayat.
  • Aksi pendukung: Membuka Settings.
  • Entitas domain: Item riwayat (thumbnail, mode, resolusi, waktu).
  • Tanggung jawab komponen: Rel kaca horizontal dengan kartu riwayat yang dapat ditarik penuh ke dalam tampilan; di reduced-motion rel tetap dapat digulir dan item membungkus ke baris berikutnya.
  • State: Loading: pembacaan riwayat lokal. Empty: tampilan kosong dengan bentuk kaca 3D primitif dan pesan bahwa belum ada riwayat. Success: item dapat dibuka dan dihapus. Error: jika pembacaan atau penghapusan gagal, pesan error ditampilkan dan daftar tetap konsisten. Recovery: mencoba lagi atau menghapus item lain.

Settings

  • Informasi/state: Pilihan tema (light/dark) yang tersimpan; konteks informasi privasi dan kebijakan aplikasi.
  • Aksi utama: Mengubah dan menyimpan pilihan tema.
  • Aksi pendukung: Membaca informasi privasi dan kebijakan privasi.
  • Entitas domain: Preferensi tema tersimpan.
  • Tanggung jawab komponen: Panel kaca berlapis dengan border cahaya 1px di tepi atas; kontrol pemilihan tema; teks kebijakan privasi.
  • State: Loading: pembacaan preferensi lokal. Empty: tidak berlaku. Success: tema berubah dan tersimpan. Error: jika penyimpanan preferensi gagal, tema tetap diterapkan untuk sesi berjalan dan pesan error ditampilkan. Recovery: mengubah tema kembali.
Page 10 of 40

3. Functional Requirements

FR-01 — Membangun dan melanjutkan aplikasi Android Lumiere AI Photo Enhancer As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should mendapatkan aplikasi Android Lumiere AI Photo Enhancer yang benar-benar berfungsi dan siap dipasang, sehingga saya dapat meningkatkan foto di perangkat saya.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: pemasangan dan peluncuran aplikasi. Observable result: aplikasi terpasang dan berjalan. Failure/recovery: jika project sudah ada, project tersebut dilanjutkan dan diperbaiki, bukan dimulai ulang tanpa alasan. Continuation: pengguna masuk ke alur Splash → Onboarding → Home.
  • Acceptance: aplikasi dapat dipasang dan dijalankan; project yang sudah ada dilanjutkan dan diperbaiki.

FR-02 — UI premium dengan palet biru muda dan tema tersimpan As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should melihat UI premium, minimalis, hidup, dan super smooth dengan warna biru muda #8FB3E2 dan #B4D9F2, glow lembut dari logo, animasi ringan, transisi halus, serta dark mode/light mode yang tersimpan, sehingga aplikasi terasa mewah dan nyaman dipakai.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: membuka aplikasi atau mengubah tema. Observable result: UI memakai palet yang diminta dengan glow logo dan transisi halus; pilihan tema tersimpan dan bertahan. Failure/recovery: jika penyimpanan tema gagal, tema tetap diterapkan untuk sesi berjalan. Continuation: pengguna melanjutkan pekerjaan dengan tema pilihannya.
  • Acceptance: palet #8FB3E2 dan #B4D9F2 terpakai; glow logo tampil; animasi ringan dan transisi halus; dark mode/light mode tersimpan.
Page 11 of 40

FR-03 — Semua UI berbahasa Indonesia As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should melihat seluruh UI dalam bahasa Indonesia, sehingga saya memahami setiap label, tombol, dan pesan.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: membuka layar mana pun. Observable result: semua teks UI berbahasa Indonesia. Failure/recovery: tidak berlaku. Continuation: pengguna memahami dan memakai aplikasi.
  • Acceptance: tidak ada teks UI dalam bahasa lain.

FR-04 — Alur Splash → Onboarding sekali → Home tanpa login As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should melewati alur Splash → onboarding sekali → Home tanpa login, sehingga saya bisa langsung memakai aplikasi.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: meluncurkan aplikasi. Observable result: Splash mengarahkan ke Onboarding hanya saat onboarding belum selesai, dan ke Home setelah status onboarding tersimpan. Failure/recovery: jika pembacaan status onboarding gagal, aplikasi mengarahkan ke Onboarding. Continuation: pengguna tiba di Home.
  • Acceptance: tidak ada login; onboarding hanya sekali; routing Splash benar.
Page 12 of 40

FR-05 — Pemilihan gambar via Android Photo Picker As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should memilih gambar melalui Android Photo Picker, sehingga saya dapat memilih foto dengan izin minimal.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: memilih mode di Home. Observable result: Android Photo Picker terbuka dan gambar terpilih tersedia untuk diproses. Failure/recovery: jika pemilihan dibatalkan atau gagal, pengguna kembali ke Home tanpa kehilangan pilihan mode. Continuation: gambar terpilih masuk ke Enhance.
  • Acceptance: Android Photo Picker dipakai; izin minimal; pembatalan tidak merusak state.

FR-06 — Mode Foto Umum HD As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should memakai mode Foto Umum HD, sehingga resolusi, detail, ketajaman, dan warna foto meningkat serta artefak berkurang.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: memilih mode Foto Umum HD dan gambar. Observable result: hasil peningkatan nyata dari AI offline dengan resolusi, detail, ketajaman, dan warna yang meningkat serta artefak berkurang. Failure/recovery: kegagalan inferensi ditangani dengan pesan error dan fallback CPU. Continuation: hasil dapat disimpan, dibagikan, atau ditingkatkan lagi.
  • Acceptance: hasil berasal dari AI nyata, bukan simulasi atau filter biasa; resolusi aktual ditampilkan jujur.
Page 13 of 40

FR-07 — Mode Text HD As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should memakai mode Text HD, sehingga tulisan pada dokumen, screenshot, poster, dan foto teks menjadi lebih jelas sambil menjaga bentuk karakter dan isi tulisan tanpa mengarang teks baru.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: memilih mode Text HD dan gambar. Observable result: tulisan lebih jelas dengan bentuk karakter dan isi tulisan terjaga; tidak ada teks baru yang dikarang. Failure/recovery: kegagalan pipeline teks ditangani dengan pesan error dan fallback CPU. Continuation: hasil dapat disimpan, dibagikan, atau ditingkatkan lagi.
  • Acceptance: mode teks memakai pipeline yang sesuai; tidak ada teks yang dikarang.

FR-08 — Integrasi Real-ESRGAN nyata As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should mendapatkan hasil dari integrasi Real-ESRGAN yang nyata, sehingga peningkatan foto benar-benar dilakukan oleh AI.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: menjalankan inferensi. Observable result: inferensi memakai Real-ESRGAN dengan prioritas x4plus atau varian yang sesuai, TFLite/LiteRT bila kompatibel, bobot model asli, arsitektur, lisensi, preprocessing, tensor, dan postprocessing yang benar. Failure/recovery: jika model tidak tersedia atau tidak valid, aplikasi menampilkan error dan tidak mengklaim AI berfungsi. Continuation: pengguna dapat mencoba lagi setelah model tervalidasi.
  • Acceptance: tidak ada simulasi atau filter biasa sebagai pengganti AI; lisensi model tersedia.
Page 14 of 40

FR-09 — AI offline dengan model yang benar-benar tersedia As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should menjalankan AI secara offline dengan model yang benar-benar tersedia, sehingga foto saya tidak diunggah dan pemrosesan tetap privat.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: menjalankan inferensi. Observable result: inferensi berjalan di perangkat tanpa unggah. Failure/recovery: jika model tidak tersedia, aplikasi menampilkan error yang jelas. Continuation: pengguna dapat memproses gambar setelah model tersedia.
  • Acceptance: tidak ada unggah gambar; model benar-benar tersedia di perangkat.

FR-10 — Optimasi performa dan pemrosesan background As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should mendapatkan pemrosesan yang dioptimalkan pada CPU, RAM, thread, bitmap, dan tiled inference jika didukung, diproses di background, tanpa UI freeze, dengan fallback CPU serta penanganan gambar besar dan kehabisan memori.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: menjalankan inferensi pada gambar besar. Observable result: proses berjalan di background dengan progres akurat; UI tetap responsif; fallback CPU tersedia; gambar besar dan kehabisan memori ditangani. Failure/recovery: kehabisan memori atau kegagalan proses ditangani dengan pesan error dan opsi mencoba lagi. Continuation: pengguna dapat melanjutkan atau memilih gambar lain.
  • Acceptance: tidak ada UI freeze; tidak ada benchmark yang dikarang; root, Vulkan, NCNN, atau JNI tidak diwajibkan tanpa kebutuhan.
Page 15 of 40

FR-11 — Before/after interaktif As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should membandingkan before/after secara interaktif, sehingga saya dapat menilai hasil peningkatan.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: hasil tersedia di Enhance. Observable result: slider before/after mengikuti jari tanpa lag dengan label "Sebelum" dan "Sesudah". Failure/recovery: jika hasil belum tersedia, slider tidak ditampilkan. Continuation: pengguna menyimpan, membagikan, atau meningkatkan lagi.
  • Acceptance: slider interaktif dan responsif; pratinjau memakai gambar asli pengguna, bukan contoh palsu.

FR-12 — Progres akurat As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should melihat progres yang akurat, sehingga saya tahu seberapa jauh pemrosesan berjalan.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: inferensi berjalan. Observable result: persentase dihitung dari jumlah tile yang selesai dan ditampilkan sebagai garis cahaya. Failure/recovery: jika inferensi gagal, progres berhenti dan pesan error ditampilkan. Continuation: pengguna dapat mencoba lagi.
  • Acceptance: progres berasal dari perhitungan nyata, bukan animasi palsu.
Page 16 of 40

FR-13 — Informasi resolusi As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should melihat informasi resolusi, sehingga saya tahu resolusi asli dan resolusi hasil.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: hasil tersedia. Observable result: baris chip metadata menampilkan resolusi asli → hasil, ukuran file, dan waktu proses. Failure/recovery: jika metadata tidak tersedia, aplikasi tidak menampilkan angka palsu. Continuation: pengguna memutuskan untuk menyimpan atau meningkatkan lagi.
  • Acceptance: resolusi aktual ditampilkan; tidak ada klaim 4K jika resolusinya tidak sesuai.

FR-14 — Simpan ke galeri As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should menyimpan hasil ke galeri, sehingga foto tersimpan di perangkat saya.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: menekan tombol Simpan. Observable result: hasil tersimpan ke galeri melalui mekanisme Android yang sesuai. Failure/recovery: jika penyimpanan gagal atau izin tidak tersedia, pesan error ditampilkan dan pengguna dapat mencoba lagi. Continuation: pengguna dapat membagikan atau meningkatkan lagi.
  • Acceptance: hasil tersimpan di galeri; izin minimal.

FR-15 — Bagikan As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should membagikan hasil, sehingga saya dapat mengirimkannya ke aplikasi lain.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: menekan tombol Bagikan. Observable result: share sheet Android terbuka dengan hasil. Failure/recovery: jika berbagi gagal, pesan error ditampilkan. Continuation: pengguna kembali ke Enhance.
  • Acceptance: berbagi melalui mekanisme Android yang sesuai.
Page 17 of 40

FR-16 — Tingkatkan lagi As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should meningkatkan lagi hasil yang sudah ada, sehingga saya dapat memperbaiki hasil lebih lanjut.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: menekan tombol Tingkatkan Lagi. Observable result: inferensi berjalan lagi pada hasil yang ada dengan mode yang dipilih. Failure/recovery: kegagalan ditangani dengan pesan error dan fallback CPU. Continuation: hasil baru ditampilkan dan dapat disimpan atau dibagikan.
  • Acceptance: peningkatan ulang berjalan dengan AI nyata.

FR-17 — Riwayat lokal yang dapat dibuka dan dihapus As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should membuka dan menghapus riwayat lokal, sehingga saya dapat meninjau atau membersihkan riwayat peningkatan saya.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: membuka History. Observable result: daftar riwayat dengan thumbnail, mode, dan resolusi; item dapat dibuka dan dihapus. Failure/recovery: jika pembacaan atau penghapusan gagal, pesan error ditampilkan dan daftar tetap konsisten. Continuation: pengguna dapat membuka item lain atau kembali ke Home.
  • Acceptance: riwayat tersimpan lokal; item dapat dibuka dan dihapus.
Page 18 of 40

FR-18 — Kejujuran hasil dan resolusi As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should tidak pernah melihat hasil palsu atau klaim 4K yang tidak sesuai, sehingga saya dapat mempercayai aplikasi.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: melihat hasil dan metadata. Observable result: semua angka resolusi, ukuran, dan waktu berasal dari pemrosesan nyata. Failure/recovery: jika angka tidak dapat dihitung, aplikasi tidak menampilkan klaim. Continuation: pengguna memakai hasil dengan keyakinan.
  • Acceptance: tidak ada hasil palsu; tidak ada klaim 4K yang tidak sesuai.

FR-19 — Teknologi Kotlin dan dependensi kompatibel As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should mendapatkan aplikasi yang dibangun dengan Kotlin, Compose atau XML sesuai project, serta Gradle, SDK, Java, dan dependensi yang kompatibel, sehingga aplikasi stabil dan dapat dibangun.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: membangun dan menjalankan aplikasi. Observable result: aplikasi berjalan dengan stack yang kompatibel. Failure/recovery: error build diperbaiki. Continuation: aplikasi siap diuji.
  • Acceptance: Kotlin dipakai; Compose atau XML sesuai project; Gradle, SDK, Java, dan dependensi kompatibel.

FR-20 — Semua tombol berfungsi As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should menemukan semua tombol berfungsi, sehingga tidak ada kontrol mati yang membingungkan.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: menekan tombol mana pun. Observable result: tombol menjalankan aksinya. Failure/recovery: jika aksi gagal, pesan error ditampilkan. Continuation: pengguna dapat melanjutkan.
  • Acceptance: tidak ada tombol yang tidak berfungsi.
Page 19 of 40

FR-21 — Penanganan error, izin minimal, keamanan gambar, privasi, dan kebijakan privasi As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should mendapatkan penanganan error, izin minimal, keamanan gambar, privasi, dan kebijakan privasi, sehingga data foto saya aman dan saya tahu bagaimana data diperlakukan.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: memakai aplikasi. Observable result: error ditangani dengan pesan jelas; izin minimal diminta; gambar aman; kebijakan privasi tersedia di Settings. Failure/recovery: kegagalan izin atau penyimpanan ditangani dengan pesan dan opsi mencoba lagi. Continuation: pengguna dapat melanjutkan dengan aman.
  • Acceptance: izin minimal; kebijakan privasi tersedia; tidak ada unggah gambar.

FR-22 — Pengujian dan pelaporan hasil nyata As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should mendapatkan aplikasi yang diuji secara nyata sebelum diklaim berfungsi atau siap rilis, sehingga saya tidak tertipu klaim.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: tahap pengujian. Observable result: build, instalasi, model AI, kedua mode, hasil gambar, penyimpanan, riwayat, tema, performa, dan crash diuji; hasil dilaporkan apa adanya. Failure/recovery: error yang ditemukan diperbaiki dan dilaporkan. Continuation: aplikasi siap dirilis hanya setelah benar-benar diuji.
  • Acceptance: tidak ada klaim AI berfungsi atau aplikasi siap rilis sebelum benar-benar diuji.
Page 20 of 40

FR-23 — Persiapan rilis dan Play Store As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should mendapatkan source code lengkap, aset launcher, APK debug, AAB release, signing aman, dokumentasi, lisensi model, dan persiapan Play Store jika lingkungan mendukung, sehingga aplikasi dapat didistribusikan.

  • Provenance: explicit
  • Lifecycle: Initiator: pengguna. Trigger: tahap rilis. Observable result: artefak rilis tersedia dan siap. Failure/recovery: jika lingkungan tidak mendukung, keterbatasan dilaporkan secara jujur. Continuation: aplikasi siap dipublikasikan.
  • Acceptance: artefak rilis tersedia; signing aman; lisensi model terdokumentasi.

FR-24 — Landing anonim sebelum alur aplikasi As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should dapat menjangkau Landing secara anonim sebelum alur aplikasi, sehingga saya memahami produk sebelum memulai.

  • Provenance: required_inference
  • Lifecycle: Initiator: pengguna. Trigger: membuka aplikasi pertama kali. Observable result: Landing menjelaskan Lumiere AI Photo Enhancer, sasaran pengguna, dan fungsi peningkatan foto. Failure/recovery: tidak berlaku. Continuation: pengguna masuk ke alur aplikasi.
  • Acceptance: Landing dapat dijangkau anonim.
Page 21 of 40

FR-25 — Routing Splash berdasarkan status onboarding As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should diarahkan dari Splash ke Onboarding hanya saat onboarding belum selesai, dan ke Home setelah status onboarding tersimpan.

  • Provenance: required_inference
  • Lifecycle: Initiator: pengguna. Trigger: meluncurkan aplikasi. Observable result: routing tepat. Failure/recovery: jika pembacaan status gagal, aplikasi mengarahkan ke Onboarding. Continuation: pengguna tiba di tujuan yang benar.
  • Acceptance: routing benar untuk kedua kondisi.

FR-26 — Validasi model dan pipeline sebelum klaim AI As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should mendapatkan model Real-ESRGAN asli, pipeline Text HD, preprocessing, tensor, postprocessing, dan lisensi yang tersedia serta tervalidasi sebelum klaim fungsi AI.

  • Provenance: required_inference
  • Lifecycle: Initiator: pengguna. Trigger: menjalankan inferensi. Observable result: model dan pipeline tervalidasi; lisensi tersedia. Failure/recovery: jika validasi gagal, aplikasi menampilkan error dan tidak mengklaim AI berfungsi. Continuation: pengguna dapat mencoba lagi setelah validasi berhasil.
  • Acceptance: model asli; pipeline teks sesuai; lisensi tersedia.
Page 22 of 40

FR-27 — Inferensi offline di background dengan penanganan kegagalan As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should mendapatkan inferensi yang berjalan offline di background dengan penanganan gambar besar, kehabisan memori, error, dan fallback CPU.

  • Provenance: required_inference
  • Lifecycle: Initiator: pengguna. Trigger: menjalankan inferensi. Observable result: inferensi berjalan di background; kegagalan ditangani. Failure/recovery: fallback CPU dan pesan error. Continuation: pengguna dapat melanjutkan atau mencoba lagi.
  • Acceptance: inferensi offline; fallback CPU tersedia; kegagalan ditangani.

FR-28 — Penyimpanan lokal riwayat, status onboarding, dan tema As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should mendapatkan riwayat, status onboarding, dan pilihan tema yang disimpan secara lokal.

  • Provenance: required_inference
  • Lifecycle: Initiator: pengguna. Trigger: menyelesaikan onboarding, mengubah tema, atau menyelesaikan peningkatan. Observable result: data tersimpan lokal dan bertahan. Failure/recovery: jika penyimpanan gagal, pesan error ditampilkan dan state sesi berjalan tetap konsisten. Continuation: pengguna menemukan data saat kembali.
  • Acceptance: riwayat, status onboarding, dan tema tersimpan lokal.
Page 23 of 40

FR-29 — Penyimpanan galeri dan berbagi melalui mekanisme Android dengan resolusi aktual As a Pengguna Aplikasi Lumiere AI Photo Enhancer, I should menyimpan ke galeri dan membagikan hanya melalui mekanisme Android yang sesuai, dengan hasil dan resolusi aktual ditampilkan.

  • Provenance: required_inference
  • Lifecycle: Initiator: pengguna. Trigger: menekan Simpan atau Bagikan. Observable result: hasil tersimpan atau dibagikan melalui mekanisme Android; resolusi aktual ditampilkan. Failure/recovery: jika gagal, pesan error ditampilkan. Continuation: pengguna kembali ke Enhance.
  • Acceptance: mekanisme Android yang sesuai; resolusi aktual ditampilkan.

4. User Personas

Page 24 of 40

Pengguna Aplikasi Lumiere AI Photo Enhancer

Konteks produk. Pengguna Android umum di Indonesia yang memotret dokumen, screenshot, poster, dan foto sehari-hari. Ia tidak membuat akun dan tidak login. Ia memakai aplikasi untuk memperbaiki foto yang sudah ada di perangkatnya, sering kali foto yang terasa kurang tajam, kurang detail, atau tulisannya kurang jelas.

Tujuan utama. Memperoleh hasil peningkatan foto yang nyata dari AI offline, membandingkan before/after, menyimpan ke galeri, membagikan, meningkatkan lagi, serta membuka dan menghapus riwayat lokal.

Tanggung jawab yang diterima. Memilih mode peningkatan (Foto Umum HD atau Text HD); memilih gambar melalui Android Photo Picker; menjalankan inferensi; menilai hasil melalui before/after; menyimpan ke galeri; membagikan; meningkatkan lagi; membuka dan menghapus riwayat; mengubah tema; membaca informasi privasi.

Input dan keputusan. Input: gambar dari Android Photo Picker, pilihan mode, pilihan tema. Keputusan: mode mana yang sesuai untuk gambar (foto umum vs teks), apakah hasil memuaskan, apakah disimpan atau dibagikan, apakah ditingkatkan lagi, apakah item riwayat dihapus.

Interaksi dengan peserta lain. Tidak ada peserta manusia lain. Interaksi terjadi dengan permukaan sistem Android: Android Photo Picker untuk pemilihan gambar, galeri untuk penyimpanan, dan share sheet untuk berbagi. Inferensi AI berjalan sebagai proses background di dalam aplikasi.

Keberhasilan yang terlihat. Hasil peningkatan nyata ditampilkan dengan resolusi aktual, dapat disimpan dan dibagikan, riwayat dapat dibuka dan dihapus, tema tersimpan, dan aplikasi tidak menampilkan hasil palsu atau klaim 4K yang tidak sesuai.

Page 25 of 40

Yang membedakan perannya. Ia adalah satu-satunya aktor manusia: ia memulai, mengendalikan, dan menyelesaikan seluruh alur sendiri, tanpa peran admin, tanpa akun, dan tanpa kolaborasi. Nilai produk baginya terletak pada kualitas AI, kecepatan, stabilitas, privasi, dan desain premium.

5. Core User Flows

Alur 1 — Memahami produk dan masuk ke aplikasi (Landing → Splash)

  1. Pengguna membuka aplikasi pertama kali dan tiba di Landing secara anonim.
  2. Pengguna membaca penjelasan Lumiere AI Photo Enhancer, sasaran pengguna, dan fungsi peningkatan foto, termasuk bahwa AI berjalan offline, tanpa unggah, dan tanpa login.
  3. Pengguna menekan tombol masuk alur.
  4. Splash menampilkan identitas Lumiere dengan glow logo yang bernapas pelan dan membaca status onboarding tersimpan.
  5. Jika onboarding belum selesai, Splash mengarahkan ke Onboarding. Jika status onboarding tersimpan, Splash mengarahkan ke Home.
  6. Jika pembacaan status gagal, aplikasi memperlakukan onboarding sebagai belum selesai dan mengarahkan ke Onboarding; pengguna dapat menyelesaikan onboarding dan melanjutkan.
Page 26 of 40

Alur 2 — Menyelesaikan onboarding sekali

  1. Pengguna tiba di Onboarding dari Splash.
  2. Pengguna membaca pengenalan tentang cara kerja aplikasi, dua mode peningkatan, dan sifat offline/privat.
  3. Pengguna berpindah antar langkah pengenalan.
  4. Pengguna menyelesaikan onboarding; status selesai disimpan secara lokal.
  5. Pengguna diarahkan ke Home.
  6. Jika penyimpanan status gagal, pengguna tetap dapat melanjutkan ke Home dan onboarding akan ditampilkan lagi pada peluncuran berikutnya.
Page 27 of 40

Alur 3 — Meningkatkan foto umum dengan mode Foto Umum HD

  1. Pengguna tiba di Home dan melihat judul besar rata-kiri "Tingkatkan fotomu" dengan subbaris "AI offline, tanpa unggah, tanpa login", serta dua kartu mode.
  2. Pengguna menekan kartu Foto Umum HD; kartu mengangkat 2px dan tepi kacanya menyala.
  3. Android Photo Picker terbuka; pengguna memilih gambar.
  4. Jika pemilihan dibatalkan atau gagal, pengguna kembali ke Home tanpa kehilangan pilihan mode dan dapat memilih ulang.
  5. Gambar terpilih masuk ke Enhance; inferensi AI offline berjalan di background dengan progres akurat yang dihitung dari jumlah tile yang selesai, ditampilkan sebagai garis cahaya, sementara glow logo menyala.
  6. UI tetap responsif; gambar besar dan kehabisan memori ditangani; fallback CPU tersedia.
  7. Setelah selesai, glow logo meredup dan hasil nyata ditampilkan dengan resolusi aktual, ukuran file, dan waktu proses pada baris chip metadata.
  8. Pengguna menggeser slider before/after untuk membandingkan hasil; label "Sebelum" dan "Sesudah" tampil sebagai chip kaca kecil.
  9. Pengguna menekan Simpan untuk menyimpan ke galeri melalui mekanisme Android yang sesuai, atau Bagikan untuk membuka share sheet Android, atau Tingkatkan Lagi untuk menjalankan inferensi lagi pada hasil yang ada.
  10. Jika inferensi gagal, pesan error ditampilkan dan pengguna dapat mencoba lagi atau kembali ke Home.
Page 28 of 40

Alur 4 — Memperjelas tulisan dengan mode Text HD

  1. Pengguna tiba di Home.
  2. Pengguna menekan kartu Text HD.
  3. Android Photo Picker terbuka; pengguna memilih gambar dokumen, screenshot, poster, atau foto teks.
  4. Gambar terpilih masuk ke Enhance; inferensi berjalan dengan pipeline yang sesuai untuk teks.
  5. Progres akurat ditampilkan; UI tidak freeze.
  6. Setelah selesai, hasil ditampilkan dengan tulisan yang lebih jelas sementara bentuk karakter dan isi tulisan terjaga; tidak ada teks baru yang dikarang.
  7. Pengguna membandingkan before/after, lalu menyimpan, membagikan, atau meningkatkan lagi.
  8. Jika pipeline teks gagal, pesan error ditampilkan dan pengguna dapat mencoba lagi.

Alur 5 — Membuka dan menghapus riwayat lokal

  1. Pengguna membuka History dari Home atau Enhance.
  2. Aplikasi membaca riwayat lokal dan menampilkan rel kaca horizontal dengan kartu riwayat berisi thumbnail, mode, dan resolusi.
  3. Jika belum ada riwayat, tampilan kosong dengan bentuk kaca 3D primitif dan pesan bahwa belum ada riwayat ditampilkan.
  4. Pengguna membuka salah satu item riwayat untuk meninjau hasilnya.
  5. Pengguna menghapus item riwayat; daftar diperbarui.
  6. Jika pembacaan atau penghapusan gagal, pesan error ditampilkan dan daftar tetap konsisten; pengguna dapat mencoba lagi atau menghapus item lain.
  7. Di reduced-motion, rel tetap dapat digulir dan item membungkus ke baris berikutnya.
Page 29 of 40

Alur 6 — Mengubah tema dan membaca informasi privasi

  1. Pengguna membuka Settings dari Home, Enhance, atau History.
  2. Pengguna mengubah pilihan tema antara light mode dan dark mode.
  3. Tema diterapkan dan disimpan secara lokal; identitas visual tetap memakai #8FB3E2 dan #B4D9F2 di kedua mode.
  4. Jika penyimpanan preferensi gagal, tema tetap diterapkan untuk sesi berjalan dan pesan error ditampilkan.
  5. Pengguna membaca informasi privasi dan kebijakan privasi.
  6. Pengguna kembali ke layar sebelumnya.
Page 30 of 40

6. Visuals Colors and Theme

Muse: Michal Malewicz. Headline arah: Layered translucency — cahaya biru yang mengambang di atas kaca.

Arah ini diterjemahkan menjadi token konkret berikut.

Mode terang

PeranNilai
Background#EEF4FB
Surface (kaca)#FFFFFF pada 72% opasitas
Border kaca1px rgba(143,179,226,0.35)
Border cahaya tepi atas1px rgba(180,217,242,0.55)
Text#16233A
Primary#8FB3E2
Accent#B4D9F2
Muted#6C7E99
Bayangan berlapis0 2px 8px rgba(22,35,58,0.06) + 0 18px 48px rgba(143,179,226,0.22)

Mode gelap

Page 31 of 40
PeranNilai
Background#0B1626
Surface (kaca)#16263D pada 68% opasitas
Text#E8F1FB
Primary#8FB3E2
Accent#B4D9F2
Muted#8FA6C4

Rasio pemakaian warna: sekitar 70% latar kaca netral, 22% primary, 8% accent. Kontras teks/latar diperiksa ≥ 4.5:1 di kedua mode. Tidak ada biru bootstrap/indigo; hanya #8FB3E2, #B4D9F2, dan biru malam.

Tipografi

  • Headings: Plus Jakarta Sans SemiBold–Bold, tracking -0.02em.
  • Body: Manrope.
  • Skala modular 1.25: 12 / 14 / 16 / 20 / 25 / 31 / 39 / 49.
  • Display hero: clamp(34px, 9vw, 64px).
  • Judul layar: clamp(24px, 6vw, 32px).
  • Body 16px, line-height 1.6.
  • Label mikro uppercase 11–12px dengan tracking +0.14em untuk metadata teknis (resolusi, ukuran file, status model AI).

Bahasa bentuk

  • Radius 24px untuk panel utama, 18px untuk kartu mode, 999px untuk tombol pil.
  • Border cahaya 1px rgba(180,217,242,0.55) di tepi atas setiap panel.
  • Tidak ada sudut tajam di permukaan interaktif; bentuk ikon membulat.
  • Ikon garis 1.5px dengan ujung membulat.
Page 32 of 40

Ritme spasi dan layout

  • Satu kolom fokus dengan margin 20px di mobile dan maksimum 720px konten di desktop.
  • Latar gradasi radial #B4D9F2 → #EEF4FB yang sangat lembut.
  • Home: kartu mode ditumpuk vertikal di mobile menjadi dua kolom sejajar di ≥768px.
  • Panel hasil: gambar before/after sebagai bidang penuh, baris chip metadata di bawahnya, lalu deretan tombol pil Simpan / Bagikan / Tingkatkan Lagi.
  • Riwayat: rel kaca horizontal yang dapat ditarik penuh ke dalam tampilan.

Gaya imagery

  • Gambar pengguna adalah satu-satunya fotografi — tidak ada stok.
  • Visual pendukung murni abstrak: gradasi radial biru muda, bentuk kaca 3D primitif (bola dan kapsul tembus cahaya) di splash dan empty state, serta glow logo sebagai sumber cahaya.
  • Pratinjau before/after selalu memakai gambar asli pengguna, bukan contoh palsu.
  • Jika blur berat terlalu mahal di perangkat kelas bawah, ganti dengan permukaan solid #E3EEF9 yang tetap memakai border cahaya.

Yang dihindari: latar putih murni #FFFFFF sebagai ground halaman; biru bootstrap/indigo (#2563EB, #4F46E5, #6366F1) atau gradasi ungu-merah muda; font Inter, Roboto, Poppins, atau system-ui untuk heading maupun body; blob gradasi dekoratif di belakang headline terpusat dengan tombol biru; grid kartu identik dengan hover-lift seragam; klaim "4K" atau pratinjau hasil palsu; efek blur berat tanpa fallback; animasi yang menutupi gambar hasil atau menggeser kontrol saat inferensi berjalan.

Page 33 of 40

7. Signature Design Concept

Konsep: "Cahaya yang Mengambang" — Home sebagai lapisan kaca bercahaya.

Layar Home dibuka dengan komposisi vertikal yang tidak mungkin tertukar dengan SaaS generik:

  • Di bagian atas, satu bidang gradasi radial #B4D9F2 → #EEF4FB setinggi 42% viewport dengan bola kaca 3D tembus cahaya yang mengambang pelan di kanan-atas.
  • Di atasnya — bukan di tengah — judul besar rata-kiri "Tingkatkan fotomu" dalam Plus Jakarta Sans Bold clamp(34px, 9vw, 64px) berwarna #16233A, dengan subbaris "AI offline, tanpa unggah, tanpa login".
  • Glow lembut dari logo memancar dari tepi kiri-atas judul sebagai cahaya, bukan sebagai gambar.
  • Di bawah judul, dua kartu kaca besar bertumpuk — "Foto Umum HD" dan "Text HD" — masing-masing dengan ikon, satu baris penjelasan, dan chevron. Kartu inilah elemen dominan pertama, bukan tombol biru di tengah.
  • Tidak ada headline terpusat, tidak ada tombol biru, tidak ada blob gradasi dekoratif.

Konsep ini hanya menyusun ulang konten, state, dan kontrol yang sudah diterima: judul, subbaris, dua kartu mode, glow logo, dan gradasi latar. Tidak ada perilaku, halaman, atau destinasi baru.

Page 34 of 40

8. Interaction Model & Motion Direction

Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: layered_2d

Landing Hero Motion Brief

  • Focal subject: Bola kaca 3D tembus cahaya yang mengambang pelan di kanan-atas bidang gradasi radial #B4D9F2 → #EEF4FB, dengan glow logo sebagai sumber cahaya dari tepi kiri-atas judul.
  • Input → transformation → outcome thesis: Saat pengguna membuka Landing, glow logo bernapas pelan (opacity 0.55→0.85, 3.2s loop) dan bola kaca mengambang lembut; saat pengguna menekan tombol masuk alur, transisi fade + slide 8px selama 220ms dengan easing cubic-bezier(0.22, 1, 0.36, 1) membawa pengguna ke Splash. Tidak ada perilaku baru — hanya transisi antar layar yang sudah diterima.
  • Motion vocabulary: Fade + slide 8px 220ms; glow bernapas 3.2s loop; kartu mode mengangkat 2px dan tepi kacanya menyala saat ditekan; progres mengalir sebagai garis cahaya dengan persentase nyata; slider before/after mengikuti jari tanpa lag. Tidak ada bounce, tidak ada partikel, tidak ada animasi yang menutupi gambar hasil.
  • Composed first frame: Bidang gradasi radial setinggi 42% viewport; bola kaca 3D tembus cahaya di kanan-atas; judul besar rata-kiri "Tingkatkan fotomu" dengan glow logo memancar dari tepi kiri-atas; subbaris "AI offline, tanpa unggah, tanpa login"; dua kartu kaca bertumpuk di bawahnya.
  • Reduced-motion state: Glow logo berhenti bernapas dan tampil statis pada opacity tetap; bola kaca tidak mengambang; transisi layar menjadi fade tanpa slide; rel riwayat tetap dapat digulir dan item membungkus ke baris berikutnya; semua konten tetap terbaca dan semua kontrol tetap dapat dijangkau.
Page 35 of 40

9. Non-Functional Requirements

NFR-01 — Kualitas AI (explicit). Hasil peningkatan harus berasal dari Real-ESRGAN nyata dengan prioritas x4plus atau varian yang sesuai; tidak ada simulasi atau filter biasa sebagai pengganti AI. Rasional: kualitas AI adalah prioritas utama yang dinyatakan pengguna.

NFR-02 — Kecepatan dan responsivitas (explicit). Inferensi berjalan di background; UI tidak boleh freeze; progres akurat; fallback CPU tersedia. Rasional: pengguna memprioritaskan kecepatan dan pengalaman super smooth.

NFR-03 — Stabilitas dan penanganan memori (explicit). Gambar besar dan kehabisan memori harus ditangani; error harus ditangani dengan pesan yang jelas; aplikasi tidak boleh crash. Rasional: stabilitas adalah prioritas yang dinyatakan pengguna.

NFR-04 — Privasi dan keamanan gambar (explicit). AI berjalan offline; tidak ada unggah gambar; izin minimal; keamanan gambar dijaga; kebijakan privasi tersedia. Rasional: privasi adalah prioritas yang dinyatakan pengguna.

NFR-05 — Desain premium (explicit). UI premium, minimalis, hidup, super smooth dengan palet #8FB3E2 dan #B4D9F2, glow logo, animasi ringan, transisi halus, serta dark mode/light mode tersimpan. Rasional: desain premium adalah prioritas yang dinyatakan pengguna.

NFR-06 — Kejujuran hasil (explicit). Tidak menampilkan hasil palsu; tidak mengklaim 4K jika resolusi tidak sesuai; semua angka resolusi, ukuran, dan waktu berasal dari pemrosesan nyata. Rasional: kepercayaan pengguna.

NFR-07 — Kompatibilitas teknologi (explicit). Kotlin, Compose atau XML sesuai project, Gradle, SDK, Java, dan dependensi yang kompatibel. Rasional: aplikasi harus dapat dibangun dan dijalankan.

Page 36 of 40

NFR-08 — Aksesibilitas visual (required_inference). Kontras teks/latar ≥ 4.5:1 di kedua mode; teks dan kontrol tetap utuh di 375px, 768px, dan 1280px; reduced-motion menyediakan susunan statis yang tetap dapat dipakai. Rasional: diperlukan agar UI yang diterima dapat dibaca dan dioperasikan di semua viewport.

NFR-09 — Batasan yang tidak boleh dilanggar (explicit). Jangan mengarang benchmark; jangan mewajibkan root, Vulkan, NCNN, atau JNI tanpa kebutuhan; jangan mengklaim AI berfungsi atau aplikasi siap rilis sebelum benar-benar diuji. Rasional: batasan keras dari pengguna.

10. Tech Stack

  • Bahasa: Kotlin.
  • UI: Jetpack Compose atau XML sesuai kondisi project yang ada.
  • Build: Gradle dengan SDK, Java, dan dependensi yang kompatibel.
  • AI: Real-ESRGAN dengan prioritas varian x4plus atau varian yang sesuai; TFLite/LiteRT bila kompatibel; bobot model asli, arsitektur, lisensi, preprocessing, tensor, dan postprocessing yang benar; pipeline terpisah yang sesuai untuk mode Text HD.
  • Pemrosesan: Inferensi offline di perangkat dengan optimasi CPU, RAM, thread, bitmap, dan tiled inference jika didukung; fallback CPU; pemrosesan background.
  • Pemilihan gambar: Android Photo Picker.
  • Penyimpanan dan berbagi: Mekanisme Android yang sesuai untuk galeri dan share sheet.
  • Penyimpanan lokal: Riwayat, status onboarding, dan preferensi tema.
  • Rilis: APK debug, AAB release, signing aman, dokumentasi, lisensi model, dan persiapan Play Store jika lingkungan mendukung.
Page 37 of 40

11. Assumptions and Constraints

Asumsi

  • A1: Project yang ada (jika ada) dilanjutkan dan diperbaiki, bukan dimulai ulang tanpa alasan. [explicit]
  • A2: Model Real-ESRGAN yang sesuai tersedia dan dapat dipaketkan ke dalam aplikasi untuk inferensi offline. [required_inference]
  • A3: Perangkat Android target mendukung inferensi TFLite/LiteRT; jika tidak, fallback CPU dipakai. [required_inference]
  • A4: Lingkungan pengembangan mendukung pembuatan APK debug dan AAB release; jika tidak, keterbatasan dilaporkan secara jujur. [explicit]
  • A5: Penyimpanan lokal tersedia untuk riwayat, status onboarding, dan preferensi tema. [required_inference]

Batasan

Page 38 of 40
  • C1: Tanpa login. [explicit]
  • C2: Onboarding hanya sekali. [explicit]
  • C3: AI wajib nyata; jangan gunakan simulasi atau filter biasa sebagai pengganti AI. [explicit]
  • C4: Mode teks harus memakai pipeline yang sesuai. [explicit]
  • C5: Jangan menampilkan hasil palsu atau mengklaim 4K jika resolusinya tidak sesuai. [explicit]
  • C6: Jangan mengarang benchmark atau mewajibkan root, Vulkan, NCNN, atau JNI tanpa kebutuhan. [explicit]
  • C7: Semua tombol harus berfungsi. [explicit]
  • C8: Semua UI berbahasa Indonesia. [explicit]
  • C9: Jangan mengklaim AI berfungsi atau aplikasi siap rilis sebelum benar-benar diuji. [explicit]
  • C10: Jika project sudah ada, lanjutkan dan perbaiki project tersebut, jangan mulai ulang tanpa alasan. [explicit]
  • C11: Persiapan Play Store dilakukan jika lingkungan mendukung. [explicit]

Default presentasi dan teknologi [Default — not specified by user]

  • D1: Ikon garis 1.5px dengan ujung membulat.
  • D2: Bentuk kaca 3D primitif (bola dan kapsul tembus cahaya) sebagai visual pendukung di splash dan empty state.
  • D3: Jika blur berat terlalu mahal di perangkat kelas bawah, permukaan solid #E3EEF9 dengan border cahaya dipakai sebagai fallback.
Page 39 of 40

12. Glossary

  • Lumiere AI Photo Enhancer: Nama produk aplikasi Android yang dibangun dalam project wild-bangun.
  • Foto Umum HD: Mode peningkatan yang meningkatkan resolusi, detail, ketajaman, dan warna serta mengurangi artefak.
  • Text HD: Mode peningkatan yang memperjelas tulisan pada dokumen, screenshot, poster, dan foto teks sambil menjaga bentuk karakter dan isi tulisan tanpa mengarang teks baru.
  • Real-ESRGAN: Arsitektur AI nyata yang diintegrasikan untuk peningkatan foto; varian x4plus diprioritaskan atau varian yang sesuai.
  • TFLite/LiteRT: Runtime inferensi on-device yang dipakai bila kompatibel.
  • Tiled inference: Teknik memproses gambar dalam potongan (tile) agar gambar besar dapat ditangani dengan memori terbatas.
  • Fallback CPU: Jalur pemrosesan cadangan saat akselerasi perangkat tidak tersedia.
  • Android Photo Picker: Permukaan sistem Android untuk memilih gambar dengan izin minimal.
  • Before/after: Perbandingan interaktif antara gambar asli dan gambar hasil.
  • Riwayat lokal: Daftar peningkatan yang tersimpan di perangkat dan dapat dibuka serta dihapus.
  • Onboarding: Alur pengenalan satu kali yang status selesainya disimpan lokal.
  • Glow logo: Halo radial #B4D9F2 dari logo Lumiere yang berfungsi sebagai sumber cahaya dan indikator status proses.
Page 40 of 40

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Landing: Baca penjelasan produk
Landing: Masuk ke alur aplikasi
Splash: Lihat status onboarding
Onboarding: Baca pengenalan mode
Onboarding: Selesaikan onboarding
Home: 1. Lihat kartu mode
Home: 2. Pilih mode Foto Umum HD
Home: 3. Pilih gambar foto umum
Enhance: 4. Jalankan inferensi foto umum
Enhance: 5. Lihat hasil dan metadata
Enhance: 6. Bandingkan before after
Enhance: Simpan ke galeri
Enhance: Bagikan hasil
Enhance: 7. Tingkatkan lagi
Enhance: 8. Tangani error inferensi
Home: 9. Pilih mode Text HD
Home: 10. Pilih gambar teks
Enhance: 11. Jalankan inferensi teks
Enhance: 12. Lihat tulisan diperjelas
History: 13. Lihat daftar riwayat
History: 14. Buka item riwayat
History: 15. Hapus item riwayat
History: Lihat riwayat kosong
Settings: 16. Ubah tema aplikasi
Settings: Baca kebijakan privasi

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Landing: Baca penjelasan produk
Landing: Masuk ke alur aplikasi
Splash: Lihat status onboarding
Onboarding: Baca pengenalan mode
Onboarding: Selesaikan onboarding
Home: 1. Lihat kartu mode
Home: 2. Pilih mode Foto Umum HD
Home: 3. Pilih gambar foto umum
Enhance: 4. Jalankan inferensi foto umum
Enhance: 5. Lihat hasil dan metadata
Enhance: 6. Bandingkan before after
Enhance: Simpan ke galeri
Enhance: Bagikan hasil
Enhance: 7. Tingkatkan lagi
Enhance: 8. Tangani error inferensi
Home: 9. Pilih mode Text HD
Home: 10. Pilih gambar teks
Enhance: 11. Jalankan inferensi teks
Enhance: 12. Lihat tulisan diperjelas
History: 13. Lihat daftar riwayat
History: 14. Buka item riwayat
History: 15. Hapus item riwayat
History: Lihat riwayat kosong
Settings: 16. Ubah tema aplikasi
Settings: Baca kebijakan privasi