Skip to content
··11 menit baca

Yang Tidak Ada yang Bilang: Pekerjaan Sebenarnya Dimulai Setelah AI Bilang 'Selesai'

Saya sedang membangun aplikasi iOS pertama tanpa mengenal Swift. Claude Code meng-scaffold semuanya dalam satu malam. Lalu saya membuka Simulator, dan pekerjaan sebenarnya dimulai.

Saya tidak pernah membuka Xcode seumur hidup.

Saya tidak tahu Swift. Saya tidak tahu SwiftUI. Saya tidak tahu apa yang dilakukan macro @Observable atau mengapa AVAudioSession butuh kategori. Dua hari lalu, kalau kamu tanya apa itu StoreKit, saya mungkin menebak itu aplikasi furnitur.

Dan tetap saja saya membangun aplikasi iOS native — dan menemukan bahwa kode yang dihasilkan AI membawa kamu sekitar 60% perjalanan. 40% terakhir, bagian di mana codebase menjadi produk, sepenuhnya pekerjaan manusia. Itulah yang tidak pernah disebutkan postingan "Saya membangun X dengan AI" mana pun.

Aplikasinya untuk DIALØGUE — generator podcast AI saya. Bukan web wrapper. Bukan React Native. Aplikasi SwiftUI asli dengan Apple Sign-In, pembelian dalam aplikasi, pemutar audio dengan kontrol lock screen, dan lokalisasi dalam 7 bahasa.

Mengapa sekarang?

Pada 3 Februari, Apple mengumumkan bahwa Xcode 26.3 akan mendukung agentic coding — dengan Claude Agent SDK dari Anthropic bawaan. Bukan sekadar autocomplete. Bukan sekadar saran turn-by-turn. Agen otonom penuh yang bisa menjelajahi struktur proyek, mencari dokumentasi Apple, menangkap Xcode Previews untuk melihat apa yang mereka bangun, dan iterasi melalui build dan perbaikan sendiri.

Claude Code sekarang bisa berkomunikasi dengan Xcode melalui MCP. Bisa melihat Simulator. Bisa membaca peringatan build dan pesan error. Bisa melihat tampilan UI yang sebenarnya dan memutuskan apakah perlu diubah.

Itu mengubah kalkulasi bagi saya. Saya sudah memikirkan aplikasi iOS native selama berbulan-bulan tapi terus menunda karena tidak tahu Swift. Dengan Claude Agent di Xcode, pertanyaannya bergeser dari "bisakah saya belajar Swift cukup cepat?" menjadi "bisakah saya mendeskripsikan apa yang saya inginkan dengan cukup jelas?"

Belum selesai. Saya masih dalam fase polish akhir, masih menemukan hal yang tidak berfungsi dengan benar, masih belajar Swift dengan membaca kode yang Claude tulis untuk saya. Tapi cerita sejauh ini — mirip seperti rebuild DIALØGUE 14 hari saya — telah memperkuat pelajaran yang sama yang tidak nyaman.


Apa yang Sebenarnya Claude Code Bangun dalam Satu Malam?

Ini tampilan git history saya:

FaseApa yang terjadiCommit
Design doc + rencana implementasiKeputusan arsitektur, 12 tugas2
Claude membangun "seluruh app"Scaffold → auth → library → detail → studio → StoreKit → aksesibilitas6
Manusia membuka SimulatorPerbaiki, tes, desain ulang, perbaiki, tes, desain ulang12+ (dan terus bertambah)

Fase pertama — Claude Code meng-scaffold seluruh app — benar-benar mengesankan. Dalam satu malam, saya bergerak dari proyek Xcode kosong ke app yang bisa dikompilasi dengan:

  • Apple Sign-In, Google OAuth, email/password auth, dan MFA
  • Wizard pembuatan podcast 5 langkah
  • Perpustakaan podcast dengan pencarian dan pull-to-refresh
  • Pemutaran audio dengan AVPlayer
  • Pembelian dalam aplikasi StoreKit 2 dengan verifikasi server-side
  • Studio (manajemen acara berulang)
  • Lokalisasi dalam 7 bahasa
  • Webview blog dan label aksesibilitas

