#3 BaseActivity

ADD·2021년 7월 13일
0
post-thumbnail

내가 다니고 있는 회사에서 서비스 중인 어플리케이션들은 대부분 고령의 사용자들이 주로 이용하고 있다. 이런 특성때문에 회사측에서는 굳이 기존 어플리케이션들을 리팩토링 할 필요가 없다. (기본적으로 고령의 고객들은 핸드폰을 잘 안 바꾸시기에.. Deprecated 된 Method 나 Class 들도 빈번하게 사용하고 있다.) 그래서 MVVM 이니, ViewBinding 이니 하는 구조나 기술 등을 적용할 수도 없고, 이를 통한 이용자들의 피드백도 받아 볼 수 없다. 없는 시간 쪼개서라도 사이드 프로젝트를 계속해서 진행하여야겠다.

BaseActivity?

그래서 사실 Architecture Pattern에 대해 제대로 알고 있지 못했는데, 오늘에야 제대로 공부해 볼 수 있었다.
BaseActivity 는 자사 어플리케이션의 클래스 명이다. 관련해서 조금 검색해보니 MVVM 등과 같은 Architecture Pattern 에서 사용되는 방식이더라!
ToolBar 나 NavigationBar, Drawer 등, 여러 Activity 에 걸쳐 공통적으로 사용되는 ViewGroup 에 대한 초기화와 이벤트에 대한 코드를 미리 작성해두고, 다른 Activity 에서 이를 상속받아 코드의 양을 줄이고, 가독성을 높일 수 있다!

구현 과정

새로운 클래스를 생성하고, AppCompatActivity 를 상속 받는다. 나는 OnClickListener 도 상속 받아줬다.

이후는 간단하다. onCreate 와 setContentView 를 Override 해주고, ToolBar 와 NavigationBar, Drawer 로 구성된 layout 을 참조하면 끝.
FrameLayout 이 있는 이유는, BaseActivity 를 상속받고자 하는 Activity 의 layout 에 만들어 둔 UI 가 보일 수 있도록 하기 위함이다! (LinearLayout 이나 다른 Layout 등을 사용할 경우 가려져서 안 보인다.)

더 이상의 별다른 구현은 필요 없고, 그저 BaseActivity 를 상속받고자 하는 Activity 에서 BaseActivity 를 상속해주기만 하면 정상적으로 작동한다.

구현 결과

이는 Activity_main 의 xml 이며, ToolBar 와 Navigation 을 위한 공간과 Fragment 가 들어갈 FrameLayout 만 마련해두었다.

상, 하단에 ToolBar 와 NavigationBar 가 적용된 모습.

0개의 댓글