
Setiap rumah punya laci yang menelan barang. Kunci, pengisi daya cadangan, paspor yang kamu butuhkan dua kali setahun. Kamu menaruh sesuatu di sana “untuk disimpan aman”, dan tiga bulan kemudian kamu berlutut mengosongkan seluruh lemari ke lantai. Ini panduan lengkap untuk cara membuat aplikasi dari nol dengan AI pada 2026, diceritakan lewat aplikasi yang saya buat untuk memperbaiki laci itu.
Stash adalah jawaban saya untuk laci itu. Ini aplikasi iPhone dan iPad yang kecil dan tenang: kamu memotret tempat kamu meletakkan sesuatu, memberinya nama dan ruangan, lalu saat kamu membutuhkannya lagi, kamu mencari. Itulah seluruh idenya. Aplikasi ini tayang di App Store pada 23 September 2026. Gratis, dan tanpa iklan.
Saya tidak berasal dari latar belakang coding. Semua yang saya bangun, saya bangun dengan agen AI, dan selama setahun terakhir tool untuk itu berubah dari “demo bagus” menjadi “kamu benar-benar bisa merilis ini”. Jadi panduan ini praktis sejak awal: setiap langkah dari folder kosong sampai halaman App Store yang aktif, dengan Stash sebagai contoh kerja sepanjang artikel.
Stack ini yang akan saya serahkan kepada siapa pun yang mulai hari ini. Figma untuk desain. OpenCode v2 sebagai agen coding. MiniMax M3.1 sebagai model yang berpikir (tepatnya M3.1-Flash-Preview, yang diluncurkan pada 27 September, dan saya akan menjelaskan mengapa perbedaan itu penting). Lalu semua “hal” yang tidak pernah masuk ke tutorial YouTube: backend, kebijakan privasi, App Store Connect, tangkapan layar, peninjauan, halaman landing, halaman legal, dan berapa biaya semuanya.
Semua di sini sudah diperiksa terhadap dokumentasi resmi, catatan rilis, dan App Store itu sendiri pada 5 Oktober 2026. Sebagian akan kedaluwarsa dalam beberapa minggu. Model baru MiniMax masih pratinjau, OpenCode merilis hampir setiap hari, dan Figma masih memutuskan agen coding mana yang boleh terhubung ke server MCP-nya. Bagian yang mudah berubah sudah saya tandai sambil jalan.
Pengungkapan: Stash adalah aplikasi saya, diterbitkan oleh perusahaan saya, Graham Miranda UG. Gratis, tanpa iklan dan tanpa pembelian dalam aplikasi. Artikel ini tidak memuat tautan afiliasi. MiniMax, tim OpenCode di Anomaly, Figma, Apple, Google, dan Expo tidak mensponsori, meninjau, atau menyetujuinya.
TL;DR — versi 60 detik
- Kamu bisa membangun aplikasi nyata dari nol dengan AI pada 2026, tetapi “dari nol” sekarang berarti keputusan, bukan mengetik. Agen yang menulis kode. Kamu yang memegang brief, desain, model data, cerita privasi, pengujian, dan berkas App Store.
- Stack-nya: Figma (layar dan variabel desain) → OpenCode v2 (agen sumber terbuka, lisensi MIT) → MiniMax M3.1-Flash-Preview (jendela konteks 1 juta token, membaca teks, gambar dan video, lima tingkat upaya) → build Expo atau Xcode → TestFlight → App Store. Firebase kalau kamu butuh akun dan sinkronisasi.
- “MiniMax M3.1” hari ini berarti M3.1-Flash-Preview. Model ini diluncurkan pada 27 September 2026 dan hanya tersedia lewat langganan M Plan MiniMax ($22, $55, atau $132 per bulan, dengan diskon 50% untuk bulan pertama pada penagihan bulanan sampai 14 Oktober) dan aplikasi MiniMax Code. Tidak ada harga per token, tidak ada bobot terbuka, dan belum ada benchmark yang dipublikasikan. Berpikir tidak bisa dimatikan, dan upaya default-nya maks.
- Ini berfungsi di OpenCode v2 tanpa berkas konfigurasi:
/connect→ “MiniMax Token Plan (minimax.io)” → tempel kunci langgananmu →/models→MiniMax-M3.1-Flash-Preview. - Jebakan Figma yang tidak disebut siapa pun: Server MCP remote Figma belum menerima OpenCode. Selama beta, aksesnya hanya lewat daftar izin. Gunakan desktop server MCP di
127.0.0.1:3845sebagai gantinya (butuh aplikasi desktop Figma dan seat Dev atau Full berbayar, mulai $12 per bulan), atau berikan frame hasil ekspor ke agen, yang bisa dibaca M3.1. - Merilis aplikasi adalah proyek tersendiri: $99 per tahun untuk Apple Developer Program (€99 di Jerman), build yang dibuat dengan Xcode 26 atau lebih baru, kebijakan privasi, label privasi yang sesuai kenyataan, penghapusan akun di dalam aplikasi kalau kamu menyediakan akun, dan detail trader UE. Apple menyebut 90% pengajuan ditinjau dalam 24 jam.
- Stash dalam angka: aktif sejak 23 September 2026, versi 1.0.1 dengan desain baru pada 2 Oktober, gratis, iOS dan iPadOS 16.4 atau lebih baru, sekitar 64 MB, tanpa pelacakan, dan mode tamu yang menyimpan semuanya di perangkat.
- Berapa biayanya: sekitar $363 untuk tahun pertama pada setup paling ringkas (keanggotaan Apple plus M Plan Go), sekitar $500 dengan seat Figma Dev. Biaya backend mulai dari nol pada kuota gratis Firebase.
- Aturan yang paling penting: “selesai” adalah klaim, bukan fakta. Jalankan aplikasi di ponsel sungguhan, dalam mode pesawat, dalam mode gelap, dengan VoiceOver menyala. Baru setelah itu percaya.
Stack secara ringkas
| Lapisan | Alat | Tugasnya dalam alur kerja ini | Biaya (Oktober 2026) |
|---|---|---|---|
| Desain | Figma | Layar, komponen, variabel warna dan tipografi, prototipe yang bisa diklik | Paket Starter gratis; seat Dev mulai $12/bulan membuka server MCP desktop |
| Jembatan desain ke kode | Server MCP Figma (desktop) | Menyerahkan frame, variabel, dan tangkapan layar ke agen | Termasuk dalam seat |
| Agen coding | OpenCode v2 | Merencanakan, menyunting berkas, menjalankan perintah dan pengujian; terminal, aplikasi desktop, atau di dalam Xcode 27 | Gratis, lisensi MIT |
| Model | MiniMax M3.1-Flash-Preview | Otak perencanaan dan coding; membaca tangkapan layar dan perekaman layar | M Plan mulai $22/bulan |
| Framework aplikasi | Expo SDK 56 (iPhone + Android) atau SwiftUI dengan Xcode 27 (khusus Apple) | Aplikasinya sendiri | Gratis; paket gratis Expo mencakup 15 build cloud iOS dan 15 Android per bulan |
| Backend | Firebase (Auth, Firestore, Storage, Functions, Messaging) | Akun, sinkronisasi, penyimpanan foto, notifikasi | Kuota gratis; Storage dan Functions butuh paket Blaze bayar sesuai pemakaian |
| Distribusi | App Store Connect + TestFlight | Pengujian beta, peninjauan, rilis | $99/year Apple Developer Program |
| Peluncuran | Halaman landing statis dan halaman legal | Menjelaskan, mendemokan, mematuhi | Sesuai biaya hostingmu |
Harga adalah harga daftar pada 5 Oktober 2026, tidak termasuk PPN. Ketentuan langganan sering berubah, jadi periksa sebelum membeli.
Daftar isi
- Bagian 1 — Kenalan dengan Stash: aplikasi yang jadi dasar panduan ini
- Bagian 2 — Stack 2026 untuk membangun aplikasi dari nol dengan AI
- Bagian 3 — MiniMax M3.1, dijelaskan apa adanya
- Bagian 4 — Menyiapkan OpenCode v2 dengan MiniMax M3.1, langkah demi langkah
- Bagian 5 — Mendesain aplikasimu di Figma saat kamu bukan desainer
- Bagian 6 — Menghubungkan Figma ke OpenCode: jebakan MCP
- Bagian 7 — Cara membangun aplikasi dari nol, fase demi fase
- Bagian 8 — Cara menerbitkan aplikasi di App Store pada 2026
- Bagian 9 — “Dan lain-lain”: perlengkapan peluncuran di sekitar aplikasi
- Bagian 10 — Berapa biaya membangun aplikasi dengan AI pada 2026
- Bagian 11 — Sepuluh kesalahan yang perlu dihindari saat membangun aplikasi pertamamu dengan AI
- Bagian 12 — Perlukah kamu memakai stack ini persis? Enam skenario
- Bagian 13 — Yang perlu diperhatikan dalam beberapa bulan ke depan
- Pertanyaan yang sering diajukan
- Kesimpulan
- Sumber
Bagian 1 — Kenalan dengan Stash: aplikasi yang jadi dasar panduan ini
Sebelum alatnya, contohnya dulu. Panduan membangun aplikasi hanya sebaik aplikasi yang dihasilkannya, jadi inilah Stash apa adanya, berdasarkan listing App Store dan kebijakan privasinya sendiri, bukan berdasarkan semangat saya.
Listing-nya dibuka dengan satu baris yang merangkum tugasnya: “Tidak perlu lagi membongkar rumah hanya untuk mencari sesuatu.” Lalu seluruh produk dijelaskan dalam tiga kalimat: “Stash adalah cara tercepat untuk mengingat di mana kamu meletakkan sesuatu. Ambil foto, pilih ruangan, simpan. Itulah seluruh aplikasinya.”
Kalimat terakhir itu adalah brief desainnya. Semua yang ada di aplikasi ini mempercepat penyimpanan atau mempercepat pencarian. Apa pun yang tidak melakukan keduanya tidak punya tempat.
Apa yang dilakukan Stash
| Fitur | Fungsinya | Mengapa ini penting |
|---|---|---|
| Foto tempatnya | Kamu memotret laci, rak, atau kotaknya, bukan barangnya | Kamu mengingat tempat secara visual; foto tempat itu adalah ingatannya |
| Nama, ruangan, titik persis, catatan | “Kunci rumah · Lorong · laci atas · di mangkuk keramik sebelah kiri” | Empat kolom singkat lebih baik daripada esai teks bebas yang tidak akan pernah bisa kamu cari dengan baik |
| Catatan suara, ditranskripsikan | Rekam catatan singkat; Stash mengubahnya menjadi teks yang bisa dicari | Lebih cepat daripada mengetik saat kedua tanganmu sibuk |
| Pencarian | Berdasarkan nama barang, ruangan, catatan, atau kata-kata yang kamu rekam, dengan filter untuk barang yang punya foto | Inti dari aplikasi ini adalah momen saat kamu membutuhkan sesuatu |
| Ruangan | Jelajahi rumahmu satu ruangan setiap kali | Untuk saat kamu lupa namanya, hanya tahu kira-kira di mana |
| “Ketemu” | Satu ketukan saat barangnya sudah kembali | Menuntaskan prosesnya |
| Pengingat | Barang musiman muncul lagi saat kamu membutuhkannya | Ban musim dingin, lampu Natal, perlengkapan berkemah |
| Widget | Widget Layar Utama dan Layar Kunci | Dua ketukan dari “ini harus saya ingat” sampai tersimpan |
| Offline, lalu sinkron | Berfungsi tanpa sinyal; tersinkron di iPhone dan iPad kalau kamu punya akun | Ruang bawah tanah dan garasi punya sinyal yang buruk |
| Tampilan | Terang, gelap, atau ikuti sistem | Tampilannya tetap tenang bahkan jam 11 malam |
| Ekspor dan hapus | Ekspor stash-mu; hapus akunmu dari Pengaturan | Datamu tetap milikmu, dan Apple mewajibkan yang kedua |
Tampilannya
Arah visualnya sengaja dibuat tenang: latar putih gading yang hangat, hijau hutan yang pekat, satu aksen koral, judul serif, dan sans-serif polos untuk semua hal lain. Tangkapan layar App Store menceritakan kisahnya lewat enam judul: Semua punya tempat. Temukan. Dalam hitungan detik. Simpan tempatnya. Rumahmu. Ruangan demi ruangan. Ingat detail kecilnya. Jelas. Di setiap cahaya.
Tampilkan gambar Stash di iPhone: simpan tempatnya, temukan dalam hitungan detik, jelajahi ruangan demi ruangan. Terang dan gelap, tetap tenang.