69 file Swift. 7.568 baris kode. Saya menulis kurang lebih nol dari semuanya.

Ini bagian di mana setiap postingan blog AI berakhir. Screenshot kemenangan. Momen "lihat apa yang saya bangun." Hitungan commit dan hitungan baris dan timeline yang seharusnya tidak mungkin.

Tapi saya tidak punya app. Saya punya codebase yang bisa dikompilasi.


Apa yang Rusak Ketika Saya Benar-benar Menggunakan App-nya?

Saya mengetuk-ngetuk. Hal-hal termuat. Beberapa layar terlihat oke. Saya pikir, "Mungkin ini benar-benar akan berhasil."

Lalu saya mencoba membuat podcast.

Tombol "Done" Membuang Pekerjaan Kamu

Editor skrip memungkinkan kamu mengedit baris dialog individual sebelum membuat audio. Ada tombol "Done." Saya mengedit baris, ketuk Done, dan... edit saya hilang.

Tombol itu keluar dari mode edit sebelum menyimpan. Di kode terlihat benar — editMode = false — tapi urutannya salah. Simpan, lalu keluar.

Ini jenis bug yang membuat pengguna melempar ponon. Dan AI menulisnya karena logikanya secara teknis valid — hanya terbalik.

Data Nyata Meng-crash App

Saya menavigasi ke podcast yang telah dihasilkan oleh backend produksi. Crash. Field research_facts kembali sebagai array objek ({fact, source, reference, confidence}), tapi model Swift mengharapkan array string. Pola yang sama di mana-mana — enum status bersifat case-sensitive (completed vs COMPLETE), jadi setiap badge status menampilkan "Unknown."

Claude membangun apa yang tertulis di design doc. Database produksi tidak setuju. Ini jenis hal yang hanya kamu temukan dengan data nyata, bukan data tes.

WebSocket Realtime Begitu Saja... Tidak Terkoneksi

Di web, Supabase Realtime berfungsi bagus. Di iOS, koneksi WebSocket diam-diam gagal. Tidak ada error, tidak ada crash. Hanya... tidak ada update.

Perbaikannya adalah pendekatan sabuk-dan-suspender: pertahankan langganan Realtime tapi tambahkan polling fallback 5 detik yang berjalan terlepas apapun. Tidak elegan, tapi andal. Jaringan mobile tidak bisa diprediksi, dan pengguna tidak akan peduli bagaimana status terupdate — hanya bahwa itu terupdate.

Seluruh App Menggunakan Warna Sistem

Setiap layar biru dan abu-abu iOS default. Light mode. App web punya estetika dark-mode yang dirancang hati-hati — amber dan emas di arang, yang saya sebut "Studio Warmth." Claude dengan rajin membangun setiap layar, tapi dalam warna sistem.

Saya harus menyentuh semua 24 file view. Mengganti setiap Color.accentColor dengan Theme.brandPrimary. Memaksa .preferredColorScheme(.dark) di root.

Ini bukan bug. AI melakukan persis apa yang masuk akal. Tapi "masuk akal" dan "bagus" adalah hal yang berbeda.

Aplikasi iOS DIALØGUE halaman detail podcast dengan tema gelap Studio Warmth menampilkan header radial glow amber dan kontrol audio terintegrasi
Halaman detail podcast setelah penerapan Studio Warmth — glow amber, tema gelap, pemutaran terintegrasi. Tidak ada ini yang ada di scaffold asli Claude.

Review Outline Hanyalah Tombol Bertuliskan "Approve"

Alur pembuatan podcast punya tahap interaktif: AI menghasilkan outline, dan kamu meninjau sebelum melanjutkan. Di web, ini adalah antarmuka kartu yang bisa diperluas menampilkan deskripsi setiap segmen, poin pembahasan, dan sumber riset.

Di iOS, Claude membangun tombol bertuliskan "Approve." Itu saja. Tidak ada konten outline. Tidak ada cara melihat apa yang kamu setujui. Sama untuk review skrip — sebuah tombol, bukan editor.

Audio Tidak Diputar

