# Spesifikasi aplikasi mobile: template satu halaman

> Spesifikasi satu halaman untuk merancang aplikasi iOS-mu dan memandu AI: 10 pertanyaan, template siap salin, dan hal yang jangan dimasukkan.

Halaman asli: [Spesifikasi aplikasi mobile: template satu halaman](https://devoria.fr/id/blog/spesifikasi-aplikasi-mobile-template-satu-halaman)
Penulis: [Mehdi Azizi](https://devoria.fr/id/mehdi-azizi)
Terbit: 2026-08-31
Revisi konten terakhir: 2026-10-09


## Spesifikasi aplikasi mobile: jawaban singkatnya

Spesifikasi aplikasi mobile yang baik, kalau kamu membuat aplikasimu sendiri, cukup satu halaman. Isinya menjawab sepuluh pertanyaan: untuk siapa, masalah apa, fungsi utama apa, bagaimana aplikasi menghasilkan uang, apa yang terjadi tanpa akun, data apa yang harus tetap ada, platform apa, apa yang tidak masuk versi pertama, bagaimana kamu tahu aplikasinya berhasil, dan dengan batasan apa. Template yang bisa kamu salin ada di bawah. Kamu juga bisa [mengunduh kerangka dan tabel validasinya (.md)](https://devoria.fr/ressources/cahier-des-charges-app-ios.md), tanpa daftar.

Template 40 halaman yang kamu temukan di internet ditulis untuk keperluan lain: klien yang memesan aplikasi ke vendor dan butuh dokumen kontrak. Kamu adalah orang yang memutuskan sekaligus yang membangun, sering kali dengan bantuan AI. Spesifikasimu punya dua fungsi: mengambil keputusan sebelum ngoding, dan memberi Claude, ChatGPT, atau Cursor konteks yang jelas supaya mereka membangun aplikasi yang benar.

Saya merilis aplikasi iOS saya sendiri. Solys, alarm dengan mini-game, dan TradaZen, simulator trading, ada di App Store. Nolera dan Clic sempat ditolak Apple, lalu diperbaiki. Ini metode yang saya pakai untuk semuanya, dan ini yang saya tawarkan di sini.

## Kenapa satu halaman cukup untuk merancang aplikasimu sendiri

Dokumen panjang memberi kesan kamu sudah banyak kemajuan. Kenyataannya, dokumen itu ditulis sekali, jarang dibaca ulang, dan proyeknya sudah melenceng sejak minggu-minggu pertama. Satu halaman, sebaliknya, bisa dibaca ulang dalam dua menit sebelum setiap sesi kerja.

Batasan ruang juga punya efek yang berguna: kamu dipaksa memutuskan. Kalau sebuah jawaban lebih dari dua kalimat, biasanya keputusannya belum diambil. Lebih baik ketahuan di kertas daripada di kodemu, tiga minggu kemudian.

Terakhir, satu halaman adalah ukuran yang pas untuk AI. Kamu bisa menempelkannya utuh di percakapan, atau menyimpannya di file konteks proyekmu. Dokumen pendek lebih mudah dicek ulang dan mengurangi instruksi yang saling bertentangan. Tapi itu tidak menjamin AI akan mengikutinya: cek usulannya berdasarkan kerangka ini.

## Apa saja isi spesifikasi untuk aplikasi mobile?

Jawab setiap pertanyaan ini dalam satu atau dua kalimat.

1. **Siapa yang memakai aplikasinya, dan dalam situasi apa?** Bukan "usia 18-35 tahun". Lebih baik satu orang yang spesifik, di satu momen spesifik dalam harinya.
2. **Masalah apa yang diselesaikan aplikasinya, dalam satu kalimat?** Kalau kamu butuh kata "dan juga", kamu sedang mendeskripsikan dua aplikasi.
3. **Apa SATU fungsi utama versi pertama?** Cuma satu. Yang lain menunggu angka. Halaman [MVP aplikasi iOS](https://devoria.fr/id/expertise/mvp-aplikasi-ios) menjelaskan cara memilihnya.
4. **Bagaimana aplikasi menghasilkan uang?** Langganan, beli sekali, atau gratis. Jawaban ini mengubah aplikasi sejak layar pertama. Kalau ragu, baca [langganan atau beli sekali untuk aplikasi iOS](https://devoria.fr/id/blog/langganan-atau-beli-sekali-aplikasi-ios).
5. **Apa yang bisa dilakukan tanpa membuat akun?** Memutuskan sejak awal apa yang bisa diakses tanpa daftar membuatmu tidak perlu merombak seluruh alur onboarding.
6. **Data apa yang harus tetap ada saat ganti HP?** Pertanyaan ini yang menentukan apakah kamu butuh backend seperti Supabase, atau semuanya bisa tetap di perangkat.
7. **iOS saja, atau iOS dan Android?** Saran saya kalau kamu baru mulai: iOS dulu. Alasannya saya jelaskan di [aplikasi iOS dan Android sekaligus](https://devoria.fr/id/blog/aplikasi-ios-atau-android-mulai-dari-mana).
8. **Apa yang secara eksplisit TIDAK masuk versi pertama?** Bagian paling berguna dari dokumen ini. Bagian ini memotong perdebatan sebelum muncul, baik dengan dirimu sendiri maupun dengan AI.
9. **Bagaimana kamu tahu aplikasinya berhasil?** Satu sinyal saja, yang bisa diukur dalam beberapa minggu setelah rilis: uji coba gratis yang dimulai, pelanggan, pengguna yang kembali.
10. **Apa batasan nyatamu?** Waktu yang bisa kamu sisihkan tiap minggu, perangkatmu, dan [akun Apple Developer](https://devoria.fr/id/blog/biaya-akun-developer-apple-2026) kamu, yang biayanya [99 $ per tahun](https://developer.apple.com/programs/enroll/). Tidak punya Mac? Itu bukan penghalang, seperti yang saya jelaskan di [merilis aplikasi iOS tanpa Mac](https://devoria.fr/id/blog/publish-aplikasi-ios-tanpa-mac-expo-eas).

## Template spesifikasi yang bisa disalin

Salin template ini ke catatan atau file teks di root proyekmu, lalu ganti setiap barisnya.

- **Nama sementara aplikasi:** …
- **Untuk siapa:** orang yang … saat …
- **Masalah yang diselesaikan, dalam satu kalimat:** …
- **Fungsi utama versi 1:** …
- **Yang dilihat pengguna saat pertama kali membuka aplikasi:** …
- **Model bisnis:** langganan / beli sekali / gratis, dan apa yang berbayar: …
- **Tanpa akun, pengguna bisa:** …
- **Data yang disimpan antar-HP:** tidak ada / …
- **Platform:** iOS dulu (Android nanti kalau angkanya mendukung)
- **Di luar versi 1:** …, …, …
- **Sinyal keberhasilan:** …
- **Stack:** React Native, Expo, Supabase kalau butuh akun, RevenueCat untuk langganan
- **Batasan:** … jam per minggu, akun Apple Developer sudah dibuka atau belum, punya Mac atau tidak
- **Aplikasi yang pengalamannya saya suka, dan alasannya:** …

Tambahkan tiga sampai lima screenshot aplikasi yang kamu suka, dengan satu kata tentang apa yang kamu suka. Itu lebih jelas daripada panduan desain, untukmu maupun untuk AI.

> Spesifikasi bukan daftar keinginan. Spesifikasi adalah daftar keputusan yang sudah diambil.

## Contoh: halaman yang sudah diisi untuk aplikasi fiktif

Supaya kamu melihat tingkat detail yang diharapkan, ini template yang sudah diisi untuk aplikasi karangan, timer belajar.

- **Untuk siapa:** mahasiswa yang belajar sendirian malam hari dan buyar setelah sepuluh menit.
- **Masalah:** dia tidak bisa bertahan satu sesi belajar tanpa memegang HP.
- **Fungsi utama:** memulai sesi berwaktu dan melihat rangkaian hari yang berhasil dijalani.
- **Layar pertama:** satu tombol saja untuk memulai sesi.
- **Model bisnis:** langganan untuk statistik detail, sesi dasar gratis.
- **Tanpa akun:** semuanya, kecuali backup antar-HP.
- **Di luar versi 1:** mode grup, peringkat antarteman, widget, versi Android.
- **Sinyal keberhasilan:** pengguna yang kembali beberapa hari berturut-turut.

Perhatikan apa yang sengaja tidak ada: tidak ada daftar dua puluh layar, tidak ada warna wajib, tidak ada arsitektur. Pilihan-pilihan itu akan datang sambil membangun, dan halaman ini membantumu memastikan semuanya tetap melayani fungsi utama.

## Cara memakai spesifikasimu untuk memandu AI

Di sinilah halamanmu paling bermanfaat. AI yang ngoding tanpa konteks akan menebak, dan sering kali yang ditebak adalah aplikasi lain, bukan aplikasimu.

**Masukkan halaman ini ke konteks permanen proyek.** Claude Code membaca file `CLAUDE.md` di root, Cursor punya file aturannya sendiri. Tempel spesifikasimu di sana, bersama stack-mu. Setiap permintaan jadi berangkat dari dasar yang sama.

**Kutip bagian "di luar versi 1" saat AI berlebihan.** Asisten AI senang mengusulkan fungsi tambahan: mode gelap, fitur berbagi, notifikasi. Daftar pengecualianmu memberimu jawaban siap pakai: jangan sekarang.

**Minta rencana yang sesuai dengan halaman ini.** Sebelum pekerjaan besar, tulis: "ini spesifikasi saya, usulkan rencana untuk fungsi utamanya, jangan ngoding dulu". Kamu langsung tahu kalau rencananya menjauh dari yang sudah kamu putuskan.

**Minta AI mengecek halamannya, bukan cuma kodenya.** Tanyakan: "pertanyaan mana di spesifikasi ini yang kabur atau saling bertentangan?". Ini pemakaian AI yang sering diremehkan, dan bisa menyelamatkanmu dari berminggu-minggu kerja ke arah yang salah.

Untuk mendalami topik ini, saya sudah menjelaskan jebakan dan pengecekannya di [membuat aplikasi iOS dengan AI](https://devoria.fr/id/blog/membuat-aplikasi-ios-dengan-ai-jebakan-cek).

## Mengubah keputusan menjadi kriteria validasi

Fungsi utama harus punya hasil yang bisa diamati. Untuk timer fiktif di contoh ini, "timernya berfungsi" terlalu kabur. Lebih baik tulis: "Saya memulai sesi, sisa waktu tampil, saya bisa menghentikannya dan menemukan sesi terakhir yang selesai setelah membuka ulang aplikasi." Putuskan secara terpisah apakah timer harus tetap jalan saat layar terkunci: pilihan ini bisa mengubah pekerjaan teknisnya.

Untuk setiap fungsi, tambahkan tiga baris: **aksi**, **hasil yang diharapkan**, **bukti**. Buktinya bisa berupa tes otomatis untuk perhitungan, atau pengecekan di perangkat untuk sebuah alur. Catat juga apa yang belum dites. Tabel kecil ini mencegahmu menyamakan layar yang sudah jadi dengan fungsi yang siap dipakai.

Berikut tabel yang sudah diisi untuk timer fiktif kita. Ini kriteria yang harus dicek, bukan tes yang sudah lolos:

| Keputusan perancangan                                 | Yang dites                                       | Hasil yang diharapkan                                       |
| ----------------------------------------------------- | ------------------------------------------------ | ----------------------------------------------------------- |
| Sesi dasar bisa diakses tanpa akun                    | Instal aplikasi dan mulai sesi tanpa mendaftar   | Tidak ada formulir pendaftaran yang menghalangi untuk mulai |
| Sesi yang ditinggalkan tidak dihitung dalam rangkaian | Hentikan sesi sebelum selesai, lalu buka riwayat | Tidak ada sesi selesai yang ditambahkan                     |
| Riwayat tetap di perangkat                            | Selesaikan sesi, tutup lalu buka ulang aplikasi  | Sesi muncul satu kali saja dengan durasi yang benar         |
| Timer dasar berfungsi tanpa jaringan                  | Aktifkan mode pesawat dan selesaikan sesi        | Timer dan penyimpanan lokal tetap bisa dipakai              |
| Statistik detail berbayar                             | Buka statistik tanpa langganan                   | Penawaran tampil; sesi dasar tetap bisa diakses             |

Hal-hal yang masih kabur menjadi keputusan yang harus diambil. Misalnya: apa yang terjadi kalau pengguna mengunci layar atau mengubah jam HP saat sesi berjalan? Jangan biarkan agen AI memilih diam-diam. Tulis perilaku yang kamu inginkan, lalu tambahkan kasusnya ke tabel. Untuk mengatur pengujian ini di instalasi sungguhan, pakai panduan [menguji aplikasi iPhone dengan TestFlight](https://devoria.fr/id/blog/testflight-cara-tes-aplikasi-iphone).

### Memutuskan apa yang dibuang saat versi pertama kebanyakan isi

Ambil setiap fungsi dan ajukan satu pertanyaan: "Tanpa fungsi ini, apakah pengguna masih bisa mendapat hasil yang dijanjikan?" Untuk timer kita, peringkat antarteman bisa menunggu. Menemukan sesi yang sudah selesai itu wajib kalau kamu menjanjikan rangkaian hari. Layar langganan baru wajib kalau kamu benar-benar menjual statistik di versi ini.

Catat keputusannya beserta alasannya di [jurnal template yang bisa diunduh](https://devoria.fr/ressources/cahier-des-charges-app-ios.md). Kamu bisa meninjau ulang pilihan itu setelah pengujian, tanpa kehilangan alasan di balik cakupan awal. Tutorial [membuat aplikasi dengan Claude Code](https://devoria.fr/id/blog/membuat-aplikasi-dengan-claude-code-tutorial-iphone) lalu menunjukkan cara mengubah perancangan ini menjadi permintaan yang terbatas dan bisa dicek.

Sebagai pengalaman nyata, [TradaZen mengubah cakupannya setelah dirilis](https://devoria.fr/id/blog/studi-kasus-tradazen-meluncurkan-aplikasi-iphone). Perancangan berguna untuk merilis versi pertama yang bisa diukur, lalu memutuskan versi berikutnya berdasarkan masukan nyata.

## Jebakan katalog fitur

Refleks alaminya adalah mendaftar semua yang "harus bisa dilakukan" aplikasi: peta, chat, notifikasi, referral, mode offline. Katalog ini adalah tanda paling pasti dari proyek yang tidak akan selesai, dengan alasan sederhana: setiap fungsi yang ditambahkan sebelum rilis menunda saat pengguna sungguhan memberitahumu apa yang penting.

Versi pertama yang baik melakukan satu hal, dan melakukannya dengan baik. Tapi hati-hati juga dengan kebalikannya: Apple meminta aplikasi lebih dari sekadar situs web yang dibungkus, sesuai [aturan 4.2 App Review Guidelines](https://developer.apple.com/app-store/review/guidelines/). Satu fungsi utama, boleh; cangkang kosong, jangan: itu alasan penolakan [guideline 4.2](https://devoria.fr/id/blog/guideline-4-2-minimum-functionality-aplikasi-ditolak).

## Yang tidak boleh ada di spesifikasi aplikasi mobile

- **Panduan desain lengkap.** Beberapa screenshot referensi sudah cukup di awal.
- **Jadwal hari per hari.** Kamu belum punya informasi untuk menepatinya. Target mingguan sudah cukup.
- **Arsitektur teknis yang detail.** Pilih stack yang sudah teruji, lalu biarkan detailnya diputuskan sambil membangun.
- **Fungsi "untuk nanti" yang tercampur dengan yang lain.** Semuanya masuk ke bagian di luar versi 1.

## Kapan memperbarui spesifikasimu?

Baca ulang di awal setiap minggu kerja. Perbarui hanya saat sebuah keputusan berubah karena alasan nyata: tes di iPhone-mu yang menunjukkan sebuah layar tidak berfungsi, masukan dari tester, batasan Apple yang ditemukan di tengah jalan. Kalau kamu mengubahnya setiap hari, berarti halaman itu sudah tidak membatasi apa pun.

Setelah versi pertama dirilis, halaman ini jadi dasar versi berikutnya: yang tadinya di luar versi 1 naik, diurutkan berdasarkan apa yang dikatakan angka. Gambaran besar perjalanannya, dari ide sampai rilis, ada di halaman [membuat aplikasi iPhone](https://devoria.fr/id/expertise/membuat-aplikasi-iphone).

## Dari halaman ke aplikasi yang dirilis

Kalau kamu sudah menjawab sepuluh pertanyaan itu, kamu sudah mengerjakan bagian yang dilewati banyak proyek. Selanjutnya: membangun fungsi utama, mengetesnya di iPhone-mu, memasang langganan, dan menyiapkan berkas untuk Apple.

Perjalanan ini adalah isi [iOS Kit](https://devoria.fr/id/kits/ios), dalam empat tahap yang bisa diikuti sesuai ritmemu: tahap pertama untuk memilih aplikasi yang bisa menghasilkan, audiensnya, dan harganya, dan spesifikasimu adalah titik awalnya.

Belum yakin idemu siap muat dalam satu halaman? [Diagnostik gratis](https://devoria.fr/id/diagnostic) memberitahumu apa yang menghambat proyekmu hari ini dan tahap mana yang harus dikerjakan dulu. Halaman utama lalu menunjukkan cara [membuat aplikasi mobile](https://devoria.fr/id) dari perancangan ini, dengan Claude Code.

Saya tidak menjanjikan penghasilan ataupun rilis: Apple yang memvalidasi, dan pasar yang menentukan sisanya. Tanpa kit pun, template ini cukup untuk mulai.

## Pertanyaan umum

### Bagaimana cara menulis spesifikasi untuk aplikasi mobile?

Buat spesifikasimu cukup satu halaman: sepuluh pertanyaan, satu atau dua kalimat per jawaban. Isinya tentang audiens, masalah, fungsi utama, model bisnis, apa yang terjadi tanpa akun, data yang harus tetap ada, platform, apa yang di luar versi pertama, sinyal keberhasilan, dan batasan. Kalau sebuah jawaban lebih dari dua kalimat, biasanya keputusannya belum diambil.

### Software apa yang dipakai untuk menulis spesifikasi aplikasi?

Cukup catatan biasa atau file teks di root proyekmu: salin template-nya, lalu ganti setiap barisnya. Kamu juga bisa [mengunduh kerangka dan tabel validasinya (.md)](https://devoria.fr/ressources/cahier-des-charges-app-ios.md), tanpa daftar. Untuk memandu AI, simpan file itu di file konteks proyekmu.

### Apakah aplikasi butuh spesifikasi 40 halaman?

Tidak, kalau kamu membuat aplikasimu sendiri: satu halaman sudah cukup. Template 40 halaman di internet ditulis untuk klien yang memesan aplikasi ke vendor dan butuh dokumen kontrak. Kamu yang memutuskan dan membangun: halamanmu berguna untuk mengambil keputusan sebelum ngoding dan memberi konteks ke AI.

### Bagaimana cara memberikan spesifikasi ke AI yang ngoding?

Masukkan halaman ini ke konteks permanen proyek: Claude Code membaca file `CLAUDE.md` di root, Cursor punya file aturannya sendiri. Kutip bagian "di luar versi 1" saat AI berlebihan. Sebelum pekerjaan besar, minta rencana yang sesuai dengan halaman itu, tanpa langsung ngoding.

### Bagaimana cara mengecek bahwa sebuah fungsi sesuai spesifikasi?

Untuk setiap fungsi, tambahkan tiga baris: aksi, hasil yang diharapkan, dan bukti. Buktinya bisa berupa tes otomatis untuk perhitungan, atau pengecekan di perangkat untuk sebuah alur. Catat juga apa yang belum dites, supaya kamu tidak menyamakan layar yang sudah jadi dengan fungsi yang siap dipakai.

### Apa yang tidak boleh dimasukkan ke spesifikasi aplikasi?

Ada empat hal yang perlu dihindari: panduan desain lengkap, jadwal hari per hari, arsitektur teknis yang detail, dan fungsi "untuk nanti" yang tercampur dengan yang lain. Beberapa screenshot referensi sudah cukup di awal, dan target mingguan sudah cukup untuk jadwal. Fungsi untuk nanti semuanya masuk ke bagian di luar versi 1.


## Proyekmu

[iOS Kit](https://devoria.fr/id/kits/ios): Bikin aplikasi iPhone dengan Claude Code: starter code aplikasiku, skill yang memeriksa kerjanya, plus Apple Review Kit, App Store Screenshots Kit, dan ASO Kit. 129,99 €.
