Pakai Scope Model atau Provider juga bisa.. Yang penting view dengan logic dan datanya dipisah.. Supaya mudah maintenance dan developmentnya.. Hanya aja biasanya, MVVM itu pakai Stream dan Stream Builder.. Makanya, saya kasih contohnya pakai BLoC.. 😊 Anyway, thx utk inputnya.. Mgkn temen2 yg lain juga jadi bisa melakukan variasi utk MVVM ini.. 😊
wah mantap pak saya baca baca docs bloc dan mvvm masih belum paham saya kira bloc itu belum termasuk ke dalam viewmodel , terimakasih pak penjelasannya
Bisa2 aja sih selama view ama state & logic sistemnya terpisah.. Intinya dari MVVM itu adalah tadi.. Memisahkan si view nya.. Supaya ga nyampur.. Sehingga kalau ada aplikasi lain yg memakai Dart juga, tinggal ganti viewnya.. Ga usa buat ulang yg lain2nya.. Contoh: kalau nanti Flutter for web nya uda jadi..
saya coba code dan nemuin kalau api sekarang sudah json nya sudah berubah. untuk class User untuk method factory bisa dirubah : id: object["id"].toString(), email: object["email"], firstName: object["first_name"], lastName: object["last_name"], avatar: object["avatar"]);
Teradapat error di user.dart: The superclass 'User' doesn't have a zero argument constructor. Try declaring a zero argument constructor in 'User', or declaring a constructor in UninitializedUser that explicitly invokes a constructor in 'User'. ini kenapa ya?
jika ada 2 page, page pertama kondisinya seperti yg di video ini. page keduanya ingin mengambil data user yang ada di page 1. atau di blocnya. apakah bisa pak?
di menit 20:37 kok saya gak nongol dispatchnya ya pak? edited : sama 20:30 error " close instance of ' dart.core.sink". Tapi kalau saya hapus variable blocnya gak ada notif errornya. apa karena flutter_bloc nya udah update ya?
Untuk yg dispatch.. Kalau pakai versi terbaru, methodnya jadi add.. Bukan dispatch.. Untuk yg dart core sink.. Itu bukan error.. Tapi warning.. Gpp.. Itu ada bug di linting nya Dart.. Harusnya ga keluar warning itu..
// error The following ArgumentError was thrown building UserCard(dirty): Invalid argument(s) // line error The relevant error-causing widget was UserCard lib\Pages\Mvvm.dart:31 // sintaks BlocBuilder( builder: (context, user) => (user is UninitializedUser) ? Container( child: Text("Kosong Bro"), ) : UserCard(user)) error kayak gitu kenapa ya mas?
Sama aja dengan yg versi 7++.. Berarti ada yg salah cara pakainya.. BlocBuilder ga akan berubah kalau object yg di-emit itu sama dengan state sebelumnya.. Jadi, objectnya yg harus berbeda.. Objectnya ga.. Bukan isi dari objectnya.. Coba aja diulik2 lagi.. ruclips.net/video/PEDaKY2pnF4/видео.html
Jika ada yang error "// error The following ArgumentError was thrown building UserCard(dirty): Invalid argument(s) // line error The relevant error-causing widget was UserCard" silahkan ganti penulisan text jadi ${user.firstname} menit 16:03, punyaku begitu soalnya
Prinsipnya serupa.. Jadi tetep jangan dituker2 istilahnya.. Ntar malah bingung yg denger.. Mirip kayak begini nih.. Zat asam utk makanan.. Jeruk nipis bisa dipakai utk membuat asam.. Cuka juga bisa.. Nah.. Prinsipnya kan sama.. Tapi ga bisa juga lgsg diganti istilah zat asam makanan jadi cuka..
Lebih tepat kalau dikatakan begini.. Bloc menjalankan fungsi sebagai view model.. View model itu fungsinya.. Sebagai penghubung antara view dan model.. Bloc itu yg menjalankan fungsinya.. Krn kebetulan, Bloc bisa berperan/berfungsi/menjalankan fungsi View Model.
Kalau kita menggunakan method async, maka method tersebut akan dijalankan secara terpisah dari aplikasi kita.. Sehingga, untuk melanjutkan aktifitasnya, aplikasi kita tidak perlu menunggu method tersebut selesai dijalankan.. dart.dev/codelabs/async-await
bg, saya sudah mengikuti langkah tiap tutorial ini, tetapi saya mengalami masalah, muncul error, "invalid argument(s)" saya perhatikan kodingan abang dengan saya sama persis, apa ada settingan atau yang lainnya yang kurang atau bagaimana bg mohon pencerahannya trima kasih errornya seperti ini drive.google.com/file/d/163TCOI2XB7GkufZpPtDT6Eok44v0mI7m/view?usp=sharing
Itu sepertinya ada yg salah di parameter methodnya.. Kalau mau bandingin, bandinginnya ama video yg tentang Rest API nya.. Yg saya kasih Card referensi.. Mungkin salah di bagian itu.. Kalau codingan, tiap selesai buat video, saya ga simpen lagi.. Sengaja juga ga ditaruh di git, krn video saya memang dibuat agar yg nonton itu ga cuma ngikut codingan saya.. Tapi mengerti konsepnya.. Kalau ditaruh di git, akan banyak yg tergoda tinggal ambil codingannya tanpa mau belajar konsepnya.
Keren banget.. dijelasin dulu baru dipraktekin... mantap...!!!
Iya dooonk.. Biar ngerti.. Ga cuma sekedar ngetik apa yg saya ketik.. Ntar jadi juru ketik.. Bukan jadi programmer.. 😁😁
Saya rasa MVVM ini lebih gurih klo makek scoped model, provider ataupun mobx tapi penjelasannya dari video ini saya rasa cukup untuk memahami MVVM
Pakai Scope Model atau Provider juga bisa.. Yang penting view dengan logic dan datanya dipisah.. Supaya mudah maintenance dan developmentnya.. Hanya aja biasanya, MVVM itu pakai Stream dan Stream Builder.. Makanya, saya kasih contohnya pakai BLoC.. 😊 Anyway, thx utk inputnya.. Mgkn temen2 yg lain juga jadi bisa melakukan variasi utk MVVM ini.. 😊
@@ericodarmawan Oke mastah ku
Mantap, saya baru tau kalau itu namanya MVVM.
logat orang bandung nya terasa pak mantap heheh
Hahaha.. Ya mau gimana lagi atuh.. Gede dan idupnya di Bandung..
wah mantap pak saya baca baca docs bloc dan mvvm masih belum paham saya kira bloc itu belum termasuk ke dalam viewmodel , terimakasih pak penjelasannya
Iya.. Sama sama.. Semangat terus ya..
nyimak ikut belajar
saya sudah ngikutin tutorial ini dr awal gan. tapi error, ada beberapa class yg tdk terbaca. kl bs sekalian share dunk mas link source codenya.
Terima kasih Suhu..
kren, keep share gan.
Sangat membantu gan
Mantap bang
apakah untuk bloc yang jadi view model, bisa di ganti dengan provider,scopen model dll?
Bisa2 aja sih selama view ama state & logic sistemnya terpisah.. Intinya dari MVVM itu adalah tadi.. Memisahkan si view nya.. Supaya ga nyampur.. Sehingga kalau ada aplikasi lain yg memakai Dart juga, tinggal ganti viewnya.. Ga usa buat ulang yg lain2nya.. Contoh: kalau nanti Flutter for web nya uda jadi..
@@ericodarmawan terimakasih om penjelasnya
ijin bertanya yiew model itu funsinya sama kayak controller yah di mvc
jika pakai versi di dalam video gagal bisa pakai flutter_bloc: ^3.0.0
kemudian di main.dart nya, pada BlocProvider ubah dari builder: menjadi create:
saya coba code dan nemuin kalau api sekarang sudah json nya sudah berubah. untuk class User untuk method factory bisa dirubah :
id: object["id"].toString(),
email: object["email"],
firstName: object["first_name"],
lastName: object["last_name"],
avatar: object["avatar"]);
apanya yang beda ya mas?
Teradapat error di user.dart:
The superclass 'User' doesn't have a zero argument constructor.
Try declaring a zero argument constructor in 'User', or declaring a constructor in UninitializedUser that explicitly invokes a constructor in 'User'.
ini kenapa ya?
Pak Eriko kalo boleh request video yang TDD Clean Architecture,Terima kasih pak
Nanti ya kalau sudah ada waktunya.. Soalnya skrg saya lagi kesulitan waktu.. Haha..
Apakah sudah ada video nya pak ?
mau tanya pak, kenapa harus di klik dulu baru keluar UserCardnya? kalau saya lihat posisi UserCard sejajar sama RaisedButton
mas, tadi ada color previewnya menggunakan plugin apa ya ?
Pak, kalau errornya berupa "TypeError: Cannot read properties of null" itu di sebelah mana ya?
maaf bang erico mau nannya. kalo nampilin langsung tanpa button caranya bagaimana ya?
jika ada 2 page, page pertama kondisinya seperti yg di video ini. page keduanya ingin mengambil data user yang ada di page 1. atau di blocnya. apakah bisa pak?
Dengan state management, kita bisa ambil state tersebut dari mana aja dgn menggunakan bloc builder
@@ericodarmawan oke2 pak. Terima kasih
Apakah View Model itu nama lainnya dari Controller?
di menit 20:37 kok saya gak nongol dispatchnya ya pak?
edited : sama 20:30 error " close instance of ' dart.core.sink". Tapi kalau saya hapus variable blocnya gak ada notif errornya.
apa karena flutter_bloc nya udah update ya?
Untuk yg dispatch.. Kalau pakai versi terbaru, methodnya jadi add.. Bukan dispatch..
Untuk yg dart core sink.. Itu bukan error.. Tapi warning.. Gpp.. Itu ada bug di linting nya Dart.. Harusnya ga keluar warning itu..
@@ericodarmawan iya terima kasih pak...
// error
The following ArgumentError was thrown building UserCard(dirty):
Invalid argument(s)
// line error
The relevant error-causing widget was
UserCard
lib\Pages\Mvvm.dart:31
// sintaks
BlocBuilder(
builder: (context, user) => (user is UninitializedUser)
? Container(
child: Text("Kosong Bro"),
)
: UserCard(user))
error kayak gitu kenapa ya mas?
untuk flutter bloc versi 8 bagaimana ya coding nya,
gak ada eror tapi gak mau tampil usernya
Sama aja dengan yg versi 7++.. Berarti ada yg salah cara pakainya.. BlocBuilder ga akan berubah kalau object yg di-emit itu sama dengan state sebelumnya.. Jadi, objectnya yg harus berbeda.. Objectnya ga.. Bukan isi dari objectnya.. Coba aja diulik2 lagi..
ruclips.net/video/PEDaKY2pnF4/видео.html
Berarti kalo sudah pake bloc atau scoope model sejenisnya sudah termasuk MVVM ya pak?
lebih enak mvp atau mvvm sih gan? penjelasan nya
lebih mudah dipahami MVC ketimbang MVVM ~_~
Jika ada yang error "// error The following ArgumentError was thrown building UserCard(dirty): Invalid argument(s) // line error The relevant error-causing widget was UserCard" silahkan ganti penulisan text jadi ${user.firstname} menit 16:03, punyaku begitu soalnya
terimakasih kak, solved
di VScodenya pakai extension apa biar ada garisnya gitu di widgetnya, makasih
Ada settingan di Vistutnya koq.. Ntar ya.. Saya kasih videonya utk settingan dan plugin yg saya pakai..
Sudah saya kasih videonya ya di ME.TALK 02 :) Semoga jadi lebih betah ngodingnya..
@@ericodarmawan saya juga pengen tau extension nya. kalau boleh tau nama videonya apa ?
@@fahrurrozi9709 itu di komen sebelumnya sudah saya jawab.. Ada di playlist ME.TALK.. Nomor 2.. Lihat di Channel saya..
Apa bedanya dengan MVC pada OOP?
www.guru99.com/mvc-vs-mvvm.html#:~:text=Key%20Differences%20between%20MVC%20and%20MVVM&text=In%20MVC%2C%20the%20controller%20is,and%20code%20is%20event%2Ddriven.
Saya sudah ikutin tapi eror di rendering user cardnya pak. ada github nga pak biar bisa cek source codenya salahnya dimana ?
Ngga ada github nya.. Coba dicek lagi pelan2..
udah bisa pak, saya yang salah tik di parsing json nya
Programming Logical.... Ini salah satu gunanya hehehe
MVVM sama MVP perbandingannya apa aja ya om? Plus Minusnya dimana? thanks.
Mungkin ini bisa sedikit memberikan pencerahan:
www.vogella.com/tutorials/AndroidArchitecture/article.html
Berarti view model = bloc ?? (apa bisa dibilang view model kata lainnya bloc?)
Prinsipnya serupa.. Jadi tetep jangan dituker2 istilahnya.. Ntar malah bingung yg denger.. Mirip kayak begini nih.. Zat asam utk makanan.. Jeruk nipis bisa dipakai utk membuat asam.. Cuka juga bisa.. Nah.. Prinsipnya kan sama.. Tapi ga bisa juga lgsg diganti istilah zat asam makanan jadi cuka..
Lebih tepat kalau dikatakan begini.. Bloc menjalankan fungsi sebagai view model.. View model itu fungsinya.. Sebagai penghubung antara view dan model.. Bloc itu yg menjalankan fungsinya.. Krn kebetulan, Bloc bisa berperan/berfungsi/menjalankan fungsi View Model.
Baik. Terima kasih kak penjelasannya 👍👍👍
sync sama async bedainnya dari apa bang ?
Kalau kita menggunakan method async, maka method tersebut akan dijalankan secara terpisah dari aplikasi kita.. Sehingga, untuk melanjutkan aktifitasnya, aplikasi kita tidak perlu menunggu method tersebut selesai dijalankan..
dart.dev/codelabs/async-await
@@ericodarmawan ok makasih bang
bg, saya sudah mengikuti langkah tiap tutorial ini, tetapi saya mengalami masalah, muncul error, "invalid argument(s)"
saya perhatikan kodingan abang dengan saya sama persis,
apa ada settingan atau yang lainnya yang kurang atau bagaimana bg
mohon pencerahannya
trima kasih
errornya seperti ini
drive.google.com/file/d/163TCOI2XB7GkufZpPtDT6Eok44v0mI7m/view?usp=sharing
apa ada sorce code ini disimpan dalam github bg, saya pengen lebih mastiin code saya sama persis dengan tutorial ini, tq
Itu sepertinya ada yg salah di parameter methodnya.. Kalau mau bandingin, bandinginnya ama video yg tentang Rest API nya.. Yg saya kasih Card referensi.. Mungkin salah di bagian itu..
Kalau codingan, tiap selesai buat video, saya ga simpen lagi.. Sengaja juga ga ditaruh di git, krn video saya memang dibuat agar yg nonton itu ga cuma ngikut codingan saya.. Tapi mengerti konsepnya.. Kalau ditaruh di git, akan banyak yg tergoda tinggal ambil codingannya tanpa mau belajar konsepnya.
@@ericodarmawan hmm gtu yaa bg, ntar saya coba cek lagi, terima kasih sebelumnya bg
@@ericodarmawan sudah berhasil bg, ternyata ada yang slah ketik d code saya, terima kasih banyak bg
@@rahmadiqbal3555 hehe.. Bener kan ada yg ga teliti.. :) tetep semangat yaaaa..! 💪🏻😁