Cara aplikasi ini menangani datamu
Ini lebih penting daripada fitur apa pun, jadi saya kutip kebijakan privasinya langsung, bukan memparafrasekannya:
- Mode tamu: “Kalau kamu tidak membuat akun, ruangan, barang, foto, dan catatan suaramu tetap di perangkatmu dan tidak diunggah.”
- Dengan akun: sinkronisasi dan cadangan berjalan di Google Firebase (Authentication, Cloud Firestore, Cloud Storage, Cloud Functions, dan Cloud Messaging), dengan aturan keamanan yang menjaga data setiap pengguna tetap terpisah.
- Tanpa model bisnis yang dibangun di atasmu: “Kami tidak menampilkan iklan, tidak menjalankan periklanan atau pelacakan analitik, tidak membuat profil pengguna, dan tidak menjual datamu.”
- Catatan suara: mengubah rekaman menjadi teks yang bisa dicari bisa memakai layanan ucapan bawaan ponsel (milik Apple, di iOS).
- Penghapusan: hapus akunmu di Pengaturan, atau melalui formulir web; salinannya dihapus dari cadangan dalam 30 hari.
Jika kamu sudah membaca tulisan saya tentang mengapa perangkat lunak local-first kembali populer, kamu akan mengenali filosofinya. Aplikasi seharusnya bekerja sempurna tanpa cloud. Cloud hanyalah kemudahan yang kamu pilih.
Kotak fakta
| Nama di App Store | Stash — Find It Fast |
| Subjudul | Temukan apa pun yang sudah kamu simpan |
| Rilis pertama | 23 September 2026 (versi 1.0) |
| Versi saat ini | 1.0.1, dirilis 2 Oktober 2026: “Desain baru dan perbaikan bug.” |
| Harga | Gratis, tanpa pembelian dalam aplikasi |
| Membutuhkan | iOS atau iPadOS 16.4 atau lebih baru; juga berjalan di Mac Apple silicon dan Apple Vision Pro sebagai aplikasi iPad |
| Ukuran | Sekitar 64 MB |
| Kategori | Produktivitas (juga tercantum di Utilitas) |
| Rating usia | 4+ |
| Pengembang | Graham Miranda UG (haftungsbeschränkt), Blankenburg (Harz), Jerman |
| Situs web | stash.grahammiranda.network, dalam sepuluh bahasa, dengan demo peramban |
| Unduhan | Stash di App Store |
Apa yang belum ada di aplikasi (untuk saat ini)
Situs web punya bagian bernama Eksplorasi desain dengan tiga ide: menandai lokasi persisnya di foto, Quick Move untuk saat lokasi simpan sebuah barang berubah, dan kotak dan label supaya kamu bisa melihat isi kotak tanpa membukanya. Situsnya menegaskan bahwa “ide-ide ini ada di konsep interaktif, bukan fitur di rilis App Store.”
Saya suka pemisahan itu, dan saya akan merekomendasikannya kepada siapa pun yang membangun aplikasi pertamanya. Bereksplorasilah dengan bebas di prototipe. Rilis hanya yang berfungsi. Halaman App Store kamu tidak boleh menjanjikan apa yang tidak bisa dilakukan binary-nya. Peninjau Apple memeriksa, begitu juga pemberi ulasan bintang satu.
Mengapa bentuk ini cocok untuk aplikasi pertama
Jika kamu membaca ini karena ingin membangun aplikasi sendiri, tiru bentuk Stash meskipun kamu tidak peduli soal kunci yang hilang:
- Satu alur inti. Simpan, lalu temukan. Semua hal lain mendukung alur itu.
- Data yang dimulai di perangkat. Tidak perlu server di hari pertama, jadi kamu bisa merilis sebelum membangun backend.
- Beberapa fitur platform sungguhan. Kamera, mikrofon, notifikasi, dan widget adalah kadar “native” yang pas untuk belajar tanpa tenggelam.
- Cloud yang opsional. Akun dan sinkronisasi bisa datang di versi dua tanpa menulis ulang versi satu.
- Tanpa feed, tanpa chat, tanpa pembayaran. Masing-masing adalah proyek tersendiri dengan mode kegagalannya sendiri.
Agen AI bisa membangun hampir apa saja yang bisa kamu jelaskan. Bagian sulitnya adalah menjelaskan sesuatu yang cukup kecil untuk diselesaikan.
Bagian 2 — Stack 2026 untuk membangun aplikasi dari nol dengan AI
Tiga alat, tiga tugas terpisah:
- Figma menentukan tampilan aplikasi.
- OpenCode menentukan bagaimana pekerjaan dijalankan: berkas mana yang dibaca, perintah mana yang dijalankan, apa yang ditanyakan kepadamu sebelum melakukan hal berisiko.
- MiniMax M3.1 yang berpikir di dalam OpenCode: merencanakan, menulis kode, membaca tangkapan layar, memperbaiki yang rusak.
Menjaga tugas-tugas itu tetap terpisah adalah keputusan arsitektur paling penting di seluruh panduan ini, dan sama sekali tidak ada hubungannya dengan kode. Saat model yang lebih baik muncul bulan depan (dan pasti muncul), kamu cukup mengubah satu baris di berkas konfigurasi. Saat alat desain yang lebih baik muncul, agenmu tidak peduli. Tidak ada yang dilas jadi satu.
Mengapa OpenCode v2 adalah agennya
OpenCode adalah agen coding AI sumber terbuka di bawah lisensi MIT. Kamu mengarahkannya ke folder proyek, menjelaskan apa yang kamu inginkan, dan ia bekerja seperti seorang developer: membaca kode, menyusun rencana, mengedit berkas, menjalankan perintah, membaca error, memperbaikinya, lalu melanjutkan.
Versi 2.0.0, hasil pembangunan ulang dari nol, diberi tag pada 11 September 2026, dan tim sudah merilis 2.0.22 pada 2 Oktober. Saya membahas pembangunan ulang itu secara mendalam di ulasan mendalam OpenCode v2, jadi di sini hanya yang penting untuk membangun aplikasi:
- Ini agnostik model. Lebih dari 75 penyedia lewat Models.dev, plus model lokal. MiniMax sudah terpasang langsung.
- Satu server latar belakang yang dibagi. Antarmuka terminal, aplikasi desktop, UI peramban, dan ekstensi IDE semuanya melihat sesi yang sama.
- Izin yang bekerja seperti firewall. Daftar aturan izinkan, tanya, dan tolak yang berurutan di mana yang cocok terakhir menang, jadi “jangan pernah menjalankan
git push” dan “jangan pernah mengirim ke App Store” masing-masing satu baris. - Urungkan untuk setiap langkah. Snapshot sebelum dan sesudah setiap langkah model, dengan
/undodan/redo. - Subagen yang bisa kamu lihat dan hentikan, dan skill yang dimuat dari
.opencode,.claudedan.agentsfolder. - Ini berjalan di dalam Xcode 27. Xcode baru Apple menerima agen apa pun yang berbicara Agent Client Protocol, dan
opencode acpmelakukan tepat itu (penyiapan di Bagian 4).
Beranda kini mencatat 208.000 bintang GitHub, 950 kontributor, dan 16 juta developer bulanan. Dua catatan jujur dari dokumentasi v2: berbagi sesi belum kembali di v2, dan plugin v1 tidak termuat.
Mengapa MiniMax M3.1 jadi modelnya
Bagian 3 membahasnya mendalam, tapi versi singkatnya adalah tiga sifat yang kebetulan sangat cocok untuk membangun aplikasi:
- Jendela konteks 1.000.000 token. Aplikasi kecil, catatan desainnya, AGENTS.md-nya, dan dokumentasi yang relevan muat dalam satu sesi kerja dengan sisa ruang.
- Ini membaca gambar dan video, bukan hanya teks. Kamu bisa memberinya frame Figma, tangkapan layar simulator, atau rekaman layar sebuah bug.
- Lima tingkat upaya, dari
rendahuntukmaks, jadi pekerjaan perencanaan mendapat pemikiran mendalam dan pekerjaan mekanis mendapat kecepatan.
Kekurangannya adalah ini versi pratinjau tanpa benchmark yang dipublikasikan atau harga per token, hanya tersedia lewat langganan MiniMax sendiri. Saya akan kembali ke soal itu, karena ini bukan catatan kecil.
Mengapa Figma jadi alat desainnya
Figma masih tempat desain aplikasi terjadi. Paket Starter gratis cukup untuk merancang aplikasi pertama. Fitur variabel menjadi token desainmu, warna, jarak, dan ukuran huruf yang menjaga setiap layar tetap konsisten. Dan server MCP memungkinkan agen coding membaca frame terpilih secara langsung, yang sejauh ini paling mendekati “buat tampilannya seperti ini” yang benar-benar berhasil.
Di Config 2026 (23 sampai 25 Juni di San Francisco), Figma juga membuka Figma Agent untuk semua paket berbayar sebagai beta terbuka, menambahkan timeline gerak, dan mempratinjau “code layer” yang memperlakukan kode sebagai objek kelas utama di kanvas. Kamu tidak perlu semua itu untuk membangun aplikasi pertamamu. Berguna untuk tahu ke mana arah semuanya.
Dan “hal-hal”
Bagian yang tidak pernah masuk ke thumbnail:
| Apa | Opsi | Dibahas di |
|---|---|---|
| Framework aplikasi | Expo (React Native) untuk iPhone plus Android; SwiftUI dengan Xcode 27 khusus Apple; Flutter | Bagian 7 |
| Backend | Firebase adalah pilihan default mudah untuk akun, sinkronisasi, dan penyimpanan berkas | Bagian 7 |
| Kontrol versi | Git, selalu. GitHub atau sejenisnya untuk cadangan | Bagian 4 dan 7 |
| Build dan penandatanganan | Xcode di Mac, atau build cloud EAS Expo tanpa Mac | Bagian 7 dan 8 |
| Pengujian dan rilis | TestFlight dan App Store Connect | Bagian 8 |
| Peluncuran | Halaman landing, demo, halaman legal, optimasi App Store | Bagian 9 |
Tampilkan gambar Seluruh alur di satu halaman. Kamu berdiri di kiri (brief), di tengah (meninjau setiap diff), dan di kanan (menekan “Submit for Review”).
Apa arti “from scratch” sekarang
Inilah kenyataan yang tidak nyaman tentang membangun aplikasi dengan AI pada 2026: agen mengerjakan bagian yang dulu sulit, dan meninggalkanmu bagian yang memang selalu sulit.
| Kamu yang memiliki | Agen yang memiliki |
|---|---|
| Untuk apa aplikasi itu, dan apa yang menolak dilakukannya | Mengubahnya menjadi berkas, komponen, dan fungsi |
| Layar-layar dan sistem desain | Menerapkannya, layar demi layar |
| Model data: apa yang disimpan, di mana, berapa lama | Menulis kode penyimpanan, sinkronisasi, dan migrasi |
| Kisah privasi, halaman legal, dan jawaban untuk App Store | Mengaudit kode supaya jawabanmu akurat |
| Menguji di perangkat nyata, dengan orang nyata | Menulis dan menjalankan tes otomatis |
| Menekan “Submit” | Tidak pernah menekan “Submit” |
Jika tabel itu membuatmu agak gugup, bagus. Kegugupan itulah yang membedakan aplikasi yang benar-benar rilis dari folder penuh kode setengah jalan.
Bagian 3 — MiniMax M3.1, dijelaskan apa adanya
Jika kamu mencari “MiniMax M3.1” sekarang, kamu akan menemukan artikel-artikel percaya diri tentang model yang sebenarnya belum dirilis. Berikut apa yang benar-benar ada, apa yang bisa kamu pakai hari ini, dan apa yang belum diketahui siapa pun.
Apa yang ada, secara berurutan
- 1 Juni 2026: MiniMax M3. Model bobot terbuka yang secara native multimodal dengan jendela konteks 1 juta token, desain mixture-of-experts dengan total sekitar 428 miliar parameter dan sekitar 23 miliar aktif per token, serta sparse attention milik MiniMax sendiri. Saya membandingkannya dengan GLM-5.3-Flash untuk OpenCode pada Agustus, di GLM-5.3-Flash versus MiniMax M3.
- Juli: “M3.1” menjadi nama. Laporan dari World Artificial Intelligence Conference di Shanghai menyebut M3.1 dengan konteks satu juta token dan kemampuan multimodal yang lebih kuat. Tidak ada model, ID model, atau harga yang menyusul.
- 23 September: model misterius. Model anonim bernama “Space Bunny Alpha” muncul di OpenRouter dan di OpenCode sebagai pratinjau gratis, dengan konteks 1 juta dan penalaran yang bisa diatur. Fingerprinting tokenizer independen mengarah ke MiniMax. MiniMax belum mengonfirmasi apa pun, dan kecocokan tokenizer hanyalah petunjuk tentang keluarga model, bukan bukti.
- 27 September: MiniMax M3.1-Flash-Preview. Model pertama berlabel M3.1 yang bisa dipakai siapa saja, diluncurkan di aplikasi coding MiniMax sendiri, MiniMax Code, dan lewat langganan coding-nya. MiniMax menyebutnya model untuk “pengembangan sehari-hari, cepat, andal, dan siap untuk pekerjaan nyata, dari perbaikan bug cepat hingga fitur lengkap.”
- 30 September: M Plan. MiniMax Code 3.1.0 hadir dengan langganan baru bernama M Plan, yang menggantikan Token Plan bagi pelanggan baru dengan harga yang sama.
M3.1 lengkap dari musim panas belum juga dirilis. Saat orang menyebut “M3.1” pada Oktober 2026, yang mereka maksud adalah M3.1-Flash-Preview, dan begitu juga saya di sisa artikel ini.
Tampilkan gambar Semua dalam artikel ini terjadi dalam empat setengah bulan, dan tujuh dari sembilan tanggal ini jatuh di lima minggu terakhir.
MiniMax M3 vs M3.1-Flash-Preview
| MiniMax M3 | MiniMax M3.1-Flash-Preview | |
|---|---|---|
| Dirilis | 1 Juni 2026 | 27 September 2026 |
| Status | Tersedia umum | Pratinjau |
| ID model | MiniMax-M3 | MiniMax-M3.1-Flash-Preview |
| Jendela konteks | 1 juta token | 1.000.000 token |
| Masukan | Teks, gambar, video | Teks, gambar, video |
| Berpikir | Bisa dinyalakan atau dimatikan | Selalu aktif. Lima tingkat upaya: rendah, medium, tinggi, xhigh, maks (bawaan maks) |
| Bobot terbuka | Ya, di bawah MiniMax Community License | Tanpa bobot, tanpa model card |
| Harga bayar sesuai pemakaian | $0,30 per juta token masukan, $1,20 keluaran, $0,06 cache; dua kali lipat di atas 512K masukan | Tidak dipublikasikan. Hanya langganan |
| Di mana kamu bisa memakainya | MiniMax API, OpenRouter, OpenCode Go, Ollama Cloud, dan banyak host lain | Hanya langganan M Plan dan MiniMax Code |
| Benchmark yang dipublikasikan | Ya, dari MiniMax dan papan independen | Tidak ada |
| Arsitektur | ~428B total, ~23B aktif, sparse MoE | Tidak diungkapkan |
| Di OpenCode v2 | Terpasang langsung, lewat beberapa penyedia | Terpasang langsung, lewat “MiniMax Token Plan (minimax.io)” |
Cuplikan dari dokumentasi MiniMax dan Models.dev pada 5 Oktober 2026. Pratinjau berubah tanpa pemberitahuan; periksa dulu sebelum mengandalkan baris mana pun.
Satu hal yang perlu diuraikan: dokumentasi menyebut thinking tidak bisa dimatikan. Kirim thinking.type: "disabled" atau upaya none, dan API mengembalikan error 400 yang intinya mengatakan bahwa model “memerlukan adaptive thinking.” Yang bisa kamu kendalikan adalah sekeras apa ia berpikir.
Cara mendapatkannya: M Plan
Dokumentasi MiniMax blak-blakan soal akses: “MiniMax-M3.1-Flash-Preview untuk sekarang hanya tersedia lewat M Plan dan MiniMax Code.”
| Tingkat M Plan | Harga | Apa yang termasuk |
|---|---|---|
| Go | $22/bulan | M3.1-Flash-Preview, plus model gambar dan audio MiniMax |
| Explore | $55/bulan | Semua di Go, plus model video H3 |
| Build | $132/bulan | Semua di Explore, dengan kuota pemakaian terbesar |
Beberapa detail yang lebih penting daripada harga utamanya:
- Penawaran peluncuran: Diskon 50% untuk bulan pertama pada tagihan bulanan, sampai 14 Oktober 2026. Tagihan tahunan tidak termasuk. Setelah bulan pertama, langganan diperpanjang dengan harga penuh kecuali kamu mematikan perpanjangan otomatis.
- Minggu gratis: semua pelanggan mendapat M3.1-Flash-Preview tanpa batas dari 1 sampai 7 Oktober (waktu Tiongkok). Jika kamu membaca ini setelah tanggal 7, yang itu sudah lewat.
- Ini kunci langganan, bukan kunci API. Dokumentasi MiniMax jelas menyatakan bahwa kunci langganan dan kunci API bayar sesuai pemakaian tidak bisa dipertukarkan. Kamu akan menempelkan kunci langganan ke OpenCode.
- Kuota, bukan pengukuran. Pemakaian dibatasi dalam jendela bergulir lima jam dan mingguan, dan kuota yang tidak terpakai tidak terbawa ke periode berikutnya. Untuk tingkat Token Plan yang setara, panduan MiniMax sendiri adalah sekitar tiga sampai empat, empat sampai lima, dan enam sampai tujuh agen yang berjalan bersamaan.
- Pelanggan Token Plan yang sudah ada tetap memakai paket mereka. Pelanggan baru membeli M Plan.
- Alat yang didukung di halaman M Plan MiniMax’s mencakup Claude Code, Codex, Cursor, OpenCode, Hermes Agent, dan OpenClaw.
MiniMax Code sendiri adalah agen desktop untuk macOS dan Windows, dengan mode coding dan mode “work” untuk riset dan dokumen, plus versi command-line. Itu cara yang sangat baik untuk mencoba model ini. Saya memakai OpenCode karena tidak mengikat saya pada satu pembuat model tertentu, dan itulah inti Bagian 2.
Mengapa cocok untuk membangun aplikasi
- Jendela konteks mengubah cara kamu bekerja. Aplikasi ponsel kecil biasanya berisi beberapa ribu baris kode, mungkin beberapa puluh ribu. Dengan satu juta token, agen bisa memuat seluruh basis kode, AGENTS.md milikmu, model data, dan sebagian dokumentasi platform sekaligus. Lebih sedikit momen “saya lupa apa yang sudah kita putuskan”. (Panduan OpenCode milik MiniMax’s sendiri membatasi jendela pada 512K di contoh konfigurasinya, dan saya akan menirunya. Konteks lebih pendek berarti jawaban lebih cepat.)
- Tunjukkan, jangan jelaskan. Karena bisa menerima gambar dan video, kamu bisa menyelipkan frame Figma hasil ekspor, tangkapan layar dari iOS Simulator, atau rekaman layar bug saat keyboard menutupi tombol Save. Yang terakhir itu saja sudah menghemat pengetikan yang luar biasa banyak.
- Effort itu tombol putar, bukan sakelar.
maksuntuk merencanakan fitur atau mengurai bug sinkronisasi.rendahataumediumuntuk mengganti nama, menulis tes, dan menerjemahkan string. Bagian 4 menunjukkan cara mengaturnya per agen. - Biayanya tetap. Bagi pembangun solo, tagihan bulanan yang bisa diprediksi lebih baik daripada mengawasi meteran per token selama sesi debugging panjang.
Satu tes independen awal mengukur sekitar 90 sampai 110 token per detik pada hari pertama. Itu satu pengukuran saja, bukan benchmark, tapi cocok dengan nama “Flash”.
Yang belum diketahui siapa pun
Inilah bagian yang dilewatkan sebagian besar liputan M3.1:
- Belum ada benchmark. Bukan dari MiniMax, bukan dari papan independen, karena model yang hanya bisa diakses lewat langganan satu perusahaan sulit diuji secara independen. Kamulah benchmark-nya. Beri satu tugas nyata dari proyekmu sendiri, beri tugas yang sama ke model yang sudah kamu percaya, lalu bandingkan diff-nya.
- Tidak ada harga per token. Itu tidak masalah di dalam langganan. Jadi masalah kalau kamu ingin menjalankan model ini di CI atau di sebuah produk, karena kamu perlu tahu berapa biaya satu juta token.
- Ini versi pratinjau. Perilakunya bisa berubah, namanya bisa diganti, atau digantikan M3.1 penuh tanpa pemberitahuan. Simpan ID model di satu berkas konfigurasi supaya menukarnya cukup mengubah satu baris.
- Thinking selalu menyala. Bahkan permintaan sepele membawa beban penalaran. Turunkan effort untuk pekerjaan kecil.
- Ini hanya tersedia dari MiniMax. Saat artikel ini ditulis, model ini tidak ada di OpenRouter, Ollama Cloud, atau OpenCode Go. Prompt dan kodemu dikirim ke server MiniMax’s, jadi untuk pekerjaan klien dengan aturan data ketat, baca dulu ketentuan MiniMax’s atau pertahankan proyek itu di model lokal.
Jangan unduh “MiniMax M3.1”
Dalam sehari setelah peluncuran, muncul repositori GitHub yang sama sekali tidak terkait MiniMax, menjanjikan “unduhan resmi gratis” M3.1-Flash berupa zip Windows untuk “diekstrak lalu dijalankan”. Tidak ada bobot M3.1 yang bisa diunduh, dan MiniMax Code berasal dari situs web MiniMax sendiri. Anggap setiap “unduhan M3.1” sebagai malware sampai terbukti sebaliknya.
Kapan sebaiknya memakai MiniMax M3
Gunakan M3 jika kamu membutuhkan hal-hal yang tidak ditawarkan versi pratinjau: harga bayar sesuai pemakaian, bobot terbuka yang bisa kamu hosting sendiri, atau akses lewat OpenCode Go, Ollama Cloud, atau OpenRouter. Ini juga pilihan yang lebih aman untuk apa pun yang otomatis, karena harga dan perilakunya terdokumentasi. Kalau kamu ingin gambaran lebih luas tentang alternatifnya, saya MiniMax M3 vs Kimi K2.7 Code vs Nemotron 3 Ultra perbandingan mencakup semuanya.
Bagian 4 — Menyiapkan OpenCode v2 dengan MiniMax M3.1, langkah demi langkah
Ini susunan yang akan saya berikan ke seorang teman. Butuh sekitar lima belas menit, sebagian besar untuk menunggu unduhan.
Langkah 0 — Yang kamu butuhkan lebih dulu
- Mac dengan Apple silicon, kalau kamu ingin membangun dan menjalankan aplikasi iPhone secara lokal. Xcode 27 (dirilis 14 September 2026) tidak lagi mendukung Mac Intel dan butuh macOS Tahoe 26.4 atau lebih baru. Kalau kamu memilih jalur Expo di Bagian 7, kamu bisa membangun aplikasi iOS di cloud dari Windows atau Linux, tapi kamu tetap perlu iPhone sungguhan untuk mengujinya.
- Git. Snapshot, branch, dan kewarasanmu sendiri bergantung padanya.
- Node.js (LTS) jika kamu akan menggunakan Expo.
- Langganan MiniMax M Plan (Bagian 3).
- Terminal modern. Terminal macOS sudah cukup; Ghostty, WezTerm, dan Kitty lebih nyaman.
Langkah 1 — Pasang OpenCode v2
bash
curl -fsSL https://opencode.ai/v2/install | bash
opencode --version # should print 2.0.x
opencode service status # the shared background server should be running
Mau aplikasi desktopnya juga? Unduh dari opencode.ai/download, atau di Mac jalankan brew install --cask opencode-desktop. Terminal dan aplikasi desktop berbagi satu server, jadi sesi yang kamu mulai di satu tempat muncul di tempat lain.
Satu hal yang perlu diperhatikan: panduan OpenCode milik MiniMax’s sendiri masih menampilkan URL penginstal v1 (opencode.ai/install). Gunakan /v2/install yang di atas.
Langkah 2 — Dapatkan kunci langganan M Plan kamu
Berlangganan di platform MiniMax dan buat kunci langganan di konsol. Bukan kunci API bayar sesuai pemakaian: keduanya produk berbeda, dan hanya kunci langganan yang memberi kamu M3.1-Flash-Preview.
Perlakukan kunci itu seperti kata sandi. Jangan pernah menempelnya ke chat, tangkapan layar, atau repositori Git.
Langkah 3 — Hubungkan MiniMax di dalam OpenCode
bash
cd ~/code/my-app
opencode
Lalu, di dalam OpenCode:
- Jenis
/connectdan cari MiniMax Token Plan (minimax.io). Penyedianya tetap memakai nama lama; ia menerima kunci M Plan. - Tempel kunci langgananmu.
- Jenis
/modelsdan pilih MiniMax-M3.1-Flash-Preview.
Selesai. Katalog model OpenCode (Models.dev) sudah mencantumkan model ini dengan konteks 1,000,000 token, input gambar dan video, serta lima tingkat effort, jadi kamu tidak perlu berkas konfigurasi untuk memulai. Jika model itu tidak muncul di /models, perbarui OpenCode dulu; konfigurasi di Langkah 4 juga menambahkannya secara manual.
Dua alternatif: opencode auth login melakukan hal yang sama dari terminal, dan wizard penyiapan MiniMax (npx -y mmx-cli@latest agent setup) memasang dan mengonfigurasi OpenCode untukmu, dengan M3 sebagai bawaan. Setelah itu beralih ke M3.1 dengan /models. Akun di platform China MiniMax memakai versi penyedia “(minimax.cn)”.
Langkah 4 — Tambahkan konfigurasi proyek
Pengaturan bawaan sudah berfungsi, tetapi proyek aplikasi layak mendapat berkas konfigurasi yang melakukan tiga hal: mengarahkan setiap agen ke tingkat effort yang tepat, menetapkan izin yang menjauhkan agen dari apa pun yang tidak bisa dibatalkan, dan menghubungkan server MCP kamu. Simpan ini sebagai opencode.jsonc di akar proyekmu:
jsonc
{
"$schema": "https://opencode.ai/config.json",
// Default model for new sessions
"model": "minimax-coding-plan/MiniMax-M3.1-Flash-Preview",
"providers": {
"minimax-coding-plan": {
"models": {
"MiniMax-M3.1-Flash-Preview": {
// MiniMax's own OpenCode example caps the window at 512K
"limit": { "context": 524288 },
// Thinking is always on and defaults to "max".
// These variants send MiniMax's documented output_config.effort field.
"variants": [
{ "id": "quick", "body": { "output_config": { "effort": "low" } } },
{ "id": "steady", "body": { "output_config": { "effort": "medium" } } },
{ "id": "careful", "body": { "output_config": { "effort": "high" } } }
]
}
}
}
},
"agents": {
// Planning gets the full default effort: a bad plan costs the most later
"plan": { "model": "minimax-coding-plan/MiniMax-M3.1-Flash-Preview" },
// Building: thorough, but faster than max
"build": { "model": "minimax-coding-plan/MiniMax-M3.1-Flash-Preview#careful" },
// Read-only searching through the codebase: speed matters more than depth
"explore": { "model": "minimax-coding-plan/MiniMax-M3.1-Flash-Preview#quick" }
},
"permissions": [
{ "action": "shell", "resource": "*", "effect": "ask" },
{ "action": "shell", "resource": "git status *", "effect": "allow" },
{ "action": "shell", "resource": "git diff *", "effect": "allow" },
{ "action": "shell", "resource": "git log *", "effect": "allow" },
{ "action": "shell", "resource": "npm test *", "effect": "allow" },
{ "action": "shell", "resource": "npx tsc *", "effect": "allow" },
{ "action": "shell", "resource": "npx expo lint *", "effect": "allow" },
{ "action": "shell", "resource": "git push *", "effect": "deny" },
{ "action": "shell", "resource": "eas submit *", "effect": "deny" },
{ "action": "shell", "resource": "firebase deploy *", "effect": "deny" }
],
"mcp": {
"servers": {
// Figma's desktop MCP server (Part 6). Local, so no OAuth.
"figma-desktop": {
"type": "remote",
"url": "http://127.0.0.1:3845/mcp",
"oauth": false
},
// Firebase's official MCP server. It asks before changing your project.
"firebase": {
"type": "local",
"command": ["npx", "-y", "firebase-tools@latest", "mcp"]
}
}
}
}
Beberapa catatan agar kamu tahu apa yang kamu tempel:
- Aturan izin dibaca dari atas ke bawah, dan kecocokan terakhir yang menang. Setiap perintah shell minta izin dulu, perintah Git dan uji yang aman berjalan bebas, dan tiga hal ditolak mentah-mentah: mendorong kode, mengirim ke App Store, dan men-deploy backend kamu. Itu kamu lakukan sendiri, dengan sengaja.
- Ganti perintah yang diizinkan sesuai toolchain kamu. Jika kamu membangun secara native dengan Xcode alih-alih Expo, ganti
npxbaris dengan perintah tes dan lint kamu. - Jika sebuah varian tampaknya tidak melakukan apa pun, run
/modelsuntuk memastikan nama varian, dan periksa permintaan itu di log OpenCode. MiniMax memakaimakssaat tidak ada effort yang dikirim, jadi kasus terburuknya adalah jawaban yang lebih lambat, bukan jawaban yang rusak. - Contoh gaya v1 yang lama masih berfungsi. Panduan MiniMax memakai
kunci provider; OpenCode v2 membaca pengaturan v1 yang didukung tanpa menulis ulang berkas kamu.
Langkah 5 — Tulis AGENTS.md sebelum menulis satu baris kode
OpenCode membaca AGENTS.md di awal setiap sesi. Ini kebiasaan paling efektif dalam pengembangan berbantuan AI, dan panduan vibe coding masuk ke seluruh sistem. Untuk sebuah aplikasi, berkas ini harus memuat aturan produk sekaligus perintah build. Berikut bentuknya untuk aplikasi seperti Stash:
markdown
# Catatan untuk agen coding (contoh untuk aplikasi bergaya Stash)
## Apa aplikasi ini
Stash mengingat di mana barang berada. Foto lokasi + nama + ruangan = ketemu dalam hitungan detik.
Jika sebuah perubahan tidak membuat penyimpanan atau pencarian lebih cepat, perubahan itu tidak perlu ada.
## Yang tidak bisa ditawar
- Offline first. Setiap fitur berfungsi tanpa jaringan. Sinkronisasi hanya bonus.
- Mode tamu tidak pernah mengunggah apa pun.
- Tanpa analitik, iklan, atau SDK pelacak. Tanya dulu sebelum menambah dependensi APA PUN.
- Tidak ada rahasia di bundel aplikasi. Pekerjaan berhak istimewa terjadi di Cloud Functions.
- Aksesibilitas: Dynamic Type, label VoiceOver, target sentuh 44 x 44 pt.
- Mode terang dan gelap untuk setiap layar.
## Desain
- Token berada di src/theme/tokens.ts. Jangan pernah menulis kode warna atau ukuran font secara langsung.
- Saat mengimplementasikan frame Figma: get_design_context, lalu get_variable_defs,
lalu get_screenshot untuk membandingkan hasilmu.
## Perintah
- Pasang: npm install
- Jalankan: npx expo start
- Tes: npm test
- Tipe: npx tsc --noEmit
- Lint: npx expo lint
## Definisi selesai
- Tes, tipe, dan lint lolos
- Berfungsi dalam mode pesawat
- Berfungsi dalam mode terang dan gelap, pada ukuran teks terbesar
- Tidak ada peringatan baru di konsol
Langkah 6 (opsional) — Jalankan OpenCode di dalam Xcode, dan beri ia alat Xcode
Xcode sekarang punya pengodean agentik bawaan, dan menerima agen dari luar dengan dua cara berbeda. Keduanya layak kamu ketahui jika kamu membangun secara native.
OpenCode sebagai agen di dalam Xcode (ACP). Xcode dapat menjalankan agen apa pun yang berbicara Agent Client Protocol, dan OpenCode bisa, melalui opencode acp.
- Masuk dulu dari terminal:
opencode auth login. - Jalankan
which opencodelalu salin path absolutnya. Xcode tidak memperluas~atau membaca PATH shell kamu. - Di Xcode, pilih Xcode → Settings → Intelligence, lalu di bawah Agents klik Add an Agent.
- Tempel path itu sebagai perintah dan tambahkan
acpsebagai argumen. - Mulai percakapan baru di bilah samping Intelligence Xcode dan pilih OpenCode.
Kamu tidak bisa mengganti model dari antarmuka Xcode, jadi atur model default kamu di opencode.jsonc dulu.
Alat Xcode di dalam OpenCode (MCP). Arah sebaliknya sering lebih berguna: OpenCode tetap di terminal kamu, tetapi ia bisa mem-build proyekmu, menjalankan tes, dan merender pratinjau SwiftUI lewat Xcode.
- Di Xcode → Settings → Intelligence, di bawah Model Context Protocol, aktifkan Izinkan agen eksternal memakai alat Xcode.
- Tambahkan jembatan Xcode ke OpenCode:
opencode mcp add xcode -- xcrun mcpbridge - Buka proyekmu di Xcode sebelum memberi prompt. Jembatan itu berbicara dengan Xcode yang sedang berjalan, dan Xcode memberi tahu kamu saat agen eksternal terhubung.
Tingkat effort mana untuk pekerjaan mana
| Tugas | Agen | Upaya |
|---|---|---|
| Merencanakan fitur, model data, atau logika sinkronisasi | plan | maks (bawaan) |
| Menerapkan layar dari frame Figma | build | tinggi |
| Memperbaiki bug dengan cara reproduksi yang jelas | build | tinggi; maks jika ini bug sinkronisasi atau race condition |
| Menulis tes, mengganti nama, refaktor kecil | build | medium |
| Mencari di basis kode, membaca dokumentasi | explore | rendah |
| Perubahan teks dan terjemahan string | build | rendah atau medium |
Upaya lebih tinggi berarti lebih banyak token berpikir dan lebih lama menunggu, menurut MiniMax sendiri. Sebagian besar waktu dalam loop agen dihabiskan untuk menunggu, jadi sesuaikan upaya dengan risikonya.
Bagian 5 — Mendesain aplikasimu di Figma saat kamu bukan desainer
Kamu tidak perlu jadi desainer untuk merancang aplikasi pertama yang bagus. Kamu perlu sedikit keputusan, dibuat sekali, dan ditulis di tempat yang bisa dibaca agen.
Mulai dari kata, bukan kotak
Sebelum membuka Figma, tulis tiga hal di berkas teks biasa:
- Janjinya, dalam satu kalimat. Untuk Stash: cara tercepat mengingat di mana kamu meletakkan barang.
- Tiga user story. “Aku menaruh pasporku di laci meja dan ingin menemukannya pada bulan Maret.” “Aku sedang di garasi, tidak ada sinyal, dan aku ingin mencatat ke mana bor itu pergi.” “Aku ingin lampu Natal mengingatkanku bahwa lampu itu ada pada bulan November.”
- Daftar layar. Stash hadir dengan empat tab (Home, Search, Rooms dan Settings) plus layar Add dan tampilan detail barang. Enam layar. Itu sudah satu aplikasi utuh.
Lalu berikan berkas itu kepada plan agen dan minta ia berdebat denganmu: “Baca brief ini. Daftarkan alur pengguna, kasus pinggiran yang belum kupikirkan, dan layar yang kulewatkan. Lalu beri tahu apa yang harus kupotong.” Inilah jenis pekerjaan membosankan dan menyeluruh yang memang cocok untuk upaya maksimal: pertanyaan seperti “apa yang terjadi kalau pengguna menolak akses kamera?”. Sepuluh menit untuk itu bisa menyelamatkanmu dari mendesain ulang.
Siapkan variabel sebelum menggambar apa pun
Figma variabel adalah nilai bernama: warna, jarak, radius sudut, ukuran. Siapkan dulu, dengan mode terang dan gelap untuk warnanya, dan aplikasimu akan konsisten secara bawaan.
Hal ini dua kali lebih penting saat memakai agen AI. Ketika agen menerapkan sebuah layar, server MCP Figma bisa memberinya variabel persis yang dipakai di frame itu (alat get_variable_defs ), jadi ia menulis colors.green alih-alih menebak kode hex dari tangkapan layar.
Berikut palet dari konsep desain publik Stash:
| Token | Nilai | Dipakai untuk | Kontras pada Paper |
|---|---|---|---|
| Paper | #F6F4EE | Latar aplikasi | — |
| Surface | #FFFCF7 | Kartu dan kolom | — |
| Tinta | #172E2A | Teks utama | 13.1 : 1 |
| Hijau | #23594C | Tombol, status terpilih, merek | 7.3 : 1 |
| Hijau lembut | #E1EBE4 | Sorotan halus | — |
| Koral | #D46F4F | Titik aksen, satu kata di judul | 3.1 : 1 |
| Koral lembut | #F8E8DE | Sorotan hangat | — |
| Redup | #6E7D76 | Teks sekunder | 3.9 : 1 |
| Garis | #DEDFD7 | Pemisah dan garis tepi | — |
Judul memakai serif; sisanya memakai sans-serif bawaan sistem. Itulah keseluruhan sistem tipografinya.
Kolom kontras adalah bagian yang perlu ditiru. Tinta dan hijau melewati rasio 4,5 : 1 yang diminta WCAG untuk teks normal dengan sisa yang banyak. Koral, sekitar 3 : 1, hanya lolos untuk teks besar, jadi tempatnya di kata judul yang besar dan titik aksen kecil, yang justru merupakan tempat Stash memakainya. Abu-abu redup berada di 3,9 : 1, jadi tempatnya di keterangan yang lebih besar, bukan teks kecil. Periksa ini di Figma sebelum agen menyalin token ke lima puluh tempat.
Tampilkan gambar Sembilan warna, dua jenis huruf, segelintir komponen. Sistem desain tidak harus besar untuk berguna; ia harus dituliskan.
Bangun lima komponen, bukan lima puluh
Untuk aplikasi pertama, kamu perlu sekitar lima komponen yang bisa dipakai ulang: tombol (utama dan tenang), kolom teks, sebuah kartu, sebuah baris daftar atau ubin (ubin ruangan Stash) dan bilah tab. Buat semuanya sebagai komponen Figma dengan varian untuk setiap status: default, ditekan, nonaktif, galat.
Apple menerbitkan sumber daya desain iOS resmi untuk Figma. Pakai itu sebagai acuan untuk komponen sistem seperti sheet, alert, dan keyboard, bukan menggambarnya ulang. Agen kamu tetap akan memakai komponen sistem yang asli.
Rancang layar yang akan dilupakan agen
Agen AI sangat jago di jalur normal dan diam-diam buruk pada semua hal di sekitarnya. Rancang ini dengan sengaja:
- Keadaan kosong. Peluncuran pertama, ruangan yang masih kosong (grid ruangan Stash menampilkan “Belum ada item”), pencarian tanpa hasil.
- Teks sangat besar. Atur ponselmu ke ukuran Dynamic Type terbesar lalu lihat tata letakmu. Nama item yang panjang akan terlipat. Tombol membesar.
- Mode gelap, untuk setiap layar, bukan hanya yang cantik.
- Tanpa foto. Seperti apa kartu item tanpa foto?
- Izin ditolak. Pengguna menolak akses kamera. Lalu bagaimana?
- Offline. Seperti apa tampilan “tersimpan, akan disinkronkan nanti”?
Biarkan AI membantu di dalam Figma, tetapi sumber kebenaran tetap milikmu
AI milik Figma sendiri berkembang pesat tahun ini. Figma Agent masuk beta terbuka untuk semua paket berbayar di Config 2026, dan gratis selama beta untuk seat Full. Fitur ini bisa membuat dan merombak desain di dalam berkasmu. Figma Make mengubah prompt menjadi prototipe yang bisa diklik. Weave kini bisa menjalankan tugas gambar seperti penukaran latar tanpa keluar dari berkas desain.
Semuanya bagus untuk eksplorasi. Buat sepuluh variasi layar utama, curi satu ide bagusnya, lalu bangun ulang dengan komponen dan variabelmu sendiri. Kalau lapisan hasil generasi menjadi sumber kebenaranmu, sistem desainmu melenceng, dan agen coding mewarisi penyimpangan itu.
Stash melakukan sesuatu yang akan saya rekomendasikan ke siapa pun: ide-ide eksperimentalnya hidup di konsep interaktif terpisah yang diberi label jelas di situs web, bukan di aplikasi. Kamu bisa bereksplorasi di depan publik tanpa menjanjikan fitur yang belum ada.
Buat prototipe, lalu amati tiga orang memakainya
Rangkai layar-layarnya menjadi prototipe yang bisa diklik, serahkan ponselmu ke tiga orang, dan minta masing-masing menyimpan sesuatu lalu menemukannya lagi. Jangan jelaskan apa pun. Perhatikan di mana mereka ragu. Tiga orang akan menemukan sebagian besar masalah yang penting, dan memperbaiki satu frame di Figma butuh beberapa menit, sedangkan memperbaikinya setelah agen membangunnya butuh satu sesi.
Bagian 6 — Menghubungkan Figma ke OpenCode: jebakan MCP
Inilah bagian alur kerja yang terasa seperti masa depan saat berhasil: pilih frame di Figma, suruh agen membangunnya, dan agen membaca tata letak asli, variabel asli, serta komponen asli, bukan menebak-nebak dari tangkapan layar.
Ini juga bagian di mana sebagian besar panduan melewatkan satu detail yang bisa menghabiskan satu malam.
Apa yang diberikan server MCP Figma kepada agen
MCP, Model Context Protocol, adalah cara standar bagi agen AI untuk memakai alat dari luar. Server MCP Figma menyediakan sekumpulan alat; berikut yang penting untuk membangun aplikasi:
| Alat | Apa yang dikembalikan |
|---|---|
get_design_context | Konteks desain untuk layer atau frame yang dipilih. Figma menyebutnya titik awal default |
get_variable_defs | Variabel dan gaya yang dipakai pada pilihan: warna, jarak, dan tipografimu |
get_screenshot | Gambar dari pilihan itu, supaya agen bisa membandingkan hasilnya |
get_metadata | Garis besar XML ringkas dari struktur layer |
get_code_connect_map | Pemetaan antara komponen Figma dan komponen kode aslimu |
create_design_system_rules | Prompt yang menulis berkas aturan berisi penjelasan sistem desainmu untuk agen |
Ada juga menulis alat (use_figma untuk membuat dan mengedit konten native Figma, generate_figma_design untuk mengubah UI web yang sedang berjalan menjadi layer Figma, dan lain-lain), tetapi hampir semuanya hanya tersedia di server remote. Ingat dulu soal itu.
Server remote vs server desktop
Figma menjalankan dua versi server:
- Server remote di
https://mcp.figma.com/mcp. Figma merekomendasikannya, tidak butuh aplikasi desktop, berfungsi di setiap seat dan paket, dan punya set alat lengkap termasuk menulis ke kanvas. - Server desktop di
http://127.0.0.1:3845/mcp, yang berjalan di dalam aplikasi desktop Figma. Server ini butuh seat Dev atau Full di paket berbayar, dan sebagian besar hanya bisa dibaca.
Masalahnya: OpenCode belum diizinkan di server remote
Selama beta, server remote hanya menerima klien yang disetujui. Daftar Figma mencakup Claude Code, Codex, Cursor, VS Code, Gemini CLI, Kiro, Warp, dan Xcode, antara lain. OpenCode tidak ada di daftar itu. Coba hubungkan, dan langkah pendaftarannya gagal dengan HTTP 403.
Ini bukan bug di sisi OpenCode. Pada Mei, seorang staf Figma menjelaskan di forum Figma bahwa cakupan koneksinya “sengaja dibatasi untuk klien yang didukung selama kami masih beta”, dan mengarahkan orang ke server desktop, yang “melewati masalah OAuth dan allowlist sepenuhnya.” Tim OpenCode punya pull request terbuka untuk menambahkan klien Figma terdaftar, dan saat tulisan ini dibuat masih menunggu persetujuan Figma.
Kamu akan menemukan postingan yang menyarankan meminjam client ID OAuth aplikasi lain untuk menyelinap melewati allowlist. Jangan. Pakai server desktop dan tunggu dukungan resmi.
Tampilkan gambar Tiga jalur dari Figma ke OpenCode. Hanya satu yang buntu, dan justru itulah yang Figma rekomendasikan untuk semua orang lain.
Menyiapkan server desktop dengan OpenCode
- Pasang aplikasi desktop Figma dan masuk dengan akun yang punya seat Dev atau Full di paket berbayar. Di paket Professional, seat Dev berharga $12 per bulan dan seat Full $16.
- Buka berkas desainmu dan beralih ke Dev Mode dengan
Shift + D. - Di panel inspect, temukan bagian server MCP lalu klik Aktifkan server desktop MCP.
- Tambahkan ke OpenCode. Pakai saja blok
figma-desktopdari konfigurasi di Bagian 4, atau jalankan:
bash
opencode mcp add figma-desktop --url http://127.0.0.1:3845/mcp
Kalau OpenCode mencoba memulai proses masuk OAuth untuk server ini, set "oauth": false pada server di opencode.jsonc. Server desktop bersifat lokal dan tidak memerlukannya. 5. Periksa koneksinya dengan opencode mcp list.
Biarkan aplikasi desktop Figma tetap terbuka selama kamu bekerja. Kalau Figma ditutup, alat Figma milik agen langsung hilang.
Perhatikan batas permintaan
Di paket Professional, seat Dev dan Full mendapat hingga 200 panggilan alat MCP per hari dan 10 per menit. Seat Organization mendapat 15 per menit; Enterprise 600 per hari dan 20 per menit. Seat View dan Collab dibatasi hanya beberapa panggilan per bulan. Dua ratus terdengar banyak sampai agen yang bersemangat memanggil get_screenshot setelah setiap perubahan kecil, jadi beri tahu di AGENTS.md agar membandingkan dengan tangkapan layar sekali per layar, bukan sekali per perubahan.
Pola prompt yang berhasil
Pilih frame di Figma, lalu di OpenCode:
Implementasikan frame Figma yang dipilih sebagai layar Add Item. Panggil dulu get_design_context dan get_variable_defs. Gunakan hanya token dari src/theme/tokens.ts; kalau ada nilai yang hilang, tambahkan token, jangan tulis nilainya langsung. Pakai ulang komponen Button, TextField, dan Card yang sudah ada. Setelah selesai, panggil get_screenshot dan daftar setiap perbedaan yang terlihat antara frame dan hasilmu. Lalu perbaiki semuanya.
Dua kebiasaan membuat ini jauh lebih andal:
- Jalankan
create_design_system_rulessekali di awal proyek dan simpan hasilnya sebagai bagian dari AGENTS.md atau sebagai skill di.opencode/skills/. Sejak itu, setiap sesi tahu aturan desainmu tanpa perlu diberi tahu. - Satu frame per permintaan. “Bangun seluruh aplikasi dari berkas ini” menghasilkan aplikasi yang sedikit salah di mana-mana. Satu layar setiap kali menghasilkan layar yang benar.
Tidak punya seat berbayar? Jalur gratis
Kamu bisa melakukan semua ini tanpa MCP. M3.1 bisa membaca gambar, jadi ekspor setiap frame sebagai PNG 2x, lampirkan ke prompt, dan tempel nilai warna serta jarakmu ke berkas token di repositori. Kamu kehilangan data layer yang persis dan pembacaan variabel, jadi bersiaplah untuk lebih banyak bolak-balik soal jarak. Untuk aplikasi pertama dengan enam layar, ini sepenuhnya bisa dikerjakan, dan tidak memakan biaya.
Bagian 7 — Cara membangun aplikasi dari nol, fase demi fase
Ini bagian “dari nol”. Tujuh fase, sesuai urutan yang akan saya ambil, lengkap dengan prompt dan jebakannya.
Fase 0 — Pilih framework-mu
Ada tiga pilihan wajar pada 2026, dan yang tepat bergantung pada di mana aplikasimu perlu berjalan.
| SwiftUI + Xcode 27 | Expo SDK 56 (React Native) | Flutter | |
|---|---|---|---|
| Berjalan di | iPhone, iPad, Mac, Apple Watch, dan Vision Pro | iPhone, iPad, Android, dan web | iPhone, iPad, Android, web, dan desktop |
| Bahasa | Swift 6.4 | TypeScript | Dart |
| Butuh Mac? | Ya | Tidak untuk build atau kirim: layanan EAS milik Expo membangun aplikasi iOS di cloud | Ya, untuk build iOS, kecuali kamu memakai CI cloud |
| Widget | Native WidgetKit | Stabil untuk iOS sejak SDK 56 | Lewat plugin plus kode WidgetKit native |
| Ramah agen | Sangat baik, terutama dengan alat MCP bawaan Xcode; kompiler Swift menangkap banyak hal | Sangat baik: tipe TypeScript, reload cepat, dan contoh kode publik yang sangat banyak | Baik |
| Terbaik untuk | Aplikasi khusus Apple yang ingin semua fitur native | Satu basis kode untuk iPhone dan Android, dikerjakan satu orang | UI yang tampak identik di setiap platform |
Aturan praktis saya:
- Hanya Apple, dan kamu ingin mainan terbaru platformnya (framework AI di perangkat Apple, Live Activities, integrasi sistem yang mendalam): SwiftUI, dengan OpenCode berjalan di dalam Xcode atau memakai alat Xcode (Bagian 4).
- iPhone dan Android dari satu basis kode, dan kamu bekerja sendiri: Expo. SDK 56 dirilis pada 21 Mei 2026 dengan React Native 0.85, menaikkan minimumnya ke iOS 16.4, membuat lapisan UI SwiftUI dan Jetpack Compose-nya siap produksi, serta menaikkan widget iOS ke status stabil. Layanan EAS-nya membangun dan mengirim aplikasi iOS dari Windows atau Linux, dan tier gratisnya mencakup 15 build iOS dan 15 build Android per bulan.
- Flutter kalau kamu atau timmu sudah menguasainya.
Halaman App Store Stash mensyaratkan iOS 16.4, dan kebijakan privasinya sudah mencakup build Android, jadi jelas aplikasi ini dimaksudkan untuk melangkah di luar iPhone.
Fase 1 — Siapkan kerangka, commit, brief
Buat proyek kosongnya dan pastikan sudah berjalan sebelum agen menyentuhnya.
Expo:
bash
npx create-expo-app@latest my-app
cd my-app
npx expo start # open it on your phone with Expo Go, or in the iOS Simulator
SwiftUI: di Xcode, pilih File › New › Project › iOS › App, pilih SwiftUI, dan jalankan sekali di Simulator.
Lalu tambahkan berkas dari Bagian 4 (AGENTS.md dan opencode.jsonc), plus dua lagi:
ROADMAP.md: daftar irisan vertikal di bawah, dengan kotak centang. Agen membacanya, mencentang yang selesai, dan kamu selalu tahu posisimu.src/theme/tokens.ts(atau padanan Swift-nya): variabel Figma-mu dalam bentuk kode. Salin manual, atau biarkan agen menariknya denganget_variable_defs.
Commit. Kalau Git belum disiapkan, git init dulu. Mulai sekarang, setiap langkah yang berhasil diakhiri dengan commit.
Fase 2 — Rencanakan model data sebelum layar apa pun
Model data adalah keputusan yang paling mahal untuk diubah nanti, karena begitu pengguna nyata punya data nyata, setiap perubahan butuh migrasi. Pakai plan agen dengan upaya maksimal:
Kamu sedang merencanakan aplikasi “di mana aku menaruhnya?”. Baca AGENTS.md, ROADMAP.md, dan brief-nya. Usulkan model data, pendekatan penyimpanan lokal, dan struktur folder. Aplikasi harus berfungsi penuh secara offline tanpa akun; akun dan sinkronisasi menyusul dan tidak boleh memaksa penulisan ulang lapisan lokal. Sebutkan trade-off-nya, migrasi yang kita perlukan kalau nanti menambahkan sinkronisasi, dan hal apa pun di brief yang ambigu. Jangan tulis kode dulu.
Untuk aplikasi seperti Stash, hasilnya akan mirip ini (ilustrasi, bukan skema asli Stash):
ts
type Room = {
id: string;
name: string; // "Hallway"
createdAt: number;
updatedAt: number;
};
type Item = {
id: string;
name: string; // "House keys"
roomId: string;
spot?: string; // "Top drawer"
note?: string; // "In the ceramic dish on the left"
photoPath?: string; // local file first; cloud copy only with an account
voiceNotePath?: string;
transcript?: string; // what makes voice notes searchable
remindAt?: number; // seasonal reminder
createdAt: number;
updatedAt: number; // used to resolve sync conflicts
deletedAt?: number; // soft delete, so deletions can sync too
};
Baca rencananya dengan benar. Bantah kalau perlu. Ini momen termurah di seluruh proyek untuk berubah pikiran.
Fase 3 — Bangun dalam irisan vertikal
Irisan vertikal adalah satu fitur yang berfungsi dari ujung ke ujung, dari layar ke penyimpanan dan kembali, sebelum kamu mulai yang berikutnya. Berikut urutan membangun aplikasi seperti Stash menurut saya:
- Tambah item: nama, ruangan, lokasi, dan catatan, disimpan lokal.
- Foto: kamera dan galeri foto, disimpan sebagai berkas lokal.
- Beranda: item yang baru disimpan dan baris ruangan.
- Pencarian: berdasarkan nama, ruangan, dan catatan, plus filter “dengan foto”.
- Detail item dan “Ketemu”.
- Ruangan: grid, plus menambah, mengganti nama, dan menghapus ruangan.
- Catatan suara: rekam, transkripsikan, buat transkripnya bisa dicari.
- Pengingat: notifikasi lokal untuk item musiman.
- Widget untuk Layar Utama dan Layar Kunci.
- Pengaturan: tampilan, ekspor, dan setelah akun ada, penghapusan akun.
- Akun dan sinkronisasi: materi versi dua, kalau kamu bijak.
Setiap irisan mengikuti alur yang sama:
- Rencana: agen
planmenulis rencana singkat untuk irisan itu. Kamu mengoreksinya. - Desain: pilih frame Figma, lalu pakai pola prompt dari Bagian 6.
- Bangun: agen
buildagen mengimplementasikan, menjalankan tes, dan memperbaiki yang gagal. - Jalankan sendiri, di perangkat sungguhan, dan coba rusakkan.
- Baca diff-nya. Setiap baris yang akan dirilis.
- Commit, centang kotaknya di ROADMAP.md, mulai sesi baru untuk irisan berikutnya.
Sesi baru itu lebih penting dari kelihatannya. Bahkan dengan konteks sejuta token, sesi panjang menumpuk asumsi yang sudah basi. Awal bersih yang membaca ulang AGENTS.md dan ROADMAP.md sering lebih pintar daripada sesi panjang.
Fase 4 — Offline dulu, baru sinkronisasi
Kebijakan privasi Stash menjelaskan pola yang akan saya tiru untuk hampir semua aplikasi pribadi: tanpa akun, semuanya tetap di perangkat; dengan akun, data disinkronkan lewat backend. Ini membuat versi pertama lebih sederhana, App Review lebih mudah, dan kepercayaan penggunamu lebih kuat.
Urutan pengerjaannya:
- Selesaikan dulu lapisan lokalnya. SQLite lewat pustaka Expo, atau SwiftData di aplikasi native. Foto dan rekaman tersimpan sebagai berkas di perangkat.
- Tambahkan akun dengan Firebase Authentication. Masuk lewat email sudah cukup untuk memulai. Kalau kamu menambahkan Google atau login pihak ketiga lain sebagai cara utama untuk masuk, pedoman 4.8 Apple mewajibkan opsi setara yang berfokus pada privasi seperti Sign in with Apple.
- Sinkronkan data item ke Cloud Firestore, serta foto dan catatan suara ke Cloud Storage, masing-masing di bawah jalur milik pengguna itu sendiri.
- Lakukan pekerjaan dengan hak istimewa di server. Apa pun yang butuh hak admin, seperti menghapus setiap berkas saat akun dihapus, tempatnya di Cloud Functions, bukan di bundel aplikasi.
- Kunci dengan aturan keamanan supaya setiap pengguna hanya bisa membaca dan menulis datanya sendiri:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{uid}/{document=**} {
allow read, write: if request.auth != null && request.auth.uid == uid;
}
}
}
Tulis aturan yang setara untuk Cloud Storage, dan minta agen menulis pengujian yang mencoba membaca data pengguna lain dan gagal. Server MCP resmi Firebase (ada di konfigurasi Bagian 4) memungkinkan agen memahami dan memvalidasi aturanmu, dan meminta persetujuanmu sebelum mengubah apa pun di proyek. Deploy tetap tugasmu, dan itu sebabnya firebase deploy ditolak di bagian izin.
Dua catatan soal uang. Paket Spark gratis Firebase mencakup Authentication (50.000 pengguna bulanan) dan kuota gratis Firestore (1 GiB tersimpan, 50.000 baca dan 20.000 tulis per hari), tetapi Cloud Storage dan Cloud Functions butuh paket Blaze bayar sesuai pemakaian. Blaze tetap memberi kuota tanpa biaya yang longgar, termasuk 5 GB penyimpanan dan 2 juta pemanggilan fungsi per bulan, jadi aplikasi kecil masih bisa gratis. Tetap pasang peringatan anggaran di hari pertama.
Kalau kamu ingin penjelasan “mengapa” yang lebih dalam di balik desain local-first, saya menulisnya di mengapa perangkat lunak local-first kembali populer.
Fase 5 — Bagian khusus iPhone
Inilah detail yang membedakan “jalan di ponsel saya” dari “lolos peninjauan”:
- Permintaan izin butuh alasan yang jujur. Kamera, pustaka foto, mikrofon, dan, kalau kamu memakai framework speech Apple, pengenalan suara, masing-masing butuh purpose string yang menyebutkan alasannya dengan tepat. “Untuk memotret tempat kamu menyimpan sesuatu” bagus. “Aplikasi ini butuh akses” adalah alasan penolakan klasik.
- Minta di saat yang tepat. Minta izin notifikasi saat seseorang membuat pengingat pertamanya, bukan saat peluncuran pertama. Orang bilang ya kalau alasannya jelas.
- Utamakan pengenalan suara di perangkat di mana ponsel mendukungnya, dan sebutkan di kebijakan privasimu bahwa layanan suara platform mungkin memproses audio. Kebijakan Stash melakukan tepat itu.
- Widget adalah aplikasi kecil tersendiri. Mereka punya siklus hidup sendiri, batas memori sendiri, dan caranya sendiri membaca datamu. Sisihkan satu bagian penuh untuk mereka.
- Manifes privasi. Sejak Mei 2024, aplikasi (termasuk SDK di dalamnya) harus menyatakan alasan yang disetujui untuk API sistem tertentu. SDK Firebase sudah membawa manifesnya sendiri; pastikan punyamu juga ada.
- Mode gelap, Dynamic Type, VoiceOver. Periksa ketiganya di setiap layar. Agen jauh lebih andal soal label aksesibilitas kalau AGENTS.md menuntutnya, jadi tuntutlah.
Fase 6 — Uji seperti orang skeptis
Agen akan bilang sudah selesai. Sering kali ia salah dalam hal kecil, dan kadang dalam hal besar. Agen Xcode 27 sekarang bisa menjalankan pengujian dan memeriksa pratinjau SwiftUI sendiri, yang membantu, tapi tidak ada yang menggantikan orang dengan ponsel.
Otomatis: unit test untuk pencarian, model data, dan terutama logika penggabungan sinkronisasi. Itulah bug yang membuat data orang hilang.
Secara manual, sebelum setiap rilis:
- Perangkat asli, bukan cuma Simulator
- Mode pesawat: simpan, cari, ubah, lalu sambungkan lagi dan periksa apakah tersinkron
- Mode gelap dan ukuran teks terbesar di setiap layar
- VoiceOver: bisakah kamu menyimpan dan menemukan item dengan mata tertutup?
- Setiap izin ditolak, satu per satu
- Instalasi baru, dan upgrade di atas versi sebelumnya (data harus selamat)
- Hapus akun: apakah semuanya benar-benar hilang?
Saat ada yang rusak, rekam. Pakai perekaman layar iPhone, lampirkan videonya, dan tanyakan ke M3.1 apa yang salah. Ia menerima input video, dan “tonton ini” lebih baik daripada tiga paragraf deskripsi.
Templat prompt untuk aplikasi seperti ini
Sesuaikan ini, jangan menyalinnya mentah-mentah.
Satu bagian:
Implementasikan bagian 4 dari ROADMAP.md (pencarian). Baca AGENTS.md dulu. Pencarian harus cocok dengan nama item, nama ruangan, catatan, dan transkrip catatan suara, tanpa membedakan huruf besar-kecil, saat pengguna mengetik. Tambahkan filter “Dengan foto”. Tulis unit test dulu, baru implementasinya. Jalankan pengujian dan pemeriksa tipe. Tunjukkan diff dan daftar asumsi yang kamu buat.
Bug:
Terlampir perekaman layar. Di iPhone dengan ukuran teks terbesar, keyboard menutupi tombol Simpan di layar Tambah. Temukan penyebabnya, jelaskan dalam dua kalimat, perbaiki, dan periksa formulir lain di aplikasi untuk masalah yang sama.
Tinjauan:
Tinjau setiap perubahan sejak commit terakhir sebagai reviewer iOS senior yang skeptis. Cari crash, kehilangan data, kebocoran privasi, label aksesibilitas yang hilang, warna hard-code, dan apa pun yang merusak penggunaan offline. Jangan perbaiki apa pun dulu; beri saya daftar bernomor, yang paling serius lebih dulu.
Prompt terakhir itu layak dijalankan sebelum setiap commit. Hanya perlu satu menit dan menangkap masalah yang bisa memakan waktu seakhir pekan.
Bagian 8 — Cara menerbitkan aplikasi di App Store pada 2026
Membangun aplikasinya adalah bagian yang menyenangkan. Menerbitkannya adalah urusan dokumen, dan di situlah pengembang pemula kehilangan seminggu. Ini semua di satu tempat.
Yang Apple syaratkan per Oktober 2026
| Persyaratan | Detail | Berlaku sejak |
|---|---|---|
| Apple Developer Program | $99 setahun (€99 di Jerman). Perusahaan mendaftar sebagai organisasi, yang butuh nomor D-U-N-S | — |
| Alat build | Unggahan harus dibangun dengan Xcode 26 atau yang lebih baru memakai SDK iOS 26 | 28 April 2026 |
| Target minimum | Aplikasi harus menargetkan iOS 13 atau yang lebih baru | 9 September 2026 |
| Rating usia | Jawab pertanyaan rating usia Apple yang diperbarui | 31 Januari 2026 |
| Manifes privasi | Alasan yang disetujui untuk API “required reason”, termasuk di SDK pihak ketiga | 1 Mei 2024 |
| Kebijakan privasi | Ditautkan di App Store Connect dan bisa diakses di dalam aplikasi (pedoman 5.1.1(i)) | — |
| Penghapusan akun | “Jika aplikasimu mendukung pembuatan akun, kamu juga harus menawarkan penghapusan akun di dalam aplikasi” (5.1.1(v)) | — |
| Status pedagang UE | Setiap pengembang harus menyatakannya. Alamat, telepon, dan email pedagang ditampilkan di halaman produk di semua 27 negara UE | — |
Versi Apple saat ini adalah Xcode 27 dan iOS 27, keduanya dirilis pada 14 September 2026. Kamu belum harus membangun dengan Xcode 27, tapi kamu tidak bisa lagi mengunggah apa pun yang dibangun dengan Xcode 16 atau lebih lama (Apple melompat langsung dari Xcode 16 ke 26 saat beralih ke nomor versi berbasis tahun).
Catatan untuk pengembang di Jerman dan UE: kalau kamu menerbitkan sebagai bisnis, kamu adalah pedagang di bawah Digital Services Act UE, dan Apple memverifikasi detail kontakmu sebelum menampilkannya di halaman produk. Pada Februari 2025, Apple menarik ribuan aplikasi dari storefront UE karena informasi ini tidak ada. Jangan jadi salah satunya.
App Store Connect, kolom demi kolom
Buat catatan aplikasi di App Store Connect, lalu isi:
- Bundle ID. Pengenal reverse-domain yang tidak pernah berubah, seperti milik Stash
network.grahammiranda.stash. Pilih dengan cermat. - Nama (30 karakter) dan subjudul (30). Stash memakai Stash — Find It Fast dan Temukan apa pun yang sudah kamu simpan: merek plus manfaatnya, lalu manfaatnya dengan kata-kata sederhana.
- Kata kunci (100 karakter), dipisahkan koma tanpa spasi. Jangan mengulang kata yang sudah ada di nama atau subjudulmu; kata itu tetap dihitung.
- Teks promosi (170 karakter), yang bisa kamu ubah tanpa peninjauan baru, dan deskripsi (4,000).
- Tangkapan layar. Satu sampai sepuluh per ukuran perangkat, PNG atau JPEG, tanpa transparansi. Untuk iPhone, ukuran 6,9 inci (1320 × 2868) atau 6,5 inci (1284 × 2778); untuk iPad, ukuran 13 inci (2064 × 2752). Set Stash memakai ukuran 6,5 inci dan 13 inci.
- Kategori. Satu primer dan satu sekunder opsional. Stash masuk Produktivitas, dengan Utilitas di urutan kedua.
- URL. Dukungan, pemasaran, dan kebijakan privasi. Semuanya harus berfungsi.
- Privasi Aplikasi, “label nutrisi”-nya. Lebih jauh di bawah, karena di sinilah orang jujur pun masih keliru.
- Rating usia kuesioner.
- Informasi App Review: detail kontak, catatan untuk reviewer dan, kalau aplikasimu butuh masuk, akun demo. Mode tamu seperti milik Stash memudahkan hidup reviewer.
- Kepatuhan ekspor. Kalau aplikasimu hanya memakai enkripsi bawaan sistem operasi, seperti HTTPS, biasanya ia memenuhi syarat pengecualian. Periksa panduan Apple, lalu set
ITSAppUsesNonExemptEncryptiondi Info.plist supaya kamu tidak ditanya di setiap unggahan.
Kolom teks juga pekerjaan yang pas untuk agen: “Susun subjudul, kata kunci, teks promosi, dan deskripsi App Store. Pakai hanya fitur yang ada di kode; sebutkan berkas tempat setiap fitur berada.” Instruksi terakhir itu mencegahnya mengarang fitur.
TestFlight dulu sebelum yang lain
Unggah build (dari Organizer Xcode, atau dengan eas build --platform ios --auto-submit di Expo) dan uji lewat TestFlight dulu:
- Penguji internal: hingga 100 orang di timmu, tanpa perlu peninjauan.
- Penguji eksternal: hingga 10.000, diundang lewat email atau tautan publik. Build eksternal pertama melewati Beta App Review singkat.
- Build tetap bisa diuji selama 90 hari.
Beri ke lima teman dengan ponsel berbeda selama seminggu. Mereka akan menemukan crash yang tidak kamu temukan.
Apa yang sebenarnya membuat aplikasi ditolak
Apple mengatakan bahwa “rata-rata, 90% pengajuan ditinjau dalam waktu kurang dari 24 jam”, dan bahwa “lebih dari 40% masalah yang belum selesai berkaitan dengan pedoman 2.1: Kelengkapan Aplikasi”: crash, konten placeholder, informasi tidak lengkap, dan tautan rusak. Tersangka biasa untuk aplikasi pertama:
| Pedoman | Artinya dalam praktik |
|---|---|
| 2.1 Kelengkapan Aplikasi | Tanpa crash, tanpa “Lorem ipsum”, tanpa tautan mati, detail akun demo kalau masuk diperlukan |
| 4.2 Fungsi Minimum | “Aplikasimu harus menyertakan fitur, konten, dan UI yang membuatnya lebih dari situs web yang dikemas ulang” |
| 4.8 Layanan Login | Login pihak ketiga sebagai cara masuk utama berarti kamu juga harus menawarkan opsi yang berfokus pada privasi seperti Sign in with Apple |
| 5.1.1(i) Kebijakan privasi | Ditautkan di App Store Connect dan di dalam aplikasi; menyebutkan apa yang kamu kumpulkan, siapa yang memprosesnya, dan bagaimana penghapusannya bekerja |
| 5.1.1(v) Penghapusan akun | Kalau orang bisa membuat akun, mereka bisa menghapusnya di aplikasi |
| Metadata akurat | Tangkapan layar dan deskripsi menunjukkan apa yang benar-benar dilakukan binary, bukan roadmap |
Stash menyimpan eksplorasi desainnya di situs web, diberi label jelas, dan tidak di halaman App Store, yang merupakan sisi benar dari batas terakhir itu.
Label privasi: buat benar, bukan sekadar masuk akal
Definisi Apple tepat: “‘Mengumpulkan’ berarti mengirimkan data keluar dari perangkat dengan cara yang memungkinkan kamu dan/atau mitra pihak ketigamu mengaksesnya untuk jangka waktu lebih lama dari yang diperlukan untuk melayani permintaan yang dikirim secara real time.” Data yang hanya diproses di perangkat tidak termasuk dikumpulkan.
Dalam praktik, untuk aplikasi seperti Stash:
- Hanya mode tamu (tidak ada yang keluar dari ponsel): datanya tidak dikumpulkan.
- Akun dengan sinkronisasi: alamat email, foto, rekaman suara, dan catatan yang disimpan di backend kamu semuanya dikumpulkan, karena data itu meninggalkan perangkat dan menetap di server, meskipun hanya pengguna yang bisa melihatnya. Data itu masuk ke label sebagai data yang ditautkan ke pengguna, dipakai untuk fungsi aplikasi, dan tidak dipakai untuk pelacakan.
Agen adalah auditor yang sangat baik di sini, karena ia bisa membaca setiap panggilan jaringan di basis kode:
Audit basis kode ini untuk setiap data yang keluar dari perangkat: apa datanya, ke mana perginya (SDK atau endpoint mana), apakah disimpan, berapa lama, dan apakah ditautkan ke pengguna. Sertakan data yang dikirim SDK pihak ketiga. Keluarkan tabel yang bisa saya pakai untuk mengisi pertanyaan App Privacy Apple dan formulir Data safety Google Play.
Lalu pastikan tiga dokumen menceritakan hal yang sama: kebijakan privasimu, label privasi App Store-mu dan, kalau kamu merilis di Android, formulir Data safety Google Play-mu. Kebijakan privasi Stash menyebut tabel datanya ditulis agar cocok dengan kedua deklarasi toko, dan itulah standar yang tepat untuk kamu pegang.
Tampilkan gambar Cetak, tempel di samping layar, centang sebelum setiap pengajuan pertama.
Bagaimana Stash dirilis
Stash 1.0 tayang pada 23 September 2026. Versi 1.0.1, dengan “Desain baru dan perbaikan bug”, menyusul pada 2 Oktober, sembilan hari kemudian. Rilis versi yang berfungsi, lalu tingkatkan secara terbuka: itulah ritme paling sehat yang saya tahu untuk aplikasi pertama.
Bagian 9 — “Dan lain-lain”: perlengkapan peluncuran di sekitar aplikasi
Aplikasi di App Store tanpa apa pun di sekitarnya adalah toko tanpa papan nama. Ini sisa perangkatnya, lagi-lagi dengan Stash sebagai contoh.
Halaman landing dengan demo yang bisa dicoba orang
Situs web Stash melakukan beberapa hal yang akan saya tiru untuk aplikasi pertama mana pun:
- Satu janji di bagian atas halaman. “Simpan. Ingat tempatnya.” Lalu satu kalimat dan dua tombol: ambil aplikasinya, atau coba di browser.
- Pratinjau langsung di bagian hero. Ponsel di sebelah kanan bukan gambar. Kamu bisa mengetuk-ngetuk di dalamnya.
- Demo browser sungguhan. A rumah contoh tempat kamu bisa mencari kunci, menjelajahi ruangan, dan menambahkan item uji. Demo “berjalan di tab browser kamu”, tidak menyentuh data aplikasi, dan melupakan semuanya saat kamu memuat ulang. Ini membiarkan orang mencoba idenya sebelum memutuskan memasang.
- Tiga langkah, empat fitur, tanpa jargon. Foto tempatnya. Beri nama dan ruangan. Temukan saat kamu membutuhkannya.
- Eksplorasi desain, diberi label jelas sebagai konsep, bukan fitur.
- Sepuluh bahasa (Inggris, Jerman, Prancis, Spanyol, Italia, Belanda, Portugis Brasil, Polski, Swedia, dan Denmark), masing-masing dengan
hreflangtag yang tepat supaya mesin pencari menampilkan versi yang benar, plus tombol tampilan terang dan gelap. - Data terstruktur yang menjelaskan aplikasi sebagai
MobileApplication, dengan harga, platform, dan tautan App Store-nya, supaya mesin pencari paham halaman ini tentang sebuah aplikasi. - Tidak ada yang menyeramkan. Kode situsnya tidak punya analitik, tidak ada piksel iklan, tidak ada sematan sosial, tidak ada font eksternal, tidak ada login, dan tidak ada formulir kontak. Ia hanya menyimpan bahasa dan tampilan pilihanmu di browser.
Tampilkan gambar Halaman landing Stash. Ponsel di sebelah kanan adalah demo yang berfungsi, bukan tangkapan layar.
Halaman statis seperti ini juga proyek pertama yang sempurna untuk setup OpenCode dan M3.1 yang sama: HTML, CSS, dan sedikit JavaScript biasa, tanpa framework, dan kamu bisa melihat setiap perubahan di browser seketika.
Halaman legal, kalau kamu di Jerman atau UE
Ini informasi umum dari orang yang sudah melaluinya, bukan nasihat hukum. Kalau ragu, tanyakan ke pengacara.
Merilis dari Jerman berarti beberapa halaman tambahan yang tidak akan disebutkan tutorial AS:
- Impressum (imprint) menurut § 5 Digitale-Dienste-Gesetz (DDG), hukum Jerman yang menggantikan Telemediengesetz lama pada 2024: nama perusahaan, alamat, direktur utama, entri register, detail kontak dan, kalau ada, ID PPN.
- Dua teks privasi terpisah. Satu untuk situs web dan satu untuk aplikasi, karena keduanya memproses data berbeda. Stash punya keduanya, dan masing-masing menyebut dengan jelas mana yang sedang kamu baca.
- Kebijakan privasi aplikasi yang benar-benar berisi. Kebijakan Stash mencakup pengendali, tabel tentang persis apa yang dikumpulkan dan mengapa, dasar hukum untuk setiap tujuan menurut Artikel 6 GDPR, pemroses yang terlibat (Firebase, dari Google), bagaimana transfer internasional dicakup (EU-U.S. Data Privacy Framework dan klausul kontraktual standar), penyimpanan dan penghapusan, hak pengguna, otoritas pengawas yang bertanggung jawab, anak-anak, keamanan, dan bagaimana perubahan diumumkan.
- Cara menghapus akun dari luar aplikasi. Stash menyediakan formulir web selain opsi di dalam aplikasi. Google Play mewajibkan tautan web untuk penghapusan akun kalau aplikasimu memungkinkan orang membuat akun, jadi kamu akan tetap membutuhkannya saat merilis di Android.
- Ketentuan pemrosesan data dengan penyedia backend kamu, diterima di konsolnya sebelum data pengguna sungguhan masuk.
Cookie adalah masalah klasik lainnya. Situs Stash menghindari sebagian besar masalah itu karena tak ada yang perlu dimintai persetujuan: tanpa analytics, tanpa piksel iklan, tanpa pelacakan, hanya bahasa dan tema yang diingat. Banner persetujuan termurah adalah yang tidak pernah kamu butuhkan.

