
Langkah Mudah Bikin Aplikasi iOS dengan SwiftUI

Hai DomaiNesians! Pernah kepikiran bikin aplikasi iOS sendiri, tapi bingung harus mulai dari mana? Atau malah langsung mundur gara-gara bayangin kodenya ribet dan penuh aturan?
Nah, kabar baiknya, sekarang ada cara yang jauh lebih sederhana: SwiftUI. Framework ini dirancang Apple biar kamu bisa membangun tampilan aplikasi dengan cepat, gampang, dan menyenangkan.
Dengan SwiftUI, kamu nggak perlu lagi nulis kode panjang lebar. Cukup pilih komponen, susun seperti blok, dan hasilnya bisa langsung kamu lihat. SwiftUI bisa jadi jawaban kalau coding iOS menurutmu menakutkan, framework ini bikin pengalaman ngoding terasa jauh lebih ramah dan seru.

Apa Itu SwiftUI dan Perannya dalam Ekosistem Apple?
Singkatnya, SwiftUI adalah framework modern buatan Apple yang dipakai buat membangun tampilan aplikasi di iOS, iPadOS, macOS, watchOS, sampai tvOS. Jadi, satu framework ini bisa dipakai lintas perangkat Apple.
Kalau dulu developer harus pakai UIKit atau AppKit yang lebih “ribet” dan verbose, SwiftUI hadir dengan pendekatan baru: deklaratif. Artinya, kamu cukup bilang “saya mau tombol biru dengan teks ini” dan SwiftUI yang urus sisanya. Tidak perlu lagi membuat instruksi panjang tahap demi tahap.
Peran SwiftUI di ekosistem Apple juga besar banget:
- Unified Development → satu kode SwiftUI bisa dipakai lintas perangkat Apple tanpa perlu banyak penyesuaian.
- Real-time Preview → setiap perubahan kode bisa langsung kamu lihat di Xcode tanpa harus bolak-balik run aplikasi.
- Integrasi erat dengan Swift → bahasa resmi Apple, jadi kamu tidak akan belajar sesuatu yang “asing”.
Dari semua fitur ini, kelihatan jelas kalau Apple serius menjadikan SwiftUI sebagai masa depan pengembangan aplikasi di ekosistem mereka. UIKit masih ada, tapi kalau kamu mulai membuat aplikasi iOS dari nol, SwiftUI sudah jadi pilihan utama.
Mengenal Struktur Dasar SwiftUI
Saat kamu membuat project baru dengan SwiftUI, Xcode biasanya langsung menyiapkan ContentView.swift
sebagai file awal. Inilah titik mulai membangun tampilan aplikasi.
Dalam SwiftUI, semua tampilan disebut View. View bisa sesederhana teks “Hello, world!” atau serumit halaman aplikasi penuh berisi tombol, gambar, sampai form. Semua View itu sifatnya declarative, artinya kamu hanya perlu mendeskripsikan seperti apa tampilan yang diinginkan, bukan bagaimana membangunnya langkah demi langkah.
Contohnya, untuk menampilkan teks sederhana:
1 2 3 4 5 6 7 8 |
import SwiftUI struct ContentView: View { var body: some View { Text("Hello, world!") .padding() } } |
Beberapa hal penting yang bisa kamu kenali dari struktur di atas:
struct ContentView: View
→ mendefinisikan sebuah View bernamaContentView
.var body: some View
→ menjadi tempat di mana kamu mendefinisikan komponen yang tampil, entah itu teks, tombol, atau layout yang lebih kompleks.Text("Hello, world!")
→ komponen teks sederhana..padding()
→ contoh modifier untuk menambah jarak di sekeliling teks.
Menariknya, semua View bisa digabung atau ditumpuk untuk membuat layout yang lebih kompleks. Bayangin aja kayak menyusun Lego: mulai dari balok-balok kecil, lama-lama bisa jadi bangunan yang besar.
Dengan memahami struktur dasar ini, kamu sudah siap melangkah ke tahap berikutnya: membuat aplikasi iOS pertamamu dengan SwiftUI.
Langkah Praktis: Membangun Aplikasi iOS Pertama
Sekarang saatnya praktek! Kamu akan membangun aplikasi iOS sederhana dengan SwiftUI, langkah demi langkah, sambil menjelaskan setiap komponennya. Tujuannya, bukan hanya bisa jalanin kode, tapi kamu paham mengapa dan bagaimana SwiftUI bekerja.
1. Membuat Struktur Dasar dengan Teks dan Tombol
Buka ContentView.swift
, lalu tambahkan kode berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
struct ContentView: View { @State private var counter = 0 var body: some View { VStack(spacing: 20) { Text("Kamu menekan tombol \(counter) kali") .font(.title) Button("Tekan Aku!") { counter += 1 } .padding() .background(Color.blue) .foregroundColor(.white) .cornerRadius(10) } .padding() } } |
Penjelasan rinci:
@State
private var counter = 0 → variabelcounter
ini menyimpan jumlah klik tombol. Dengan @State, setiap perubahan variabel otomatis membuat SwiftUI merender ulang tampilan, jadi teks di layar langsung update.VStack(spacing: 20)
→ menumpuk elemen vertikal dengan jarak 20 poin antar elemen. SwiftUI punyaHStack
untuk horizontal danZStack
untuk menumpuk di atas.Text("Kamu menekan tombol \(counter) kali")
→ menampilkan teks dinamis. Dengan\(counter)
, nilai counter akan langsung muncul di layar.Button("Tekan Aku!") { counter += 1 }
→ tombol interaktif. Setiap ditekan, nilai counter bertambah.- Modifier styling:
.padding()
→ memberi ruang di sekitar tombol dan teks supaya tidak menempel ke tepi layar..background(Color.blue)
→ memberi warna latar biru pada tombol..foregroundColor(.white)
→ mengubah warna teks tombol menjadi putih..cornerRadius(10)
→ membuat sudut tombol membulat, lebih enak dilihat.
2. Preview Real-Time di Xcode
Salah satu keunggulan SwiftUI adalah preview langsung.
- Buka panel kanan di Xcode → klik Resume.
- Setiap kali kamu ubah kode, preview langsung update.
Ini sangat membantu untuk menghemat waktu iterasi, dibanding metode lama yang harus compile dan run berulang kali.
3. Eksperimen Kecil
Coba ubah:
- Teks → misal ganti “Selamat Datang!”
- Warna tombol →
.background(Color.red)
- Spacing di VStack →
spacing: 40
Lihat bagaimana SwiftUI langsung menampilkan perubahan. Kamu bisa bereksperimen tanpa takut merusak kode.
4. Integrasi dengan Backend (Opsional)
Kalau nanti aplikasimu butuh data dari server, misalnya API untuk menyimpan counter, Cloud VPS DomaiNesia bisa jadi pilihan. Server yang stabil memastikan aplikasi kamu bisa fetch data dan update tampilan SwiftUI tanpa delay.
Dengan pendekatan ini, bukan hanya kode jalan, tapi kamu memahami logika di balik setiap elemen. Aplikasi iOS pertamamu kini sudah interaktif dan siap dikembangkan lebih lanjut.
Membuat Tampilan Lebih Menarik dengan Layout SwiftUI
Setelah kamu paham struktur dasar dan bisa membuat teks serta tombol interaktif, saatnya membuat tampilan yang lebih rapi dan menarik. Di SwiftUI, layout dibuat menggunakan stack dan modifier.
1. Mengenal Stack: VStack, HStack, dan ZStack
- VStack → menumpuk elemen secara vertikal.
- HStack → menumpuk elemen secara horizontal.
- ZStack → menumpuk elemen secara layer/atas-bawah, cocok buat overlay.
2. Contoh Layout Sederhana
Sekarang buat contoh aplikasi “Counter” dengan layout lebih rapi:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
struct ContentView: View { @State private var counter = 0 var body: some View { ZStack { Color(.systemGray6) // background abu muda .ignoresSafeArea() VStack(spacing: 30) { Text("SwiftUI Counter App") .font(.largeTitle) .bold() HStack(spacing: 20) { Button("-") { counter -= 1 } .frame(width: 50, height: 50) .background(Color.red) .foregroundColor(.white) .cornerRadius(10) Text("\(counter)") .font(.title) .frame(width: 80) Button("+") { counter += 1 } .frame(width: 50, height: 50) .background(Color.green) .foregroundColor(.white) .cornerRadius(10) } } .padding() } } } |
Penjelasan:
ZStack
→ background abu-abu muda, elemen VStack di atasnya.VStack(spacing: 30)
→ teks judul dan HStack tombol-counter ditumpuk vertikal dengan jarak 30.HStack(spacing: 20)
→ dipakai untuk menyusun tombol minus, angka counter, dan tombol plus secara horizontal dengan jarak antar elemen yang rapi..frame(width:height:)
→ mengatur ukuran tombol agar proporsional.- Modifier styling (
.background
,.foregroundColor
,.cornerRadius
) → membuat tampilan modern dan user-friendly.

3. Preview dan Eksperimen
Coba ubah:
- Warna tombol →
.background(Color.purple)
- Jarak antar elemen →
spacing: 50
- Font teks →
.font(.system(size: 40, weight: .semibold))
Lihat langsung di Xcode Preview, SwiftUI akan menampilkan perubahan secara real-time. Ini membuat eksperimen desain jauh lebih cepat dan menyenangkan.
4. Integrasi dengan Server (Opsional)
Kalau aplikasi kamu membutuhkan penyimpanan data counter atau perlu mengambil data dari API, Cloud VPS DomaiNesia bisa jadi pilihan backend yang stabil dan responsif untuk mendukung performa aplikasi. Dengan server yang handal, aplikasi SwiftUI-mu bisa lancar tanpa lag.
Dengan pengaturan layout yang tepat, tampilan aplikasi kini lebih profesional dan interaktif, siap untuk fitur-fitur tambahan.
Setelah layout dasar siap, langkah berikutnya adalah menambahkan navigasi antar layar dan interaksi yang lebih kompleks. SwiftUI memudahkan ini dengan NavigationStack dan NavigationLink.
1. Membuat Layar Baru
Misalnya kamu ingin menambahkan layar detail yang menampilkan pesan selamat datang:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
struct DetailView: View { var body: some View { VStack { Text("Selamat datang di layar detail!") .font(.title) .padding() Image(systemName: "star.fill") .resizable() .frame(width: 100, height: 100) .foregroundColor(.yellow) } } } |
Penjelasan:
VStack
→ menumpuk teks dan gambar secara vertikal.Image(systemName: "star.fill")
→ ikon bawaan Apple (SF Symbols).- Modifier
.resizable()
,.frame()
, dan.foregroundColor()
→ mengatur ukuran dan warna ikon.
Supaya aplikasi punya navigasi yang rapi, bungkus layout utama di ContentView
dengan NavigationStack
dan gunakan NavigationLink
untuk mengarahkan ke halaman lain seperti DetailView
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
struct ContentView: View { @State private var counter = 0 var body: some View { NavigationStack { VStack(spacing: 30) { Text("SwiftUI Counter App") .font(.largeTitle) .bold() HStack(spacing: 20) { Button("-") { counter -= 1 } .frame(width: 50, height: 50) .background(Color.red) .foregroundColor(.white) .cornerRadius(10) Text("\(counter)") .font(.title) .frame(width: 80) Button("+") { counter += 1 } .frame(width: 50, height: 50) .background(Color.green) .foregroundColor(.white) .cornerRadius(10) } NavigationLink("Buka Layar Detail") { DetailView() } .padding() .background(Color.blue) .foregroundColor(.white) .cornerRadius(10) } .padding() } } } |
Yang baru:
NavigationStack
→ container untuk semua navigasi antar layar.- Kode
NavigationLink("Buka Layar Detail") { DetailView() }
→ berfungsi sebagai tombol navigasi: ketika pengguna menekannya, layar akan bergeser ke halamanDetailView
.
3. Preview dan Eksperimen
Di SwiftUI, Preview di Xcode sangat powerful:
- Klik tombol Resume di panel kanan Xcode untuk melihat tampilan aplikasi secara real-time.
- Setiap kali ada perubahan kode, misalnya ganti teks, ubah warna, atau menambah spacing, hasilnya langsung terlihat di layar tanpa perlu build ulang aplikasi.
- Kamu bisa mengubah ukuran preview untuk menyesuaikan layar iPhone, iPad, atau bahkan dark mode, sehingga melihat hasil desain di berbagai kondisi nyata.
- Preview ini juga mendukung interaksi: klik tombol, geser list, atau navigasi ke
NavigationLink
langsung bisa dicoba di panel preview.
Dengan preview, kamu bisa bereksperimen lebih cepat dan aman, memahami bagaimana UI merespons perubahan state atau interaksi user.
4. Integrasi dengan Backend
Kalau aplikasi butuh data dari server, misalnya menyimpan counter atau fetch konten dinamis:
- Buat model data dengan
ObservableObject
atau@Published
agar SwiftUI otomatis update tampilan ketika data berubah. - Untuk mengambil data dari API, kamu bisa memanfaatkan
URLSession
atau library populer sepertiAlamofire
. - Setiap data yang diterima bisa langsung diikat ke tampilan menggunakan binding SwiftUI, sehingga tampilan selalu sinkron dengan backend.
- Contohnya, jika server mengirim array item untuk ditampilkan di list, cukup bind array tersebut ke
List
view, SwiftUI akan otomatis menampilkan item-item baru tanpa kode tambahan.
Dengan cara ini, aplikasi SwiftUI-mu tidak hanya interaktif di sisi UI, tapi juga dinamis dengan data nyata dari backend.
Menjalankan & Testing Aplikasi di Simulator iOS
Sekarang saatnya memastikan aplikasi iOS pertamamu berjalan lancar di iPhone atau iPad virtual. SwiftUI semakin memudahkan proses testing berkat Simulator bawaan Xcode, yang mampu menampilkan aplikasi seperti saat dijalankan di perangkat asli.
Menjalankan Aplikasi
Untuk menjalankan aplikasi, pertama pilih target device di toolbar Xcode, misalnya iPhone 15. Kemudian klik tombol Run ▶️ atau tekan Cmd + R
. Saat simulator terbuka, aplikasi kamu akan berjalan dengan kondisi hampir sama seperti di iPhone atau iPad sungguhan.
Testing Interaktif
Setelah aplikasi muncul, lakukan testing interaktif. Coba lakukan berikut:
- Tekan tombol plus/minus dan navigasi ke layar detail, pastikan counter bertambah dan layout tetap rapi.
- Kamu juga bisa mengganti mode tampilan ke dark mode atau mengubah ukuran layar di simulator untuk mengecek apakah UI sudah responsif di berbagai kondisi.
- SwiftUI otomatis menyesuaikan tampilan saat device orientation berubah (portrait vs landscape).
Debugging
Jika ada bug atau layout error, Xcode akan menandai dengan garis merah atau peringatan. Kamu bisa lakukan berikut:
- Gunakan console log
(print())
untuk memantau nilai variabel seperti counter saat tombol ditekan. - Preview SwiftUI juga menampilkan perubahan state secara real-time, sehingga debugging lebih cepat dan intuitif.

Selamat Mencoba SwiftUI!
Sampai di sini, aplikasi iOS pertamamu dengan SwiftUI sudah jadi, ada navigasi, fitur interaktif, dan layout yang fleksibel di berbagai ukuran layar.
Sekarang, kamu bisa:
- Mengembangkan fitur lebih kompleks.
- Menambahkan animasi dan efek interaktif.
- Menghubungkan aplikasi dengan backend untuk data dinamis.
Jika ingin memperluas kemampuan aplikasi, misalnya menambahkan server-side API atau database pribadi, Cloud VPS DomaiNesia bisa jadi pilihan. Dengan VPS yang stabil dan powerful, backend aplikasi kamu bisa berjalan lancar, mendukung eksperimen SwiftUI tanpa hambatan.
Jadi, jangan tunggu lagi! Mulai bikin aplikasi iOS pertamamu sekarang dan rasakan kemudahan SwiftUI.