미니 안드 13 예측성 뒤로가기
- idsr
- 조회 수 2620
- 2022.06.19. 03:44
https://developer.android.com/about/versions/13/features/predictive-back-gesture
안드 13에서 큰 변화중 하난데 뒤로가기를 실행시 좀 더 예측가능하도록 변화를 준 부분입니다.
사실 이 기능이 뭐를 얘기하는지 이해가 안되긴 하는데 크게
- 사용자가 뒤로가기로 예상하는 액티비티를 시스템이 예측?
- 뒤로가기로 돌아갈 상태를 시각적으로 보여줌?
뭔가 두가지 컨셉을 묶어서 부르는거같은데 1번은 깊게 안봐서 정확히 모르겠고 2는 이제 뒤로가기 트리거만 해주던 방식에서 뒤로가기 제스쳐 시 손가락 따라서 애니메이션을 보여주는 부분이 추가된 것 같습니다.
현재 앱 내에서 기능 지원 플래그를 설정해야 지원하며 14부터는 아예 대체될 예정이라고 합니다.
(기존의 onBackPressed를 onBackInvoked 로 대체)
13 베타 3 기준으로 이제 돌려볼 수 있으며 애니메이션은 개발자 설정에서 켜야합니다
Predictive back animations 입니다
킨 후 지원하는 앱에서 다음과 같이 홈으로 돌아가게 됩니다
그리고 https://codelabs.developers.google.com/handling-gesture-back-navigation#1
여기서 샘플 코드 예시의 경우 문항 답변 액티비티에서 기존에는 아예 액티비티가 전으로 가버렸다면 이제는 한 문항만 뒤로 가는 것이 가능해졌다고 합니다.
말보다는 예시로 보면
기존:
반영 후
뭔가 문항 돌아갈때 애니메이션이 있을 줄 알았는데 없더라고요
개발 트렌드 주제로 글 올려주셔서 감사합니다.
관련 예시 코드를 더 봤는데요. 이미 onBackPressedCallback을 이용해 back 처리를 관리하고 있었다면, 라이브러리 업데이트후 조금의 수정만으로도 혜택을 충분히 볼 것 같습니다. 이번에는 여기에 predictive한 기능을 위해 OS레벨에서 일부 기능추가가 된 것으로 이해가 되네요. codelab에 있는 내용은 사실 기존하고 바뀐점은 없고 마이그레이션 가이드 정도로 보시면 됩니다.
onBackPressed나 KeyEvent.KEYCODE_BACK 같은 레거시를 쓰는쪽이라면 가급적 업데이트 하는게 맞는것 같고요.
네. 결론은 그렇습니다.
프로젝트에서 androidx 라이브러리 패키지를 이미 쓰고, 이것으로 backpress 관리를 하고 있다면, 이를 업데이트 하는것과 manifest 수정으로 대응할 수 있고요.
onBackInvoked는 api level 33 플랫폼 SDK에 새로 추가되는 콜백입니다. 구버전엔 없던 녀석이라 이걸 직접 쓰기엔 부담되므로 보통은 androidx로 마이그레이션 처리하는게 더 낫습니다.
요약하자면 결국은, OS레벨에서 predictive하게 처리할 수 있는 onBackInvoked를 직접 호출하거나 이걸 내부 구현에서 분기할 수 있는 androidx를 쓰면 된다는 것인데요.
아마 기존 구현을 버린건 여러 이유가 있겠지만 레거시의 backpress 처리가 파편화 되어있고 콜백 한군데에서 구현 내용이 전부 드러나는 구조여서 이를 정리하고 기존걸 도태시키려는 의도가 아닐까 추측합니다.
흠 대충 어떤 기능인지 알겠읍니다
특정 웹페이지에선 댓글 넘겨보다가 뒤로 가기 하면 페이지 자체가 뒤로 가버릴 때가 있는데 저 기능 쓰면 이전 댓글 란을 보여준단 말이군여