Android için Tüketici SDK'sı, modüler bir mimari kullanarak Ridesharing uygulamaları oluşturmanıza olanak tanır. Uygulamanız için kullanmak istediğiniz API'nin parçalarını kullanabilir ve kendi API'lerinizle entegre edebilirsiniz. Farklı özelliklere yönelik Tüketici SDK'sı API'leri ayrı modüller içinde kapsüllenir.
Ridesharing uygulamanız Tüketici SDK'sının önceki sürümlerini kullanıyorsa bu modüler mimariyi kullanmak için uygulamanızı yükseltmeniz gerekir. Bu taşıma rehberinde, uygulamanızı nasıl yeni sürüme geçireceğiniz açıklanmaktadır.
Genel bakış
Tüketici SDK'sı modüler mimarisi, kullanıcı arayüzü durumunu barındıran bir Oturum nesnesi sunar. Tüketici SDK'sının önceki sürümlerinde uygulamalar eyaletler arasında gidip geliyordu. Bu modüler mimariyle bir Oturum nesnesi oluşturur ve oturumu harita üzerinde görüntüleme seçeneğine sahip olursunuz. Hiçbir oturum gösterilmiyorsa harita boş olur. Artık "boş" veya "başlatılmış" durumu yoktur.
Oturum nesnesi, bir modülün tek bir yaşam döngüsü kullanım örneğini temsil eder. Oturumlar, modül API'lerine erişim noktalarıdır. Örneğin, bir Yolculuk Paylaşımı oturumu tek bir geziyi izler. Geziyi izlemek için Oturum nesnesiyle etkileşimde bulunursunuz.
Bir Oturum nesnesi, bir modül türüyle ilişkilendirilir. Oturum nesnesinin davranışı, nesneyi başlatmak için kullanılan nesnenin yaşam döngüsüyle bağlantılıdır.
TRIP_A'yı izlemek için bir TripModel
nesnesi oluşturduğunuzu varsayalım.
TRIP_A için tekrar bir TripModel
nesnesi edinmeye çalışırsanız aynı TripModel
nesnesini alırsınız. TRIP_B izlemek için yeni bir
TripModel
nesnesi edinin.
Oturum durumları
Bir oturum, birkaç durumdan birinde olabilir:
Oluşturulan oturum, Oturum nesnesiyle temsil edilir.
create
yöntemini çağırarak oturum oluşturursunuz. Örneğin:JourneySharingSession sessionA = JourneySharingSession.createInstance(TripModelA)
Kullanıcı arayüzü öğelerinin verileri ve değerlerinde yapılan güncellemeler için started oturumu kaydedilir.
start
yöntemini çağırarak bir oturum başlatırsınız. Örneğin:sessionA.start()
Gösterilen oturum otomatik olarak başlatılır. Kullanıcı arayüzü öğelerini görüntüler ve veri güncellemelerine göre bunları günceller.
showSession
yöntemini çağırarak bir oturum gösterirsiniz. Örneğin:ConsumerController.showSession(sessionA)
Durdurulan oturum, verilerini yenilemeyi ve kullanıcı arayüzü öğelerini güncellemeyi durdurur.
stop
yöntemini çağırarak bir oturumu durdurursunuz. Örneğin:sessionA.stop()
Yalnızca veri ve kullanıcı arayüzü bileşenlerini kullanma
Yalnızca veri içeren bileşenleri veya İsteğe Bağlı Yolculuk ve Teslimat Çözümleri tarafından sağlanan kullanıcı arayüzü öğesi API'lerini kullanarak araç paylaşma uygulaması oluşturabilirsiniz.
Yalnızca veri bileşenlerini kullanma
Yalnızca veri bileşenleri kullanarak araç paylaşma uygulaması oluşturmak için:
- Bir
ConsumerApi
nesnesini başlatın. ConsumerApi
öğesindenTripModelManager
nesnesini edinin.TripModel
nesnesi almak içinTripModelManager
ile bir geziyi izlemeye başlayın.- Geri çağırmaları
TripModel
nesnesine kaydedin.
Aşağıdaki örnekte yalnızca veri bileşenlerinin nasıl kullanılacağı gösterilmektedir:
TripModelManager tripManager = ConsumerApi.getTripModelManager();
TripModel tripA = tripManager.getTripModel("trip_A");
tripA.registerTripCallback(new TripModelCallback() {})
Kullanıcı arayüzü öğesi API'lerini kullanma
İsteğe Bağlı Yolculuklar ve Teslimatlar Çözümü kullanıcı arayüzü öğesi API'lerine erişmek için ConsumerController
nesnesini kullanın.
İsteğe Bağlı Yolculuklar ve Teslimatlar Çözümü kullanıcı arayüzü öğesi API'leriyle araç paylaşma uygulaması oluşturmak için:
ConsumerApi
nesnesini başlatın.ConsumerApi
nesnesinden birTripModelManager
nesnesi edinin.TripModelManager
öğesinden bir seyahati izleyen birTripModel
nesnesi edinin.ConsumerMap[View/Fragment]
öğesini uygulama görünümüne ekleyin.ConsumerMap[View/Fragment]
öğesinden birConsumerController
nesnesi edinin.JourneySharingSession
nesnesi almak için Denetleyici'yeTripModel
nesnesini sağlayın.JourneySharingSession
göstermek için kumandayı kullanın.
Aşağıdaki örnekte, kullanıcı arayüzü API'lerinin nasıl kullanılacağı gösterilmektedir:
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();
Modüler mimari kod değişiklikleri
Ridesharing uygulamanız Tüketici SDK'sının önceki sürümlerini kullanıyorsa güncellenmiş modüler mimari için kodunuzda bazı değişiklikler yapmanız gerekecektir. Bu bölümde söz konusu değişikliklerden bazıları açıklanmaktadır.
Konum izinleri
Tüketici SDK'sı artık FINE_LOCATION
izinlerini gerektirmiyor.
Gezi izleme
Güncellenen modüler mimari, hem veri katmanı hem de kullanıcı arayüzü kullanıcıları için kod değişikliği gerektirir.
Önceki sürümlerde, veri katmanı kullanıcısı aşağıdaki kodu kullanarak gezi izlemeyi halledebilirdi:
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
manager.setActiveTrip("trip_id")
manager.registerActiveTripCallback(new TripModelCallback() {})
Bir veri katmanı kullanıcısı modüler mimariden şu kodu kullanır:
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
TripModel tripA = TripModelManager.getTrip("trip_A")
tripA.registerTripCallback(new TripModelCallback() {})
Önceki sürümlerde, kullanıcı arayüzü kullanıcısı aşağıdaki kodu kullanarak gezi izlemeyi gerçekleştirebiliyordu:
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
manager.setActiveTrip("trip_id")
ConsumerController controller = consumerGoogleMap.getConsumerController();
consumerController.startJourneySharing()
Modüler mimariyi kullanan bir kullanıcı arayüzü kullanıcısı aşağıdaki kodu kullanır:
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
TripModel tripA = TripModelManager.getTripModel("trip_A");
ConsumerController controller = consumerGoogleMap.getConsumerController();
JourneySharingSession jsSessionA = JourneySharingSession.createInstance(tripA);
controller.showSession(jsSessionA);
Harita yeniden ortalama
Etkin oturum olmadığında harita görünümü veya parçası artık başlatma sırasında kullanıcının konumuna yakınlaştırma yapmaz. Otomatik Kamera özelliği etkin olduğu sürece, otomatik olarak yakınlaştırma yaparak aktif Yolculuk Paylaşımı oturumunu gösterir. Otomatik Kamera varsayılan olarak etkindir.
Önceki sürümlerde, geçerli etkin oturumda kamerayı ortalamak için aşağıdaki kodu kullanırdınız:
consumerController.centerMapForState()
Modüler mimariyi kullanırken şu kodu kullanırsınız:
CameraUpdate cameraUpdate = consumerController.getCameraUpdate()
if (cameraUpdate != null) {
googleMap.animateCamera(cameraUpdate);
// OR googleMap.moveCamera(cameraUpdate);
}
Önceki sürümlerde Otomatik Kamera özelliğini devre dışı bırakmak için aşağıdaki kodu kullanmanız gerekir:
consumerController.disableAutoCamera(true);
Modüler mimariyi kullanırken şu kodu kullanırsınız:
consumerController.setAutoCameraEnabled(false);
Özelleştirme
İsteğe Bağlı Yolculuklar ve Teslimatlar Çözümü'ndeki özel FAB haritadan kaldırıldı.
FAB ile ilişkili yöntemler de kaldırılmıştır:
ConsumerController.isMyLocationFabEnabled()
ConsumerController.setMyLocationFabEnabled()