Cara Membangun Aplikasi Imersi Bahasa AR dengan Flutter dan Back4App
Dalam tutorial ini, Anda akan membangun aplikasi Imersi Bahasa Realitas Tertambah (AR) menggunakan Flutter dan Back4App. Aplikasi ini memanfaatkan teknologi AR untuk mengenali objek melalui kamera perangkat, menampilkan terjemahan, memberikan informasi budaya, dan melacak kemajuan pengguna. Pada akhir tutorial ini, Anda akan memiliki aplikasi fungsional yang membantu pengguna belajar bahasa baru dalam konteks dunia nyata.
Untuk menyelesaikan tutorial ini, Anda akan membutuhkan:
- Flutter terinstal di mesin lokal Anda. Jika Anda belum mengaturnya, ikuti panduan instalasi Flutter.
- Pemahaman dasar tentang API RESTful dan pemrograman asinkron di Dart.
Pertama, siapkan proyek Flutter baru di mana Anda akan mengembangkan aplikasi Imersi Bahasa AR.
Buka terminal Anda dan jalankan perintah berikut:
Perintah ini membuat proyek Flutter baru bernama ar_language_immersion_app.
Navigasikan ke direktori proyek dan buka di IDE pilihan Anda (misalnya, Visual Studio Code, Android Studio):
Siapkan backend Anda di Back4App untuk menangani data pengguna, terjemahan, informasi budaya, dan pelacakan kemajuan pengguna.
- Masuk ke akun Back4App Anda.
- Klik pada "Buat aplikasi baru".
- Masukkan "Aplikasi Imersi Bahasa AR" sebagai nama aplikasi.
- Klik "Buat".
Tentukan kelas sesuai dengan model data:
- Pengguna
- ObjekTerkenal
- Terjemahan
- InfoKultural
- KemajuanPengguna
2.2.1. Buat Kelas Pengguna
Kelas Pengguna adalah kelas default di Back4App untuk menangani otentikasi pengguna.
- Navigasikan ke Inti > Browser di dasbor Back4App Anda.
- Anda akan melihat kelas _Pengguna sudah tersedia.
2.2.2. Buat Kelas RecognizableObject
- Klik pada "Buat kelas".
- Pilih "Kustom" dan beri nama "RecognizableObject".
- Klik "Buat kelas".
Tambahkan kolom berikut:
- Nama (String)
- Kategori (String)
- ImageReference (File)
2.2.3. Buat Kelas Translation
- Buat kelas lain bernama "Translation".
- Tambahkan kolom berikut:
- objectId (String) [Default]
- ObjectID (Pointer to RecognizableObject)
- LanguageCode (String)
- TranslatedText (String)
- PronunciationGuide (String)
- AudioFileReference (File)
2.2.4. Buat Kelas CulturalInfo
- Buat kelas bernama "CulturalInfo".
- Tambahkan kolom berikut:
- ObjectID (Pointer ke RecognizableObject)
- LanguageCode (String)
- ShortDescription (String)
- DetailedInformation (String)
- RelatedMediaReferences (Array of Files)
2.2.5. Buat Kelas UserProgress
- Buat kelas bernama "UserProgress".
- Tambahkan kolom berikut:
- UserID (Penunjuk ke Pengguna)
- RecognizedObjects (Array dari ID Objek yang Dikenali)
- TranslationsViewed (Array dari ID Terjemahan)
- CulturalInfoAccessed (Array dari ID Informasi Budaya)
- LearningStreaks (Jumlah)
- ProficiencyScores (Kamus)
- Pergi ke Pengaturan Aplikasi > Keamanan & Kunci.
- Catat ID Aplikasi dan Kunci Klien; Anda akan membutuhkannya untuk menginisialisasi Parse di aplikasi Flutter Anda.
Integrasikan Parse SDK yang disediakan oleh Back4App ke dalam proyek Flutter Anda untuk berkomunikasi dengan backend.
Buka pubspec.yaml dan tambahkan dependensi berikut:
Jalankan perintah:
Catatan: Karena tidak ada plugin AR resmi yang disebut augmented_reality_plugin, Anda mungkin perlu menggunakan plugin seperti arcore_flutter_plugin untuk Android dan arkit_plugin untuk iOS. Sesuaikan sesuai dengan platform target Anda.
Di lib/main.dart, inisialisasi Parse saat aplikasi dimulai:
Ganti 'YOUR_APPLICATION_ID' dan 'YOUR_CLIENT_KEY' dengan kunci yang Anda peroleh dari Back4App.
Implementasikan fungsionalitas pendaftaran dan login pengguna.
Buat file baru lib/screens/auth_screen.dart.
Di lib/main.dart, perbarui MaterialApp Anda untuk menyertakan rute:
Siapkan fungsionalitas AR untuk mengenali objek menggunakan kamera perangkat.
Untuk Android dan iOS, Anda perlu meminta izin kamera.
Android
Di android/app/src/main/AndroidManifest.xml, tambahkan:
iOS
Di ios/Runner/Info.plist, tambahkan:
Catatan: Mengimplementasikan pengenalan objek AR secara penuh adalah kompleks dan mungkin memerlukan integrasi dengan model pembelajaran mesin seperti TensorFlow Lite atau menggunakan platform seperti ML Kit dari Google. Untuk tutorial ini, kami akan mensimulasikan pengenalan objek.
Untuk tujuan demonstrasi, kami akan mensimulasikan pengenalan objek dengan menampilkan objek yang telah ditentukan.
Perbarui ar_view_screen.dart:
Ambil terjemahan dari Back4App dan tampilkan sebagai overlay.
Di ar_view_screen.dart, tambahkan metode untuk mengambil terjemahan:
Modifikasi metode build :
Ambil dan tampilkan informasi budaya yang terkait dengan objek yang dikenali.
Tambahkan metode di ar_view_screen.dart:
Modifikasi metode build :
Perbarui kemajuan pengguna setiap kali mereka melihat terjemahan atau informasi budaya.
Tambahkan metode untuk memperbarui kemajuan:
Di setState di mana selectedObject diperbarui:
Pastikan aplikasi dapat berfungsi tanpa koneksi internet untuk fitur inti.
Gunakan basis data lokal seperti sqflite atau hive untuk menyimpan terjemahan dan informasi budaya.
Tambahkan hive ketergantungan di pubspec.yaml:
Inisialisasi Hive di main.dart:
Perbarui getTranslation metode:
Ulangi langkah serupa untuk getCulturalInfo.
Uji aplikasi secara menyeluruh dan siapkan untuk penyebaran.
Karena fungsionalitas AR memerlukan akses kamera, uji aplikasi pada perangkat nyata.
- Gunakan struktur data yang efisien.
- Minimalkan pengulangan yang tidak perlu di UI.
- Optimalkan aset gambar dan media.
- Perbarui ikon aplikasi dan layar splash.
- Konfigurasi izin aplikasi.
- Bangun versi rilis untuk Android dan iOS.
Rujuk ke dokumentasi resmi Flutter tentang membangun dan merilis untuk detail lebih lanjut.
Selamat! Anda telah membangun aplikasi Imersi Bahasa AR menggunakan Flutter dan Back4App. Aplikasi ini mengenali objek, menampilkan terjemahan dan informasi budaya, melacak kemajuan pengguna, dan berfungsi secara offline. Anda dapat meningkatkan aplikasi lebih lanjut dengan mengintegrasikan pengenalan objek AR yang nyata, menambahkan lebih banyak bahasa, dan meningkatkan UI/UX.
Untuk informasi lebih lanjut tentang fitur-fitur canggih, pertimbangkan untuk menjelajahi:
- Mengintegrasikan Model Pembelajaran Mesin: Gunakan TensorFlow Lite untuk pengenalan objek di perangkat.
- Meningkatkan Kemampuan AR: Manfaatkan plugin seperti arcore_flutter_plugin atau arkit_plugin untuk pengalaman AR yang lebih kaya.
- Mengimplementasikan Teks-ke-Ucapan: Tambahkan sintesis suara untuk panduan pengucapan menggunakan paket seperti flutter_tts.
- Meningkatkan Autentikasi Pengguna: Implementasikan login sosial atau autentikasi dua faktor.
Dengan membangun aplikasi ini, Anda telah mendapatkan pengalaman dalam pengembangan Flutter, integrasi backend dengan Back4App, dan fitur-fitur penting seperti caching data offline dan pelacakan kemajuan pengguna. Teruslah menjelajahi dan meningkatkan aplikasi Anda untuk menciptakan pengalaman belajar bahasa yang lebih menarik.