Membangun Aplikasi Obrolan Real-Time di Flutter dengan Back4App
Membuat aplikasi chat melibatkan pengelolaan data waktu nyata, otentikasi pengguna, penanganan media, dan penyimpanan data yang efisien. Dalam tutorial ini, Anda akan belajar bagaimana membangun aplikasi chat waktu nyata di Flutter yang mendukung percakapan satu lawan satu dan grup, status pesan, dan berbagi media. Kami akan menggunakan Back4App—sebagai backend-as-a-service yang didukung oleh Parse Server—untuk menangani fungsionalitas backend.
Pada akhir tutorial ini, Anda akan memiliki aplikasi chat yang sepenuhnya fungsional dengan fitur-fitur berikut:
- Otentikasi Pengguna: Proses pendaftaran dan login yang aman.
- Pesan Waktu Nyata: Pengiriman pesan instan menggunakan Live Queries.
- Kehadiran Pengguna: Melacak status online/offline pengguna.
- Penyimpanan Media: Mengirim dan menerima gambar dalam chat.
- Riwayat Pesan: Menyimpan riwayat chat untuk pengguna.
Untuk mengikuti tutorial ini, Anda akan membutuhkan:
- Pengetahuan dasar tentang Flutter dan Dart.
- Sebuah IDE atau editor teks seperti Visual Studio Code atau Android Studio.
- Parse Server SDK untuk Flutter ditambahkan ke proyek Anda.
Kami akan membangun aplikasi chat dengan komponen berikut:
- Autentikasi Pengguna: Pengguna dapat mendaftar dan masuk.
- Daftar Kontak: Menampilkan daftar pengguna untuk diajak chat.
- Layar Chat: Antarmuka pesan waktu nyata.
- Berbagi Media: Kemampuan untuk mengirim dan menerima gambar.
- Status Online: Menampilkan status online/offline pengguna.
Buka terminal Anda dan jalankan:
Navigasikan ke direktori proyek:
Buka pubspec.yaml dan tambahkan dependensi berikut:
Jalankan flutter pub get untuk menginstal paket.
- parse_server_sdk_flutter: Berinteraksi dengan Back4App.
- image_picker: Pilih gambar dari galeri atau kamera.
- cached_network_image: Memuat dan menyimpan gambar secara efisien.
- uuid: Menghasilkan pengenal unik.
- Klik pada "Buat aplikasi baru".
- Masukkan nama untuk aplikasi Anda, misalnya, "ChatApp", dan klik "Buat".
Kami akan membuat kelas-kelas berikut:
- Pengguna (Kelas Parse Default): Menyimpan informasi pengguna.
- Pesan: Menyimpan pesan obrolan.
- RuangObrolan: Mewakili obrolan antara pengguna.
- Bidang:
- username: String
- password: String
- email: String
- isOnline: Boolean
- avatar: File (Opsional)
Kelas User adalah bawaan; kita hanya perlu memastikan bahwa ia memiliki bidang tambahan.
- Bidang:
- pengirim: Pointer<_User>
- penerima: Pointer<_User>
- chatRoomId: String
- konten: String
- gambar: File (Opsional)
- createdAt: DateTime (Ditambahkan secara otomatis)
- Bidang:
- chatRoomId: String
- pengguna: Array of Pointer<_User>
- lastMessage: String
- updatedAt: DateTime (Secara otomatis diperbarui)
- Navigasi ke Pengaturan Aplikasi > Keamanan & Kunci.
- Catat ID Aplikasi dan Kunci Klien.
Buka lib/main.dart dan ubah seperti berikut:
- Ganti 'YOUR_APPLICATION_ID' dan 'YOUR_CLIENT_KEY' dengan kredensial Back4App Anda yang sebenarnya.
Buat direktori baru bernama services di bawah lib dan tambahkan file bernama auth_service.dart:
Buat direktori baru bernama screens di bawah lib dan tambahkan file bernama login_screen.dart dan signup_screen.dart.}]},{
Buat metode di AuthService untuk memperbarui status online pengguna:
Perbarui metode masuk dan keluar:
Buat user_service.dart di bawah services:
Tambahkan ketergantungan berikut di pubspec.yaml:
Ini memastikan Anda memiliki versi terbaru dengan dukungan Live Query.
- Ganti 'YOUR_APP' dengan subdomain aplikasi Back4App Anda.
- ParseLiveListWidget: Sebuah widget yang mendengarkan pembaruan kueri langsung dan membangun kembali saat data berubah.
- sendMessage(): Mengirim pesan teks atau gambar.
- pickImage(): Menggunakan image_picker untuk memilih gambar dan mengirimkannya sebagai pesan.
- setupLiveQuery(): Mengatur kueri langsung untuk mendengarkan pesan baru di ruang obrolan.
Di terminal Anda, jalankan:
- Buka aplikasi di dua perangkat atau emulator.
- Daftar atau masuk dengan akun pengguna yang berbeda.
- Dari satu akun, pilih pengguna lain dari daftar kontak.
- Kirim pesan dan gambar; mereka harus muncul secara real-time di kedua perangkat.
Selamat! Anda telah membangun aplikasi obrolan real-time di Flutter menggunakan Back4App. Aplikasi ini mendukung:
- Autentikasi Pengguna: Masuk dan daftar yang aman.
- Pesan Real-Time: Pembaruan instan menggunakan Live Queries.
- Kehadiran Pengguna: Pelacakan status online/offline.
- Berbagi Media: Mengirim dan menerima gambar.
- Riwayat Pesan: Menyimpan pesan obrolan.
- Obrolan Grup: Perluas aplikasi untuk mendukung percakapan grup.
- Status Pesan: Implementasikan tanda terima baca dan indikator mengetik.
- Notifikasi Push: Kirim notifikasi untuk pesan baru saat aplikasi berada di latar belakang.
- Foto Profil: Izinkan pengguna untuk mengunggah avatar.
- Peningkatan Keamanan: Amankan data dengan ACL dan izin berbasis peran.
Selamat Berkoding!