Pemutar audio terlihat benar. Tombol play, progress bar, kontrol lock screen. Tapi mengetuk play tidak menghasilkan apa-apa. Rantai resolusi URL rusak — URL download yang ditandatangani gagal di environment dev, dan URL fallback menggunakan hostname Docker internal yang tidak bisa di-resolve Simulator.

Setelah saya memperbaiki audio dan mendesain ulang halaman detail podcast dengan kontrol play terintegrasi, bar mini player persisten di bawah setiap tab menjadi redundan. Saya menghapusnya. Menghapus kode yang berfungsi tapi seharusnya tidak ada — itu keputusan yang murni manusia.


Seperti Apa Kode Buatan AI vs Produk Nyata?

Kode buatan AI secara arsitektur baik tapi secara pengalaman kosong. Saya tidak mengeluh — apa yang Claude Code lakukan luar biasa. Bergerak dari "saya tidak tahu Swift" ke app yang bisa dikompilasi dengan auth, IAP, pemutaran audio, dan lokalisasi 7 bahasa dalam satu malam? Itu akan butuh berbulan-bulan bagi saya.

Tapi ada narasi di luar sana — di postingan blog, tweet, video demo — bahwa AI menulis app dan kamu hanya meninjau. Kirim. Selesai.

Bukan itu yang terjadi. Ini yang sebenarnya terjadi:

  1. Claude membangun scaffold yang secara arsitektur baik. Keputusan untuk langsung ke Supabase (tanpa layer API kustom) berarti app iOS berbicara ke backend yang sama seperti app web. Auth, database, realtime, storage — semuanya digunakan ulang. Saya hanya butuh satu komponen server-side baru (Edge Function verify-ios-purchase). Pilihan arsitektur itu brilian dan menghemat waktu luar biasa.

  2. Claude menangani bagian sulitnya dengan benar. Apple Sign-In dengan nonce kriptografis via CryptoKit. Alur pembelian StoreKit 2 dengan verifikasi server-side. Konfigurasi AVAudioSession untuk pemutaran latar belakang. Ini akan butuh berhari-hari bagi saya untuk mencari tahu dari dokumentasi saja.

  3. Claude menangani bagian produknya dengan salah. Bukan salah dalam artian buggy — salah dalam artian "ini tampilan codebase, bukan rasanya sebuah app."

Yang Claude bangunYang sebenarnya dibutuhkan
Tombol bertuliskan "Approve"Reviewer outline yang bisa diperluas dengan sumber riset
Warna sistem di setiap layar24 file token brand, dark mode dipaksakan
JSON decoder untuk schema terdokumentasiCustom decoder untuk apa yang sebenarnya dikembalikan database
Langganan Realtime (pola web)Realtime + polling fallback (pola mobile)
Wizard pembuatan yang berfungsiWizard pembuatan yang muat di layar ponsel
Wizard pembuatan iOS DIALØGUE menampilkan kustomisasi suara dengan slider kecepatan dan nada dalam tema gelap
Wizard pembuatan setelah intervensi manusia — kustomisasi suara dengan slider kecepatan/nada, bagian yang bisa dilipat, semuanya muat di layar ponsel.

Kolom kiri adalah kode yang benar. Kolom kanan adalah produk.


Apa yang Harus Kita Bilang ke Generasi Berikutnya tentang AI?

Saya menulis beberapa minggu lalu tentang punya anak remaja perempuan dan tidak tahu apa yang harus dibilang tentang masa depannya. Tentang bagaimana skill eksekusi sedang diotomatisasi dan standar untuk "saya bisa berpikir kritis" terus naik.

Membangun app iOS ini membuat hal itu lebih tajam — tapi bukan ke arah yang saya duga.

Skill implementasi — sintaks Swift, layout SwiftUI, API StoreKit — saya tidak membutuhkannya. Claude menangani semua itu. Jika "belajar coding" berarti "belajar sintaks dan API bahasa pemrograman," saran itu punya tanggal kedaluwarsa yang diukur dalam bulan, bukan tahun.

Tapi ini yang saya butuhkan: taste produk, penilaian desain, dan disiplin untuk membuka Simulator dan benar-benar menggunakan barangnya, bukan mempercayai code review.