Optimasi App Store tanpa janji palsu
Pencarian App Store bekerja berdasarkan nama, subjudul, dan kata kunci, dan orang memutuskan dalam hitungan detik dari ikon serta tangkapan layar pertamamu. Beberapa aturan yang tetap berlaku:
- Nama: merek plus manfaat. “Stash — Find It Fast” memberi tahu orang asing untuk apa aplikasi ini.
- Tangkapan layar bercerita, secara berurutan. Enam tangkapan layar Stash terbaca seperti iklan singkat: Semua punya tempat. Temukan. Dalam hitungan detik. Simpan tempatnya. Rumahmu. Ruangan demi ruangan. Ingat detail kecilnya. Jelas. Di setiap cahaya. Banyak orang tidak pernah menggulir melewati dua atau tiga yang pertama, jadi taruh loop inti di sana.
- Lokalkan halaman toko dalam setiap bahasa yang benar-benar didukung aplikasimu.
- Minta penilaian saat momennya tepat. Prompt penilaian Apple bisa muncul paling banyak tiga kali setahun per pengguna, jadi jangan buang kesempatan itu saat peluncuran pertama. Di aplikasi seperti Stash, momen yang jelas adalah tepat setelah seseorang mengetuk “Found it”.
- Gunakan teks promosi untuk musim. Bersih-bersih musim semi, pindah rumah, menyimpan barang musim dingin. Teksnya berubah tanpa peninjauan ulang.
Android, saat kamu siap
Kalau kamu membangun dengan Expo atau Flutter, Android tinggal selangkah build. Urusan administratifnya lebih ringan tapi berbeda:
- Google Play mengenakan biaya $25 sekali untuk membuka akun developer.
- Akun personal baru (dibuat setelah 13 November 2023) harus menjalankan uji tertutup dengan sedikitnya 12 penguji, yang ikut serta selama 14 hari berturut-turut, sebelum bisa menerbitkan. Akun organisasi dikecualikan, satu alasan lagi untuk menerbitkan lewat perusahaan kalau kamu punya.
- Formulir Data safety adalah versi Google dari label privasi. Jaga agar konsisten dengan kebijakan privasimu dan jawabanmu di App Store.
Bagian 10 — Berapa biaya membangun aplikasi dengan AI pada 2026
Perangkat lunak dalam stack ini sebagian besar gratis. Yang kamu bayar adalah model, keanggotaan Apple, dan kalau mau, seat Figma yang lebih baik.
| Item | Harga daftar | Kapan dibutuhkan |
|---|---|---|
| Apple Developer Program | $99 setahun (€99 di Jerman) | Untuk bisa terbit di App Store |
| OpenCode v2 | Gratis, lisensi MIT | Selalu |
| MiniMax M Plan | Go $22, Explore $55, Build $132 per bulan (diskon 50% bulan pertama untuk tagihan bulanan sampai 14 Oktober) | Untuk memakai M3.1-Flash-Preview |
| Figma | Starter gratis; seat Dev Professional $12 per bulan, seat Full $16 | Seat berbayar hanya untuk server MCP desktop |
| Xcode | Gratis | Build native, di Mac dengan Apple silicon |
| Expo EAS | Tier gratis dengan 15 build iOS dan 15 build Android per bulan; Starter $19 per bulan | Kalau membangun dengan Expo |
| Firebase | Paket Spark gratis; Blaze adalah bayar sesuai pemakaian dengan kuota tanpa biaya | Akun dan sinkronisasi; Storage dan Functions butuh Blaze |
| Google Play | $25, sekali bayar | Hanya kalau kamu merilis di Android |
| Halaman landing | Sesuai biaya hosting dan domainmu | Sangat disarankan |
Tiga anggaran tahun pertama yang realistis
| Anggaran | Isinya | Tahun pertama |
|---|---|---|
| Hemat | Keanggotaan Apple + M Plan Go; Figma Starter dengan frame yang diekspor; Expo, Firebase, dan OpenCode di tier gratis | $363 |
| Nyaman | Hemat + seat Figma Dev untuk server MCP desktop + Google Play | $532 |
| Daya | Apple + M Plan Explore + seat Figma Full + Expo Starter + Google Play | $1,204 |
Tampilkan gambar Langganan model adalah pos terbesar di setiap anggaran. Biaya Apple satu-satunya yang tidak bisa kamu hindari.
Harga daftar dalam dolar AS pada 5 Oktober 2026, tanpa PPN, dengan tarif bulanan penuh (tanpa diskon peluncuran). Tagihan backend-mu bergantung pada jumlah pengguna; dalam skala kecil, kuota tanpa biaya Firebase biasanya cukup. Tetap pasang peringatan anggaran.
Anggaran hemat itu jadi sekitar $30 per bulan. Namun biaya sebenarnya proyek ini tidak ada di daftar: waktu malammu. AI memangkas pengetikan, bukan pemikiran, dan pemikiran adalah bagian terbesarnya.
Bagian 11 — Sepuluh kesalahan yang perlu dihindari saat membangun aplikasi pertamamu dengan AI
- Mulai dari kode, bukan dari brief. Agen akan dengan senang hati membangun aplikasi yang salah dengan sangat cepat.
- Membangun semuanya sekaligus. “Buat seluruh aplikasi” memberimu aplikasi utuh yang sedikit rusak di mana-mana. Bangun per irisan vertikal.
- Melewati AGENTS.md. Tanpanya, setiap sesi mulai dari nol, dan agen memutuskan ulang hal-hal yang sudah kamu putuskan.
- Membiarkan agen menambah dependensi sesuka hati. Setiap paket adalah kode yang tidak kamu baca, tambahan ukuran aplikasi, dan pembaruan yang harus diurus nanti. Suruh agen bertanya dulu.
- Hard-code warna dan ukuran. Lalu mengubah desain berarti menyunting 140 berkas. Selalu pakai token.
- Percaya pada “selesai”. Agen melaporkan keberhasilan dengan optimistis. Jalankan di ponsel sungguhan, dalam mode pesawat, mode gelap, dengan ukuran teks terbesar.
- Menaruh rahasia di dalam aplikasi. Apa pun di dalam bundel aplikasi bisa diekstrak. API key yang memakan biaya, atau memberi akses admin, disimpan di server.
- Label privasi yang terdengar masuk akal tetapi tidak akurat. Kalau data meninggalkan perangkat dan tersimpan di server, data itu terhitung dikumpulkan, meskipun hanya pengguna yang bisa melihatnya.
- Lupa penghapusan akun. Apple mewajibkannya di dalam aplikasi kalau kamu menyediakan pendaftaran; Google Play juga mewajibkan tautan web.
- Menjanjikan roadmap-mu. Tangkapan layar dan deskripsi menunjukkan apa yang aplikasi lakukan hari ini. Konsep tempatnya di situs webmu, diberi label sebagai konsep.
Dan satu lagi sebagai pelengkap: tidak membaca diff. Vibe coding berarti tidak menulis setiap baris. Bukan berarti tidak membaca baris yang dirilis. Angka keamanan dalam rangkuman Kondisi AI 2026 adalah alasannya.
Bagian 12 — Perlukah kamu memakai stack ini persis? Enam skenario
1. “Aku belum pernah menulis satu baris kode.”
Expo, aplikasi desktop OpenCode, M3.1 di tier Go M Plan, dan paket gratis Figma dengan frame yang diekspor. Batasi aplikasi pertamamu pada satu loop inti, seperti simpan-dan-cari di Stash. Biarkan perintah shell di tanya, commit setiap kali satu langkah berhasil, dan gunakan /undo tanpa rasa bersalah.
2. “Aku hanya peduli iPhone, dan aku ingin sepenuhnya native.”
SwiftUI di Xcode 27, dengan OpenCode entah di dalam Xcode lewat ACP atau di terminalmu dengan tool MCP dari Xcode. M3.1 untuk perencanaan dan pembangunan. Kamu mendapat akses pertama ke framework terbaru Apple dan integrasi paling rapat dengan sistem.
3. “Aku sudah berlangganan Claude atau ChatGPT.”
Pakai yang sudah kamu punya, dan jujur soal di mana ia menang. Claude Code, Codex, dan Cursor ada di daftar yang disetujui Figma untuk server MCP remote saat ini, termasuk tool tulis-ke-kanvas yang belum bisa dijangkau OpenCode. OpenCode bisa masuk langsung dengan ChatGPT Plus atau Pro. Tambahkan M3.1 lewat OpenCode untuk pekerjaan yang menonjolkan konteks sejuta token dan masukan videonya.
4. “Aku ingin mulai sehemat mungkin.”
MiniMax M3 alih-alih M3.1 (lewat OpenCode Go $10 per bulan, atau bayar sesuai pemakaian), Figma Starter, build gratis Expo, dan paket gratis Firebase. Keanggotaan Apple $99 adalah satu-satunya biaya yang tidak bisa dihindari untuk aplikasi iPhone. Kalau belum siap, bangun dulu versi webnya.
5. “Aplikasiku menangani data sensitif.”
Rancang untuk mode tamu lebih dulu, batasi SDK pihak ketiga seminimal mungkin, dan pikirkan juga ke mana kodemu pergi. Prompt dan kode sumbermu pergi ke penyedia model. Untuk proyek yang sangat sensitif, model lokal lewat Ollama menjaga semuanya di mesinmu sendiri (artikel OpenCode v2 membahas penyiapan itu), dan mintalah seorang profesional privasi meninjau aplikasi sebelum peluncuran.
6. “Aku membangun aplikasi untuk klien.”
Paket Figma Organization dengan Code Connect, kebijakan OpenCode untuk mengatur penyedia mana yang boleh dipakai tiap proyek klien, tier M Plan yang cukup untuk beberapa agen paralel, dan build EAS berbayar. Simpan aturan desain setiap klien dalam skill yang di-commit atau AGENTS.md agar setiap sesi dan setiap rekan tim mulai dari aturan yang sama.
Bagian 13 — Yang perlu diperhatikan dalam beberapa bulan ke depan
- M3.1 lengkap dari MiniMax. Apakah ia benar-benar dirilis, apakah ia mendapat harga per token, benchmark terbit, dan bobot terbuka seperti M3, dan apakah pratinjau Flash sampai ke OpenRouter, OpenCode Go, atau Ollama Cloud.
- OpenCode di daftar izin Figma. Pull request OpenCode untuk klien Figma terdaftar masih menunggu Figma. Begitu masuk, tool tulis di server remote terbuka bagi pengguna OpenCode.
- Harga tulis-ke-kanvas Figma. Figma menyatakan fitur-fitur itu gratis selama beta dan nanti akan berbasis pemakaian.
- Figma Code Layers, yang dipratinjau di Config dan menjanjikan desain serta kode di kanvas yang sama.
- OpenCode v2 yang makin matang: berbagi sesi kembali hadir, plugin menyusul, dan rilis 2.0.x mulai stabil.
- Tenggat SDK Apple berikutnya. Kalau Apple mengikuti pola biasanya, build dengan Xcode 27 akan wajib untuk unggahan sekitar musim semi mendatang.
- Stash sendiri. Tiga eksplorasi desain di situsnya (menandai titik persis, Quick Move, kotak dan label) menunjukkan arah ide-idenya.
Pertanyaan yang sering diajukan
Bisakah aku membangun aplikasi dari nol tanpa pengalaman coding?
Bisa. Pada 2026, agen coding AI seperti OpenCode, dipasangkan dengan model kuat seperti MiniMax M3.1, menulis kodenya sementara kamu mengambil keputusan: apa yang dilakukan aplikasi, bagaimana tampilannya, data apa yang disimpan, dan bagaimana kamu mengujinya. Kamu tetap perlu belajar membaca rencana, meninjau diff, menguji di perangkat sungguhan, dan mengurus App Store Connect. Mulailah dengan aplikasi yang punya satu loop inti dan tanpa pembayaran.
Berapa lama membangun aplikasi dengan AI?
Itu jauh lebih bergantung pada cakupan daripada pada tool. Aplikasi kecil dengan satu loop inti, seperti aplikasi simpan-dan-cari, adalah urusan beberapa minggu malam, bukan berbulan-bulan, kalau kamu membangun per irisan vertikal dan menguji sambil jalan. Penerbitan menambah beberapa hari untuk TestFlight dan berkas App Store; Apple menyebut 90% kiriman ditinjau dalam kurang dari 24 jam.
Apa itu MiniMax M3.1?
MiniMax M3.1 adalah generasi berikutnya dari keluarga model M3 milik MiniMax. Per Oktober 2026, satu-satunya versi yang bisa kamu pakai adalah MiniMax-M3.1-Flash-Preview, yang diluncurkan pada 27 September 2026: model coding multimodal dengan jendela konteks 1.000.000 token, masukan teks, gambar, dan video, thinking yang selalu aktif, serta lima tingkat effort dari low sampai max. Ia hanya tersedia lewat langganan M Plan MiniMax dan aplikasi MiniMax Code.
Apakah MiniMax M3.1 tersedia lewat API?
Hanya dengan kunci langganan. M3.1-Flash-Preview bekerja di endpoint MiniMax yang kompatibel OpenAI dan kompatibel Anthropic, tetapi hanya dengan kunci langganan M Plan. Belum ada harga bayar sesuai pemakaian, belum ada bobot terbuka, dan belum terdaftar di OpenRouter, Ollama Cloud, atau OpenCode Go. MiniMax M3 masih tersedia bayar sesuai pemakaian seharga $0.30 per juta token masukan dan $1.20 per juta token keluaran.
Bagaimana cara memakai MiniMax M3.1 di OpenCode?
Pasang OpenCode v2, jalankan di folder proyekmu, lalu jalankan /connect, pilih “MiniMax Token Plan (minimax.io)” dan tempel kunci langganan M Plan-mu. Lalu jalankan /models dan pilih MiniMax-M3.1-Flash-Preview. Tidak perlu berkas konfigurasi, meskipun konfigurasi proyek opencode.jsonc memungkinkanmu mengatur tingkat effort per agen dan menambah izin.
Apakah server MCP Figma bekerja dengan OpenCode?
Sebagian. Server MCP remote Figma hanya menerima klien yang disetujui selama beta, dan OpenCode belum ada di daftar itu, jadi koneksi gagal dengan HTTP 403. Server MCP desktop Figma berfungsi: aktifkan di Dev Mode pada aplikasi desktop Figma dan arahkan OpenCode ke http://127.0.0.1:3845/mcp. Itu memerlukan seat Dev atau Full pada paket berbayar dan sebagian besar tool-nya hanya baca.
Apakah aku perlu Mac untuk membangun aplikasi iPhone?
Tidak harus. Pengembangan native dengan Xcode butuh Mac, dan Xcode 27 memerlukan Apple silicon. Dengan Expo, EAS membangun aplikasi iOS-mu di cloud dan EAS Submit mengunggahnya ke App Store Connect dari macOS, Windows, atau Linux. Kamu tetap ingin iPhone untuk pengujian, dan kamu perlu keanggotaan Apple Developer Program untuk menerbitkan.
Berapa biaya menerbitkan aplikasi di App Store?
Apple Developer Program berbiaya $99 setahun, atau setara lokalnya (€99 di Jerman). Apple tidak memungut biaya per aplikasi atau per kiriman. Biaya membangun bergantung pada tool-mu; penyiapan hemat dalam panduan ini sekitar $363 untuk tahun pertama termasuk langganan MiniMax M Plan, dengan tier gratis untuk OpenCode, Figma, Expo, dan Firebase.
Berapa lama peninjauan App Store?
Apple menyebut rata-rata 90% kiriman ditinjau dalam kurang dari 24 jam. Alasan paling umum aplikasi tertahan adalah pedoman 2.1, App Completeness: crash, konten placeholder, informasi peninjauan yang tidak lengkap, dan tautan rusak, termasuk URL dukungan dan kebijakan privasi.
Sebaiknya pakai SwiftUI, React Native (Expo), atau Flutter?
Pakai SwiftUI dengan Xcode 27 kalau aplikasimu khusus Apple dan kamu ingin fitur platform terbaru. Pakai Expo (React Native) kalau kamu ingin satu basis kode untuk iPhone dan Android dan bekerja sendiri: SDK 56 mendukung iOS 16.4 ke atas, punya widget iOS yang stabil, dan bisa build di cloud. Pakai Flutter kalau kamu atau timmu sudah menguasai Dart.
Apa bedanya MiniMax M3 dan M3.1?
MiniMax M3, dirilis pada 1 Juni 2026, tersedia umum dengan bobot terbuka, benchmark terbit, dan harga per token, serta berjalan di banyak penyedia. M3.1-Flash-Preview, dirilis pada 27 September 2026, adalah pratinjau khusus langganan tanpa bobot, harga, atau benchmark, dengan thinking selalu aktif dan lima tingkat effort. Keduanya punya konteks 1 juta token dan menerima teks, gambar, serta video.
Apa itu Stash?
Stash — Find It Fast adalah aplikasi iPhone dan iPad gratis dari Graham Miranda UG yang mengingat di mana kamu meletakkan barang. Kamu memotret tempatnya, memberi nama dan ruangan pada barang itu, lalu mencarinya lagi berdasarkan nama, ruangan, catatan, atau catatan suara yang ditranskripsikan. Aplikasi ini juga menawarkan pengingat untuk barang musiman, widget, penggunaan offline, dan sinkronisasi antara iPhone dan iPad. Ia diluncurkan di App Store pada 23 September 2026.
Apakah Stash mengumpulkan dataku?
Stash tidak punya iklan, tidak melakukan pelacakan analytics, dan tidak menjual data. Dalam mode tamu, tanpa akun, ruangan, barang, foto, dan catatan suaramu tetap di perangkatmu. Kalau kamu membuat akun, semuanya disinkronkan lewat Google Firebase agar tersedia di iPhone dan iPad-mu, terisolasi dari pengguna lain, dan kamu bisa menghapus akun serta datamu dari Pengaturan atau lewat formulir web.
Kesimpulan
Membangun aplikasi dari nol pada 2026 bukan lagi soal apakah kamu bisa menulis kodenya. Agen seperti OpenCode v2, yang menjalankan model seperti MiniMax M3.1, akan menulis lebih banyak kode dalam satu sore daripada yang kamu baca dalam seminggu. Pekerjaan sebenarnya sudah berpindah ke tepi-tepinya: memutuskan apa aplikasinya, merancangnya cukup cermat agar agen tidak salah baca, mengujinya seperti orang yang skeptis, dan mengerjakan urusan administratif yang tidak menarik yang mengubah folder proyek menjadi sesuatu yang bisa diunduh orang lain.
Stack dalam panduan ini adalah yang saya rekomendasikan hari ini. Figma untuk keputusan yang bisa kamu lihat. OpenCode v2 karena terbuka, bisa diskrip, cermat soal izin, dan tidak terikat pada satu model saja. MiniMax M3.1 karena konteks sejuta token dan masukan video sangat cocok untuk membangun aplikasi, asalkan kamu memperlakukan pratinjau sebagai pratinjau. Dan “barang-barangnya” (Firebase, TestFlight, label privasi, halaman landing, halaman legal) karena itulah yang benar-benar ditemui pengguna.
Stash adalah gambaran hasilnya saat benar-benar dirilis: satu janji kecil, ditepati dengan baik. Unduh Stash di App Store, atau coba demo di browser dulu. Lalu pergi dan bangun punyamu.
Sedang membangun aplikasi pertamamu dengan AI? Saya ingin mendengar framework mana yang kamu pilih, apakah kamu berhasil menyambungkan server MCP Figma ke agenmu, dan bagaimana MiniMax M3.1 memperlakukanmu. Koreksi dan bukti yang berlawanan diterima; artikel ini diperbarui saat keadaannya berubah.
Pengungkapan: Stash adalah aplikasi saya sendiri, diterbitkan oleh perusahaan saya, Graham Miranda UG. Gratis, tanpa iklan, dan tanpa pembelian dalam aplikasi. Tidak ada tautan afiliasi di artikel ini, dan tidak ada perusahaan yang disebut yang mensponsori atau meninjaunya sebelum terbit.
Terakhir diperbarui: 5 Oktober 2026.



