GDSC HUFS 3기/Android with Kotlin Team 2

[2팀]15-2 BaseActivity 설계하기

kangbongja 2021. 11. 9. 17:21

이 글은 이것이 안드로이드다 with 코틀린(개정판)를 참고하여 작성하였습니다.

작성자 : 김현주

개발환경은 Windows, Android Studio입니다.

 

 

1. BaseActivity ?

자주쓰는 코드를 BaseActivity내 함수로 만들고 메인에서 상속하여 사용

메인(혹은 다른) 엑티비티에서 상속받아서 사용: 직접 실행(인스턴스화, 생성자호출)되는 것을 방지하고

상속받은 액티비티(구현체)에서만 사용할 수 있게 만든다. > 일반적으로 추상(abstract) 클래스로 설계

 

2. BaseActivity 설계 

 

기존에는 EmptyActivity 코틀린 스크립트를 구성했으나

베이스 엑티비티는 그냥 코틀린 클래스로 만들어준다.

(Alt+Enter -> Import)

베이스엑티비티를 상속받아서 메인 엑티비티가 구성됨.

따라서 기존에 메인엑티비티가 상속받은 앱컴팻엑티비티는 베이스 엑티비티가 상속받는다

메인엑티비티가 상속받기위해서는 베이스엑티비티가 open이거나 abstract여야 한다.

베이스엑티비티가 abstract이면

해당 베이스엑티비티 클래스명(BaseActivity)으로 인스턴스를 생성할 수 없다.

특정클래스를 설계했는데 직접(인스턴스화, 생성자호출)사용되지 않고

해당 클래스를 상속받았을때만 사용되게 할 수 있다.

 

오타 : Api 버전이 마시멜로 미만이면 권한처리가 필요없다. Buil.VERSION.SDK_INT < Build.VERSION_CODES.M

fun permissionGranted 권한처리. requestCode ~

abstract fun permissionGreanted ~ 메인에서 베이스의 엡스트랙트로된 멤버를 강제로 구현해야한다.

if ~ else  권한요청- 결과처리

 

일반적으로 for문을 돌려서 승인여부 확인
승인체크, 배열은 all
Pms grnted 값은 0, 1 전체가 True일 때
** 마시멜로 미만이면 권한처리 필요없음으로 들어가야함 ,
main에서 Denied도 추가 : Base에서 작성한 요소 > 메인에서 상속 : 메인에서 필수구현
스토리지 권한,  REQ : 리퀘스트 코드. 각 퍼미션(권한승인) 구성 : when
카메라 권한,  REQ : 리퀘스트 코드. 각 퍼미션(권한승인) 구성 : when
빌드 그래들에서 뷰바인딩 처리 후 메인에서 바인딩. 바인딩루트 : 늘 하는 과정
필요 Manifest설정
에뮬에서 동작