Android 소비자 SDK 모듈화 마이그레이션

Android용 소비자 SDK를 사용하면 빌드하는 방법을 알아보겠습니다 API에서 원하는 부분을 자체 API와 통합할 수 있습니다. 소비자 SDK 다양한 기능을 위한 API는 별도의 모듈에 캡슐화됩니다.

차량 공유 앱에서 이전 버전의 소비자 SDK를 사용하는 경우 이 모듈식 아키텍처를 사용하려면 앱을 업그레이드해야 합니다. 이 이전 가이드에는 앱 업그레이드 방법이 설명되어 있습니다.

개요

소비자 SDK 모듈식 아키텍처는 사용자 인터페이스 상태를 보유하는 세션 객체입니다. 이전 버전의 경우 앱이 상태 간에 이동했다는 것을 알 수 있습니다. 다음으로 바꿉니다. 이 모듈식 아키텍처에서는 세션 객체를 지도에 세션을 표시하는 옵션을 사용할 수 있습니다. 세션이 없는 경우 빈 지도가 표시됩니다. 더 이상 'empty'가 없습니다. 또는 '초기화됨' 있습니다.

세션 객체는 모듈의 단일 수명 주기 사용 인스턴스를 나타냅니다. 세션은 모듈 API에 대한 액세스 포인트입니다. 예를 들어 한 번의 이동 후에 여정 공유 세션을 만들 수 있습니다. 상호작용 세션 객체를 사용하여 이동을 모니터링합니다.

세션 객체는 모듈 유형과 연결됩니다. 세션 객체의 초기화에 사용된 객체의 수명 주기와 연결됩니다.

TRIP_A를 추적하기 위해 TripModel 객체를 만든다고 가정해 보겠습니다. TRIP_A에 대해 TripModel 객체를 다시 가져오려고 하면 동일한 TripModel 객체를 가져옵니다. TRIP_B을(를) 추적하려면 새 TripModel 객체.

세션 상태

세션은 다음과 같은 여러 상태 중 하나일 수 있습니다.

  • 생성된 세션은 세션 객체로 표시됩니다. 직접 만들기 create 메서드를 호출하여 세션을 종료해야 합니다. 예를 들면 다음과 같습니다.

    JourneySharingSession sessionA = JourneySharingSession.createInstance(TripModelA)
    
  • 시작된 세션은 데이터 및 값 업데이트를 위해 등록됩니다. 몇 가지 기능을 제공합니다. 다음 코드를 호출하여 세션을 시작합니다. start 메서드를 사용하여 지도 가장자리에 패딩을 추가할 수 있습니다. 예를 들면 다음과 같습니다.

    sessionA.start()
    
  • 표시된 세션은 자동으로 시작됩니다. 사용자 인터페이스 요소를 표시합니다. 데이터 업데이트에 대한 응답으로 업데이트합니다 세션을 표시하는 경우 showSession 메서드를 호출하면 됩니다. 예를 들면 다음과 같습니다.

    ConsumerController.showSession(sessionA)
    
  • 중지된 세션에서는 데이터 새로고침이 중지되고 사용자 인터페이스 요소입니다. stop 메서드를 호출하여 세션을 중지합니다. 예를 들면 다음과 같습니다.

    sessionA.stop()
    

데이터 전용 및 사용자 인터페이스 구성요소 사용

데이터 전용 구성요소 중 하나를 사용하여 차량 공유 앱을 만들 수 있습니다. 또는 사용자 인터페이스 요소 API에 의해 제공될 수 있습니다.

데이터 전용 구성요소 사용

데이터 전용 구성요소를 사용하여 차량 공유 앱을 만들려면 다음 단계를 따르세요.

  • ConsumerApi 객체를 초기화합니다.
  • ConsumerApi에서 TripModelManager 객체를 가져옵니다.
  • TripModelManager로 이동 모니터링을 시작하여 TripModel 객체를 수신합니다.
  • TripModel 객체에 콜백을 등록합니다.

다음 예는 데이터 전용 구성요소를 사용하는 방법을 보여줍니다.

TripModelManager tripManager = ConsumerApi.getTripModelManager();
TripModel tripA = tripManager.getTripModel("trip_A");
tripA.registerTripCallback(new TripModelCallback() {})

사용자 인터페이스 요소 API 사용