Ini bukan sekadar "taste." Ini memerlukan pemikiran kritis — pemikiran kritis sungguhan, bukan versi buzzword. Jenis di mana kamu melihat sesuatu yang bisa dikompilasi, yang lulus tes, yang AI dengan percaya diri bilang sudah selesai, dan kamu bilang: "Tidak. Ini tidak benar. Saya tunjukkan mengapa."

Itulah bagian yang tidak bisa kita outsource. Belum, mungkin tidak pernah. AI luar biasa dalam menghasilkan solusi. Tapi buruk dalam mengetahui kapan solusi salah dengan cara yang tidak muncul di log. Dia tidak menggunakan produknya. Dia tidak memegang ponselnya. Dia tidak merasakan frustrasi tombol Done yang memakan pekerjaanmu. Seseorang harus mengarahkan. Seseorang harus tetap dalam loop. Seseorang harus memberikan gut check yang bilang "ini berfungsi tapi ini tidak bagus."

Mungkin itulah yang harus saya bilang ke putri saya. Bukan "belajar coding" — jendela itu menutup. Tapi juga bukan "belajar berpikir kritis" karena itu terlalu samar. Sesuatu yang lebih spesifik:

Belajarlah menjadi orang yang membuka Simulator.

Jadilah yang menguji barang nyata dengan data nyata dan menyadari apa yang salah sebelum pengguna. Bangun taste dengan menggunakan produk hebat dan produk buruk dan memahami bedanya. Kembangkan kepercayaan diri untuk mendorong balik sesuatu yang secara teknis benar tapi secara pengalaman rusak — bahkan ketika yang kamu dorong balik adalah AI yang terdengar sangat yakin.

Manusia dalam loop bukan formalitas. Dialah seluruh produknya.

Saya masih tidak yakin itu cukup. Tapi itu hal paling spesifik yang bisa saya katakan sejauh ini.


Bagaimana Keadaan App iOS Saat Ini?

App ini masih dalam pengembangan. Saya di fase polish — fase yang postingan blog AI pura-pura tidak ada. Menguji data produksi nyata terhadap setiap view. Menemukan edge case yang hanya muncul ketika kamu benar-benar menggunakan barangnya.

Git log saya dari dua hari terakhir punya lebih banyak commit fix: daripada commit feat:. Itu terasa benar. Fitur-fitur itu bagian mudahnya. Perbaikan-perbaikanlah produknya.

Ini keadaan saat ini:

Yang berfungsiYang tersisa
Auth (Apple, Google, email, MFA)Upload PDF (document picker + Supabase Storage)
Wizard pembuatan 5 langkah dengan kustomisasi penuhDownload MP3 offline
Detail podcast dengan review outline/skripPush notification (ditunda ke v1.1)
Pemutaran audio dengan kontrol lock screenDistribusi beta TestFlight
Pembelian dalam app StoreKit 2Pengajuan App Store
Studio (acara berulang)
Lokalisasi 7 bahasa
Sistem desain Studio Warmth

Saya akan menulis lanjutannya ketika app masuk App Store. Atau ketika ditolak. Mengetahui Apple, cerita penolakan mungkin lebih menarik.


Seberapa Cepat Pengembangan AI Sebenarnya Berakselerasi?

Izinkan saya memperbarui tabel yang terus menghantui saya:

ProyekKompleksitasWaktu Membangun
DIALØGUE v1MVP podcast generator~6 bulan
STRAŦUM10 agen AI, 11 framework, multi-tenant75 hari
Redesain situsOverhaul frontend WordPress3 hari
DIALØGUE v2Rebuild app web lengkap14 hari
Migrasi blogWordPress → Next.js, 490 postingan, Sydney RAG4 hari
DIALØGUE iOSApp iOS native, pertama kali menggunakan SwiftMasih berlangsung — tapi scaffold-nya selesai satu malam

