Flutter Templates

Membangun Aplikasi Obrolan Real-Time di Flutter dengan Back4App

35min

Pendahuluan

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.

Prasyarat

Untuk mengikuti tutorial ini, Anda akan membutuhkan:

  • Flutter SDK terinstal di mesin Anda. Ikuti panduan instalasi Flutter resmi.
  • Pengetahuan dasar tentang Flutter dan Dart.
  • Sebuah IDE atau editor teks seperti Visual Studio Code atau Android Studio.
  • Akun Back4App. Daftar untuk akun gratis di Back4App.
  • Parse Server SDK untuk Flutter ditambahkan ke proyek Anda.

Ikhtisar

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.

Langkah 1 – Menyiapkan Proyek Flutter

1.1. Buat Proyek Flutter Baru

Buka terminal Anda dan jalankan:

Bash


Navigasikan ke direktori proyek:

Bash


1.2. Tambahkan Dependensi

Buka pubspec.yaml dan tambahkan dependensi berikut:

YAML


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.


Langkah 2 – Menyiapkan Back4App

2.1. Buat Aplikasi Back4App Baru

  1. Masuk ke dasbor Back4App.
  2. Klik pada "Buat aplikasi baru".
  3. Masukkan nama untuk aplikasi Anda, misalnya, "ChatApp", dan klik "Buat".

2.2. Konfigurasi Kelas dan Model Data

Kami akan membuat kelas-kelas berikut:

  1. Pengguna (Kelas Parse Default): Menyimpan informasi pengguna.
  2. Pesan: Menyimpan pesan obrolan.
  3. RuangObrolan: Mewakili obrolan antara pengguna.

2.2.1. Kelas 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.

2.2.2. Kelas Pesan

  • Bidang:
    • pengirim: Pointer<_User>
    • penerima: Pointer<_User>
    • chatRoomId: String
    • konten: String
    • gambar: File (Opsional)
    • createdAt: DateTime (Ditambahkan secara otomatis)

2.2.3. Kelas ChatRoom

  • Bidang:
    • chatRoomId: String
    • pengguna: Array of Pointer<_User>
    • lastMessage: String
    • updatedAt: DateTime (Secara otomatis diperbarui)

2.3. Dapatkan Kredensial Aplikasi

  1. Navigasi ke Pengaturan Aplikasi > Keamanan & Kunci.
  2. Catat ID Aplikasi dan Kunci Klien.

Langkah 3 – Menginisialisasi Parse di Aplikasi Flutter Anda

Buka lib/main.dart dan ubah seperti berikut:

Dart

  • Ganti 'YOUR_APPLICATION_ID' dan 'YOUR_CLIENT_KEY' dengan kredensial Back4App Anda yang sebenarnya.

Langkah 4 – Mengimplementasikan Autentikasi Pengguna

4.1. Buat Layanan Autentikasi

Buat direktori baru bernama services di bawah lib dan tambahkan file bernama auth_service.dart:

Dart


4.2. Buat Layar Login dan Pendaftaran

Buat direktori baru bernama screens di bawah lib dan tambahkan file bernama login_screen.dart dan signup_screen.dart.}]},{

Dart


4.2.2. Layar Pendaftaran

Dart


Langkah 5 – Mengimplementasikan Kehadiran Pengguna

5.1. Perbarui Status Online Pengguna

Buat metode di AuthService untuk memperbarui status online pengguna:

Dart


5.2. Atur Status Online saat Masuk dan Keluar

Perbarui metode masuk dan keluar:

Dart


Langkah 6 – Menampilkan Daftar Kontak

6.1. Buat Layanan Pengguna

Buat user_service.dart di bawah services:

Dart


6.2. Buat Layar Utama

Dart


Langkah 7 – Mengimplementasikan Pesan Real-Time dengan Live Queries

7.1. Siapkan Klien Live Query

Tambahkan ketergantungan berikut di pubspec.yaml:

YAML


Ini memastikan Anda memiliki versi terbaru dengan dukungan Live Query.

7.2. Inisialisasi Live Query di main.dart

Dart

  • Ganti 'YOUR_APP' dengan subdomain aplikasi Back4App Anda.

7.3. Buat Layar Obrolan

Dart


Penjelasan

  • 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.

Langkah 8 – Menguji Aplikasi

8.1. Jalankan Aplikasi

Di terminal Anda, jalankan:

Bash


8.2. Uji Pesan

  • 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.

Kesimpulan

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.

Langkah Selanjutnya

  • 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.

Sumber Daya Tambahan

Selamat Berkoding!