More
Cara menggunakan Pengolahan Data di Flutter Menggunakan List.generate dengan Back4app
10 mnt
pendahuluan dalam flutter, cara paling sederhana untuk membuat daftar dinamis adalah dengan menggunakan list generate ini sangat membantu, terutama saat berurusan dengan data yang diambil melalui layanan backend seperti back4app apakah itu elemen ui dinamis, menangani beberapa entri data, atau optimasi permintaan jaringan, list generate setidaknya akan mempermudah kode anda dan meningkatkan kinerja dalam tutorial ini, kita akan melihat bagaimana menangani data backend secara efisien menggunakan list generate di flutter dalam contoh ini, anda akan melihat bagaimana cara membuat aplikasi flutter sederhana dengan back4app untuk mengambil dan menampilkan ulasan pengguna secara dinamis, memberi peringkat di dalam prosesnya anda akan belajar tentang pemrosesan data backend, optimasi permintaan jaringan, dan operasi batch dengan list generate prasyarat untuk menyelesaikan tutorial ini, anda akan membutuhkan akun back4app daftar untuk akun gratis di back4app com https //www back4app com lingkungan pengembangan flutter yang diatur di mesin lokal anda ikuti panduan instalasi flutter https //flutter dev/docs/get started/install jika anda belum mengaturnya pengetahuan dasar tentang dart, widget flutter, dan pemrograman asinkron langkah 1 – mengatur backend back4app anda buat proyek back4app masuk ke akun back4app anda https //dashboard back4app com/ dan buat proyek baru buat kelas parse di proyek back4app anda, buat kelas parse baru bernama review kelas ini akan menyimpan ulasan pengguna untuk berbagai item (misalnya, produk, film, dll ) tambahkan bidang berikut username (string) nama pengguna yang mengirimkan ulasan rating (number) penilaian yang diberikan oleh pengguna, biasanya nilai antara 1 dan 5 comment (string) teks ulasan atau komentar tambahkan data contoh isi kelas review dengan data contoh untuk digunakan dalam aplikasi flutter anda dapatkan kredensial back4app anda arahkan ke pengaturan proyek anda untuk mengambil id aplikasi dan kunci klien anda, yang anda perlukan untuk menghubungkan aplikasi flutter anda ke back4app langkah 2 – mengatur proyek flutter anda buat proyek flutter baru buka terminal atau command prompt anda dan jalankan tambahkan dependensi buka pubspec yaml dan tambahkan dependensi berikut inisialisasi parse di aplikasi anda di lib/main dart , impor sdk parse dan inisialisasi di main fungsi import 'package\ flutter/material dart'; import 'package\ parse server sdk flutter/parse server sdk flutter dart'; void main() async { widgetsflutterbinding ensureinitialized(); const keyapplicationid = 'your back4app app id'; const keyclientkey = 'your back4app client key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize(keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true); runapp(myapp()); } class myapp extends statelesswidget { @override widget build(buildcontext context) { return materialapp( home reviewscreen(), ); } } ganti 'your back4app app id' dan 'your back4app client key' dengan kredensial back4app anda yang sebenarnya langkah 3 – mengambil dan menampilkan data menggunakan list generate buat widget reviewscreen di lib/main dart , tambahkan widget baru yang akan mengambil ulasan dari back4app dan menampilkannya menggunakan list generate class reviewscreen extends statefulwidget { @override reviewscreenstate createstate() => reviewscreenstate(); } class reviewscreenstate extends state\<reviewscreen> { list\<parseobject>? reviews; @override void initstate() { super initstate(); fetchreviews(); } future\<void> fetchreviews() async { final query = querybuilder\<parseobject>(parseobject('review')); final response = await query query(); if (response success && response results != null) { setstate(() { reviews = response results as list\<parseobject>; }); } } @override widget build(buildcontext context) { return scaffold( appbar appbar(title text('user reviews')), body reviews == null ? center(child circularprogressindicator()) listview\ builder( itemcount reviews! length, itembuilder (context, index) { final review = reviews!\[index]; return reviewtile( username review\ get\<string>('username') ?? 'anonymous', rating review\ get\<int>('rating') ?? 0, comment review\ get\<string>('comment') ?? '', ); }, ), ); } } class reviewtile extends statelesswidget { final string username; final int rating; final string comment; reviewtile({required this username, required this rating, required this comment}); @override widget build(buildcontext context) { return card( margin edgeinsets symmetric(vertical 10, horizontal 15), child padding( padding const edgeinsets all(15 0), child column( crossaxisalignment crossaxisalignment start, children \[ text( username, style textstyle(fontweight fontweight bold), ), sizedbox(height 5), row( children list generate(5, (index) { return icon( index < rating ? icons star icons star border, color colors amber, ); }), ), sizedbox(height 10), text(comment), ], ), ), ); } } dalam contoh ini, reviewtile adalah widget kustom yang menampilkan ulasan pengguna penilaian bintang dihasilkan secara dinamis menggunakan list generate , membuat baris ikon bintang berdasarkan rating nilai yang diambil dari backend langkah 4 – mengoptimalkan pengambilan data dengan list generate dan future wait dalam kasus di mana anda perlu mengambil data dari beberapa endpoint backend secara bersamaan, anda dapat menggunakan list generate dalam kombinasi dengan future wait untuk mengoptimalkan proses mengambil beberapa rekaman terkait bayangkan anda memiliki kelas lain bernama product dan anda ingin mengambil ulasan terkait untuk beberapa produk sekaligus anda dapat menggunakan list generate untuk memulai permintaan ini secara bersamaan future\<void> fetchmultipleproductsreviews(list\<string> productids) async { list\<future\<list\<parseobject>>> requests = list generate(productids length, (index) { final query = querybuilder\<parseobject>(parseobject('review')) whereequalto('productid', productids\[index]); return query query() then((response) => response results as list\<parseobject>); }); list\<list\<parseobject>> allreviews = await future wait(requests); setstate(() { allproductreviews = allreviews; }); } pendekatan ini mengurangi waktu tunggu secara keseluruhan dengan mengambil data untuk semua produk secara bersamaan langkah 5 – melakukan operasi batch menggunakan list generate jika anda perlu melakukan pembaruan atau penghapusan batch pada beberapa rekaman yang diambil dari backend, list generate dapat menyederhanakan proses contoh pembaruan batch berikut adalah cara anda dapat memperbarui status beberapa rekaman sekaligus future\<void> updatemultiplereviews(list\<string> reviewids, string newstatus) async { list\<future\<parseobject>> updaterequests = list generate(reviewids length, (index) { parseobject review = parseobject('review') objectid = reviewids\[index]; review\ set('status', newstatus); return review\ save(); }); await future wait(updaterequests); print('all reviews updated'); } menggunakan list generate di sini memungkinkan anda untuk melakukan operasi secara efisien pada sejumlah besar catatan dalam satu operasi langkah 6 – menguji dan menjalankan aplikasi anda jalankan aplikasi anda menggunakan flutter run anda harus melihat daftar ulasan pengguna, dengan setiap ulasan menunjukkan peringkat bintang yang dihasilkan secara dinamis menggunakan list generate jika anda menerapkan operasi batch dan contoh multi fetch, uji skenario tersebut juga untuk memastikan semuanya berfungsi dengan baik kesimpulan dalam tutorial ini, anda belajar bagaimana menggunakan list generate di flutter untuk menangani dan menampilkan data yang diambil dari backend, seperti back4app dengan menggunakan list generate , anda dapat membuat elemen ui dinamis, mengoptimalkan pengambilan data, dan melakukan operasi batch dengan cara yang bersih dan mudah dipelihara pendekatan ini tidak hanya meningkatkan kinerja aplikasi anda tetapi juga menjaga basis kode anda terorganisir dan mudah dikelola untuk informasi lebih lanjut tentang menggunakan back4app dengan flutter, lihat dokumentasi back4app flutter https //www back4app com/docs/flutter/overview selamat coding!