Saya menambah kolom baru di kepala: "Waktu untuk Claude" vs "Waktu untuk saya." Rasionya terus bergeser. Bagian Claude makin pendek. Bagian saya kurang lebih tetap sama. (Saya melihat pola yang sama ketika membangun ulang backend blog dalam 4 hari — migrasinya cepat, tapi 8 hari penyempurnaan berlipat ganda setelahnyalah tempat situs benar-benar jadi.)

Dan tool-nya terus membaik. Ketika Apple dan Anthropic mengumumkan integrasi Xcode + Claude Agent SDK pada 3 Februari, itu bukan sekadar press release. Itu secara fundamental mengubah apa yang mungkin. Claude sekarang bisa melihat Simulator, membaca error build, menangkap Preview, dan iterasi secara visual — loop yang persis membuat pengembangan iOS sulit bagi manusia menjadi native bagi AI.

Dua minggu setelah pengumuman itu, saya mulai membangun app iOS tanpa mengenal Swift. Itu bukan kebetulan.

Orang berikutnya yang melakukan ini tidak perlu menulis postingan blog tentangnya. Itu akan menjadi... normal. Itulah tampilan akselerasi dari dalam — setiap milestone terasa kurang luar biasa dari yang terakhir, bahkan saat jarak objektif yang ditempuh terus bertambah.

Itulah hal yang tidak ada yang bilang. AI-nya makin cepat. Pekerjaan manusia tidak. Belum, setidaknya.


Pertanyaan yang Sering Diajukan

Bisakah kamu benar-benar membangun app iOS dengan AI jika tidak tahu Swift?

Ya — Claude Code meng-scaffold 69 file Swift dan 7.568 baris kode dalam satu malam, termasuk Apple Sign-In, pembelian dalam app StoreKit 2, pemutaran audio, dan lokalisasi 7 bahasa. Tapi "membangun" melakukan banyak pekerjaan berat di kalimat itu. AI menghasilkan codebase yang bisa dikompilasi; mengubahnya menjadi produk yang benar-benar kamu kirim memerlukan pengujian manusia ekstensif, penilaian desain, dan debugging data-nyata.

Apa yang diubah Xcode 26.3 dengan Claude Agent SDK?

Diumumkan pada 3 Februari 2026, integrasi Xcode + Claude Agent SDK memungkinkan agen AI menjelajahi struktur proyek, mencari dokumentasi Apple, menangkap Xcode Previews, melihat Simulator, membaca error build, dan iterasi secara otonom. Ini secara fundamental mengubah apa yang mungkin bagi developer yang tidak tahu Swift — pertanyaannya bergeser dari "bisakah saya belajar bahasanya?" menjadi "bisakah saya mendeskripsikan apa yang saya inginkan?"

Berapa persen app buatan AI yang sebenarnya butuh pekerjaan manusia?

Dari pengalaman saya, AI mengantarkan sekitar 60% — arsitektur, boilerplate, integrasi API yang sulit. 40% sisanya adalah pekerjaan produk: memperbaiki bug yang hanya muncul dengan data nyata, mendesain ulang UI yang berfungsi tapi tidak terasa benar, dan membuat keputusan tentang apa yang dipertahankan dan apa yang dihapus. 40% itulah tempat produk benar-benar hidup.

Skill apa yang paling penting saat membangun dengan agen coding AI?

Taste produk, penilaian desain, dan pemikiran kritis. Skill implementasi (sintaks, API, framework) semakin ditangani AI. Yang tidak bisa di-outsource adalah kemampuan menguji barang nyata dengan data nyata, menyadari apa yang salah, dan mendorong balik sesuatu yang secara teknis benar tapi secara pengalaman rusak.

Apakah app iOS DIALØGUE sudah tersedia di App Store?

Belum — masih dalam pengembangan, di fase polish akhir. Fitur-fiturnya berfungsi, tapi saya masih menguji terhadap data produksi dan menemukan edge case yang hanya muncul saat benar-benar menggunakan app-nya. Saya akan menulis lanjutan ketika masuk App Store (atau ditolak).


Masih membangun. Masih belum selesai. Masih mencari tahu apa yang harus dibilang ke putri saya.


Lanjutkan Membaca

Perjalanan Saya
Terhubung
Bahasa
Preferensi