제1장 APT의 생성 Retrofit+Rxjava 관리 클래스
발단
최근 이 단계에서 네트워크 요청은 Retrofit+Okhttp+Rxjava 방식으로 바뀌었습니다. 뒤에 ROR라고 약칭합니다. 이전보다 확장성과 유지보수성이 높아지고 네트워크 로드 속도도 이전보다 빨라졌습니다.(어, 난 못 짜. 사실 Rxjava 업그레이드 2 때 한 번 크게 고친 적이 있어)
이제 쓸데없는 말은 그만하고 본론으로 들어가 ROR를 사용하는 과정에서 코드를 결합시켰지만 중복된 코드가 있어서 어떻게 최적화해야 할지 모르겠다.예를 들면 다음과 같습니다.
private APIService apiService;
public APIService getApiService() {
return apiService==null ?
GearHttpServiceManager.getInstance().getRetrofit().create(APIService.class)
:apiService;
}
private TravelNotesAPI mTravelNotesAPI;
public TravelNotesAPI getTravelNotesAPI(){
return mTravelNotesAPI==null ?
GearHttpServiceManager.getInstance().getRetrofit().create(TravelNotesAPI.class)
: mTravelNotesAPI;
}
private BreadtripAPI mBreadtripAPI;
public BreadtripAPI getBreadtripAPI(){
return mBreadtripAPI==null ?
GearHttpServiceManager.getInstance().getRetrofit().create(BreadtripAPI.class)
: mBreadtripAPI;
}
APIServiceManager.getInstance()
.getTravelNotesAPI()
.getTravelNotesList(key, page + "")
.compose(obj.bindToLifecycle())
.compose(RxSchedulersHelper.io_main())
.compose(SchedulersHelper.handleResult())
.doOnTerminate(() -> view.disDialog())
.subscribe(d -> obj.dataBinding(d),
e -> obj.dataError(e));
APIServiceManager.getInstance()
.getBreadtripAPI()
.getTravelNotesList(key,String.valueOf(page) ,count+"","trip")
.compose(obj.bindToLifecycle())
.compose(RxSchedulersHelper.io_main())
.compose(SchedulersHelper.handleResultBread())
.doOnTerminate(() -> view.disDialog())
.subscribe(d -> obj.dataBinding(d),
e -> obj.dataError(e));
이를 통해 알 수 있듯이 안의 문법은 모두 비슷하다. 단지 필요한 매개 변수가 다를 뿐이다. 매번 새로운api가 있을 때마다api의 데이터 로드 실현 방법을 써야 한다. 매우 게으른 사람으로서 이런 것들을 손으로 쓰고 싶지 않다. 그러면 어떤 방법이 있을까?
선배들은 이미 우리에게 이 플러그인을 준비해 주었다. 바로 apt이다. 컴파일할 때 자바 클래스를 방문하고 생성함으로써 우리는 더욱 편리하게 프로그래밍을 할 수 있다.
물론 apt 같은 것도 저는 접촉한 적이 없습니다. 여기는 apt를 배워서 최종적으로 제가 원하는 결과를 생성하는 과정을 여러분과 공유하겠습니다.
여러 날 동안 연구를 했기 때문에 장과 절의 방식을 사용하면 장과 절의 연결은 각 장의 마지막에 통일적으로 놓인다.
github:hackerlc
장별 목록
제1장 APT의 생성Retrofit+Rxjava 관리 클래스 제2장 APT의HelloWorldClass 제3장 APT의 생성 인터페이스 관리 클래스
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.