ConsumerController 객체를 사용하여 액세스 사용자 인터페이스 요소 API입니다.

주문형 차량 공유 및 배송 솔루션 사용자 인터페이스로 차량 공유 앱 만들기 요소 API:

  • ConsumerApi 객체를 초기화합니다.
  • ConsumerApi 객체에서 TripModelManager 객체를 가져옵니다.
  • TripModelManager에서 하나의 이동을 추적하는 TripModel 객체를 가져옵니다.
  • ConsumerMap[View/Fragment]를 애플리케이션 뷰에 추가합니다.
  • ConsumerMap[View/Fragment]에서 ConsumerController 객체를 가져옵니다.
  • TripModel 객체를 컨트롤러에 제공하여 JourneySharingSession 객체를 가져옵니다.
  • 컨트롤러를 사용하여 JourneySharingSession을 표시합니다.

다음 예는 사용자 인터페이스 API를 사용하는 방법을 보여줍니다.

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();

모듈식 아키텍처 코드 변경사항

차량 공유 앱에서 이전 버전의 소비자 SDK를 사용하는 경우 업데이트된 모듈식 아키텍처에서는 코드를 일부 변경해야 합니다. 이 섹션에서는 이러한 변경사항 중 일부를 설명합니다.

위치 정보 액세스 권한

FINE_LOCATION 권한이 더 이상 필요하지 않음 있습니다.

경로 모니터링

업데이트된 모듈식 아키텍처에는 두 가지 모두에 대한 코드 변경이 필요함 데이터 레이어 및 사용자 인터페이스 사용자로 구성됩니다.

이전 버전에서는 데이터 영역 사용자가 다음 코드를 사용하여 이동 모니터링을 실행합니다.

ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
manager.setActiveTrip("trip_id")
manager.registerActiveTripCallback(new TripModelCallback() {})

모듈식 아키텍처를 사용하면 데이터 레이어 사용자가 다음 코드를 참조하세요.

ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
TripModel tripA = TripModelManager.getTrip("trip_A")
tripA.registerTripCallback(new TripModelCallback() {})

이전 버전에서는 사용자 인터페이스 사용자가 이동 모니터링을 처리할 수 있었습니다. 다음 코드를 사용합니다.

ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
manager.setActiveTrip("trip_id")

ConsumerController controller = consumerGoogleMap.getConsumerController();
consumerController.startJourneySharing()

모듈식 아키텍처를 사용하면 사용자 인터페이스 사용자가 다음 코드를 참조하세요.

ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
TripModel tripA = TripModelManager.getTripModel("trip_A");

ConsumerController controller = consumerGoogleMap.getConsumerController();
JourneySharingSession jsSessionA = JourneySharingSession.createInstance(tripA);
controller.showSession(jsSessionA);

지도 중심 재설정

지도뷰 또는 프래그먼트가 더 이상 사용자의 위치로 확대/축소되지 않음 를 호출할 수 없습니다. 여전히 활성화된 여정 공유 세션이 오랫동안 표시되도록 자동으로 확대/축소합니다. 자동 카메라 기능이 사용 설정되어 있을 때 발생합니다. 자동 카메라는 기본적으로 사용 설정되어 있습니다.

이전 버전에서는 다음 코드를 사용하여 카메라를 중앙에 배치했습니다. 다음과 같습니다.

consumerController.centerMapForState()

모듈식 아키텍처를 사용하면 다음 코드를 사용할 수 있습니다.

CameraUpdate cameraUpdate = consumerController.getCameraUpdate()
if (cameraUpdate != null) {
   googleMap.animateCamera(cameraUpdate);
   // OR googleMap.moveCamera(cameraUpdate);
}

이전 버전에서 자동 카메라 기능을 사용 중지하려면 다음 코드를 사용합니다.

consumerController.disableAutoCamera(true);

모듈식 아키텍처를 사용하면 다음 코드를 사용할 수 있습니다.

consumerController.setAutoCameraEnabled(false);

맞춤설정

주문형 차량 공유 및 배송 솔루션 맞춤 FAB가 지도에서 삭제되었습니다.

맞춤 FAB

FAB의 연결된 메서드도 삭제되었습니다.

ConsumerController.isMyLocationFabEnabled()
ConsumerController.setMyLocationFabEnabled()