Yo, whats up gaes! Pernah nggak sih ngerasa pusing pas buka file ViewController yang isinya ribuan baris kode? Semuanya numpuk jadi satu: dari nembak API, manipulasi data, sampe ngurusin tampilan. Itu namanya Massive View Controller, ngab! Biar codingan lo makin rapi, scalable, dan nggak bikin sakit mata, kita bakal spill cara pake pola desain MVVM (Model-View-ViewModel). Skuy kita bahas!
Apa Itu MVVM?
Singkatnya, MVVM itu cara kita "memisahkan" tanggung jawab biar kode lo nggak spaghetti:
- Model: Isinya data doang (struct/class). Dia nggak peduli tampilan.
- View: Isinya UI (storyboard/SwiftUI). Cuma nampilin data.
- ViewModel: Ini otak di balik layar. Dia ngolah data dari Model biar siap dipake di View.
Langkah-Langkah Implementasi
1. Siapkan Model-nya
Model itu ibarat bahan baku. Simpel aja, pake struct.
struct User {
let name: String
let email: String
}
2. Bangun ViewModel (The Magic Part)
ViewModel bertugas ngerubah data mentah jadi string atau format yang siap tampil.
class UserViewModel {
private let user: User
init(user: User) {
self.user = user
}
// Properti buat UI
var displayName: String {
return user.name.uppercased()
}
var displayEmail: String {
return "Email: \(user.email)"
}
}
3. Hubungkan ke View
Di ViewController, lo tinggal panggil ViewModel-nya. View nggak perlu tau gimana cara dapet datanya.
class ProfileViewController: UIViewController {
let viewModel = UserViewModel(user: User(name: "Budi", email: "budi@skuy.com"))
@IBOutlet weak var nameLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// View cuma tinggal terima jadi
nameLabel.text = viewModel.displayName
}
}
Kenapa Harus Pake MVVM?
- Testability: Lo bisa ngetes logika di ViewModel tanpa harus ngerender UI (pake XCTest).
- Maintenance Asik: Kalau UI mau diganti, Model & ViewModel lo nggak bakal keganggu.
- Clean Code Vibes:
ViewControllerlo jadi ramping banget, nggak kayak kapal pecah.
Tips Pro dari Kita:
- Don't overcomplicate: Kalau aplikasinya cuma nampilin satu label doang, ya nggak usah pake MVVM yang ribet. Pake seperlunya aja.
- Binding: Buat aplikasi yang lebih kompleks, gunain
CombineatauObservableObjectbiar data update otomatis antara ViewModel dan View. - No UIKit in ViewModel: Inget, ViewModel dilarang keras import
UIKit. Kalau adaUIKitdi ViewModel, berarti lo gagal move on dari MVVM!
MVVM emang butuh waktu buat terbiasa, tapi percayalah, pas project lo udah makin gede, lo bakal berterima kasih sama diri sendiri karena udah rapi dari awal. Happy coding, gaes!
Berikan Rating
Komentar (0)
Silakan login untuk memberikan komentar.
Login SekarangKata Kunci
Belum ada komentar. Jadilah yang pertama!