앱의 퍼포먼스가 좋다는 건 여러가지 측면이 고려될 수 있습니다. 메모리 사용이 효율적이거나 화면에 렌더링을 빠르게 하거나 배터리 사용이 최적화되거나 네트워크나 IO장치 접근이 최적화 되있거나 하는 여러가지를 고려해 볼 후 있습니다.
가장 쉽게 시도해 볼 수 있는 방법으로는 뷰를 사용할 경우 레이아웃을 효율적으로 디자인하는 겁니다. 예를 들면 불필요하게 레이아웃을 중첩하지 않고 flat한 구조를 유지한다던가 단순 가로 세로 배열에는 ConstraintLayout대신 LinearLayout을 사용한다든지 함으로써 렌더링을 조 더 효율적으로 할 수 있습니다. 그리고 액티비티 대신에 프래그먼트를 사용함으로서 화면 로딩을 경량화할 수 있습니다. 여기에 네비게이션 컴포넌트에서 지원하는 멀티스택을 이용해서 화면전환을 좀더 빠르게 할 수도 있습니다.
다른 부분으로는 캐시를 적절하게 사용하는 겁니다. 네트워크가 끊기거나 아니면 변경이 없는 데이터를 매번 네트워크를 통해 가져오지 않고 로컬 파일이나 메모리에서 가져옮으로써 데이터 로딩을 빠르게 할 수 있습니다.
Glide같은 라이브러리를 보면 캐시사용을 효과적으로 하고 있는 걸 확인할 수 있습니다.
그리고 안드로이드 스튜디오에 있는 profiler를 통해 앱에 병목이 생기는 부분을 확인해서 보완해 나가시는 건 지속작으로 하시면 좋을 것 같아요.
Optimisation이라는 키워드로 찾아보시면 더 많은 팁이 있을 겁니다. 이미 개발자 가이드에서 관련 내용이 믾이 들어가 있습니다.