Consumer SDK untuk Android memungkinkan Anda membuat aplikasi Transportasi Online menggunakan dalam arsitektur modular. Anda dapat menggunakan bagian API yang diinginkan untuk digunakan oleh aplikasi tertentu, dan mengintegrasikannya dengan API Anda sendiri. SDK Konsumen API untuk berbagai fitur dienkapsulasi ke dalam modul terpisah.
Jika aplikasi Transportasi Online Anda menggunakan Consumer SDK versi sebelumnya, Anda harus mengupgrade aplikasi Anda untuk menggunakan arsitektur modular ini. Ini panduan migrasi menjelaskan cara mengupgrade aplikasi Anda.
Ringkasan
Arsitektur modular Consumer SDK memperkenalkan objek Session yang menyimpan status antarmuka pengguna. Di versi sebelumnya Consumer SDK, yaitu aplikasi yang mengalir di antara status. Dengan pada arsitektur modular ini, Anda akan membuat objek Session dan memiliki opsi untuk menampilkan sesi di peta. Jika tidak ada sesi ditampilkan, peta tersebut kosong. Tidak ada lagi "kosong" atau "diinisialisasi" status.
Objek Session mewakili instance penggunaan siklus proses tunggal dari sebuah modul. Sesi adalah titik akses ke dalam API modul. Misalnya, sesi Berbagi Perjalanan mengikuti satu perjalanan. Anda berinteraksi dengan objek Session untuk memantau perjalanan.
Objek Session dikaitkan dengan jenis modul. Objek Session ditautkan ke siklus proses objek yang digunakan untuk menginisialisasinya.
Misalkan Anda membuat objek TripModel
untuk melacak TRIP_A.
Jika Anda mencoba mendapatkan objek TripModel
untuk TRIP_A lagi, Anda akan
dapatkan objek TripModel
yang sama. Untuk melacak TRIP_B, dapatkan
Objek TripModel
.
Status sesi
Sesi dapat berada dalam salah satu status berikut:
Sesi yang dibuat direpresentasikan oleh objek Sesi. Anda membuat sesi dengan memanggil metode
create
. Contoh:JourneySharingSession sessionA = JourneySharingSession.createInstance(TripModelA)
Sesi dimulai didaftarkan untuk pembaruan data dan nilai elemen antarmuka penggunanya. Anda memulai sesi dengan memanggil Metode
start
. Contoh:sessionA.start()
Sesi yang ditampilkan dimulai secara otomatis. Ini menampilkan elemen antarmuka pengguna dan memperbaruinya sebagai respons terhadap pembaruan data. Anda menampilkan sesi dengan memanggil metode
showSession
. Contoh:ConsumerController.showSession(sessionA)
Sesi yang dihentikan akan berhenti memuat ulang datanya dan berhenti mengupdatenya elemen antarmuka pengguna. Anda menghentikan sesi dengan memanggil metode
stop
. Contoh:sessionA.stop()
Menggunakan komponen antarmuka pengguna dan khusus data
Anda dapat membuat aplikasi transportasi online menggunakan komponen khusus data atau API elemen antarmuka pengguna yang disediakan oleh Solusi Perjalanan dan Pengiriman On-demand.
Menggunakan komponen khusus data
Untuk membuat aplikasi transportasi online menggunakan komponen khusus data:
- Lakukan inisialisasi objek
ConsumerApi
. - Dapatkan objek
TripModelManager
dariConsumerApi
. - Mulai pantau perjalanan dengan
TripModelManager
untuk menerima objekTripModel
. - Daftarkan callback pada objek
TripModel
.
Contoh berikut menunjukkan cara menggunakan komponen khusus data:
TripModelManager tripManager = ConsumerApi.getTripModelManager();
TripModel tripA = tripManager.getTripModel("trip_A");
tripA.registerTripCallback(new TripModelCallback() {})
Menggunakan API elemen antarmuka pengguna
Menggunakan objek ConsumerController
untuk mengakses
API elemen antarmuka pengguna Solusi Perjalanan dan Pengiriman On-demand.
Untuk membuat aplikasi transportasi online dengan antarmuka pengguna Solusi Perjalanan dan Pengiriman On-demand API elemen:
- Inisialisasi objek
ConsumerApi
. - Dapatkan objek
TripModelManager
dari objekConsumerApi
. - Dapatkan objek
TripModel
dariTripModelManager
yang melacak satu perjalanan. - Tambahkan
ConsumerMap[View/Fragment]
ke tampilan aplikasi. - Dapatkan objek
ConsumerController
dariConsumerMap[View/Fragment]
. - Berikan objek
TripModel
ke Pengontrol untuk mendapatkan objekJourneySharingSession
. - Gunakan Pengontrol untuk menampilkan
JourneySharingSession
.
Contoh berikut menunjukkan cara menggunakan API antarmuka pengguna:
TripModelManager tripManager = ConsumerApi.getTripModelManager();
TripModel tripA = TripModelManager.getTripModel("trip_A");
// Session is NOT automatically started when created.
JourneySharingSession jsSessionA = JourneySharingSession.createInstance(tripA);
JourneySharingSession jsSessionB = JourneySharingSession.createInstance(tripB);
// But a session is automatically started when shown.
ConsumerController.showSession(jsSessionA);
ConsumerController.showSession(jsSessionB); // hides trip A; shows trip B.
ConsumerController.hideAllSessions(); // don't show any sessions
// Unregister listeners and delete UI elements of jsSessionA.
consumerController.showSession(jsSessionA);
jsSessionA.stop();
// Recreates and shows UI elements of jsSessionA.
jsSessionA.start();
Perubahan kode arsitektur modular
Jika aplikasi Transportasi Online Anda menggunakan Consumer SDK versi sebelumnya, arsitektur modular yang diperbarui akan memerlukan beberapa perubahan pada kode Anda. Bagian ini menjelaskan beberapa perubahan tersebut.
Izin akses lokasi
Izin FINE_LOCATION
tidak lagi diperlukan
oleh Consumer SDK.
Pemantauan perjalanan
Arsitektur modular yang diperbarui memerlukan perubahan kode untuk pengguna lapisan data dan antarmuka pengguna.
Pada versi sebelumnya, pengguna lapisan data mungkin menangani pemantauan perjalanan menggunakan kode berikut:
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
manager.setActiveTrip("trip_id")
manager.registerActiveTripCallback(new TripModelCallback() {})
Dengan menggunakan arsitektur modular, pengguna lapisan data akan menggunakan kode berikut:
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
TripModel tripA = TripModelManager.getTrip("trip_A")
tripA.registerTripCallback(new TripModelCallback() {})
Pada versi sebelumnya, pengguna antarmuka pengguna mungkin menangani pemantauan perjalanan menggunakan kode berikut:
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
manager.setActiveTrip("trip_id")
ConsumerController controller = consumerGoogleMap.getConsumerController();
consumerController.startJourneySharing()
Dengan menggunakan arsitektur modular, pengguna antarmuka pengguna akan menggunakan kode berikut:
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
TripModel tripA = TripModelManager.getTripModel("trip_A");
ConsumerController controller = consumerGoogleMap.getConsumerController();
JourneySharingSession jsSessionA = JourneySharingSession.createInstance(tripA);
controller.showSession(jsSessionA);
Penekanan peta
Tampilan atau fragmen peta tidak lagi memperbesar ke lokasi pengguna saat inisialisasi ketika tidak ada sesi yang aktif. Ini akan tetap zoom otomatis untuk menampilkan sesi Berbagi Perjalanan yang aktif selama saat fitur Kamera Otomatis diaktifkan. Kamera Otomatis diaktifkan secara default.
Di versi sebelumnya, Anda akan menggunakan kode berikut untuk menempatkan kamera di tengah untuk sesi yang aktif saat ini:
consumerController.centerMapForState()
Dengan menggunakan arsitektur modular, Anda akan menggunakan kode berikut:
CameraUpdate cameraUpdate = consumerController.getCameraUpdate()
if (cameraUpdate != null) {
googleMap.animateCamera(cameraUpdate);
// OR googleMap.moveCamera(cameraUpdate);
}
Untuk menonaktifkan fitur Kamera Otomatis di versi sebelumnya, Anda akan menggunakan kode berikut:
consumerController.disableAutoCamera(true);
Dengan menggunakan arsitektur modular, Anda akan menggunakan kode berikut:
consumerController.setAutoCameraEnabled(false);
Penyesuaian
FAB kustom Solusi Perjalanan dan Pengiriman On-demand telah dihapus dari peta.
Metode terkait untuk FAB juga telah dihapus:
ConsumerController.isMyLocationFabEnabled()
ConsumerController.setMyLocationFabEnabled()