Android Tüketici SDK'sı Modülerleştirme İşlemi İçin Taşıma

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 öğesinden TripModelManager nesnesini edinin.
  • TripModel nesnesi almak için TripModelManager 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 bir TripModelManager nesnesi edinin.
  • TripModelManager öğesinden bir seyahati izleyen bir TripModel nesnesi edinin.
  • ConsumerMap[View/Fragment] öğesini uygulama görünümüne ekleyin.
  • ConsumerMap[View/Fragment] öğesinden bir ConsumerController nesnesi edinin.
  • JourneySharingSession nesnesi almak için Denetleyici'ye TripModel 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ı.

Özel FAB

FAB ile ilişkili yöntemler de kaldırılmıştır:

ConsumerController.isMyLocationFabEnabled()
ConsumerController.setMyLocationFabEnabled()