티스토리 뷰

개발 블로그/iOS

BaseViewController를 사용해봅시당

개발자 아라찌 2020. 8. 31. 02:49
728x90

안녕하세요! 오늘은 BaseViewController를 사용해서


일!: 가독성도 높히고!


이!: 있어보이고!


삼!: 중복도 줄이고!


깔-끔 하게 코딩할 수 있는 BaseViewController 만들고 사용해보는 방법에 대해 포스팅 해볼까 합니다!



그전에.. BaseViewController란 어떤걸까요..?



BaseViewController란?

BaseViewController는 커스텀 뷰컨트롤러 에요 ㅇ_ㅇ..


저희가 ViewController를 만들면 기본적으로 UIViewController를 상속받죠?? 요렇게용



여기서 받은 UIViewController에 저희가 사용하기 편하도록 추가로 BaseViewController 라는걸 만들어줘서 UIViewController 대신 BaseViewController를 상속시켜주면 되요.

어차피 BaseViewController가 UIViewController를 상속받을꺼라 괜찮아용

요렇게용


그냥 사용하시면 에러가 날꺼에요.. 왜냐하면 BaseViewController를 아직 안만들어줬으니깐요..


그럼 BaseViewController를 사용해서 어떤 부분들을 커스텀 할 수 있는지 알아보겠습니당.


BaseViewController 사용이유

저희가 코딩을 하다 보면 중복적으로 사용하게 되는 부분들이 있죠..? 예를 들어볼게요..


  • 내가 만드는 앱의 뷰의 배경화면색이 거의 흰색이라던가..(뷰마다 다 설정해줘야 겠죠..?)
  • 저는 주로 SnapKit, Then 라이브러리를 자주 사용하는데, 뷰컨트롤러마다 다 import 해줘야 한다던가..
  • RxSwift를 사용한다면 disposeBag은 필수죠.. 항상 사용하는 변수가 있다거나..

할 때! 뷰컨트롤러 마다 중복적으로 적어줘야 하는 부분들이 있어요!



이런 부분들은 BaseViewController를 따로 정의를 해주고 BaseViewController를 상속을 받아 주면 중복 없이 코딩을 할 수 있게 되요!

마치 파워포인트의 템플릿 처럼요!


이러한 이유 말고도 또 사용 용도가 있어요. 바로 View Life Cycle 부분에 자주 작성해주는 뷰넣기, 제약사항 가독성 높이기 에요!


뷰를 만들었으면, 뷰를 self.View라던가.. 하는 뷰에다가 넣어주고, 넣어준 UI요소들을 제약사항 걸어줘야 빌드시 뷰가 나오게 되죠??


그런데, 협업을 하다보면, 누구는 ViewDidLoad() 메소드에서 다 작성해주시는 분이 있는가 하면.. 누구는 LoadView()에 다 작성해주시거나.. 누구는 짬뽕으로 작성하시는 분도 있어요(저요..)


이런 부분들을 커스텀뷰컨트롤러인 BaseViewController를 만들어주고, 따로 메소드로 정의를 해주면 통일성 있고, 가독성 있게 코딩을 해줄 수 있어요.


예)

  • 뷰넣기: configureUI() 메소드 에서
  • 제약사항: setupConstraints() 메소드 에서

요렇게요! 그럼 코딩이 통일성 있게 되면서 가독성도 좋아지고, 깔끔해지겠죠??


그럼 이제 어떻게 만드는지 만드는 방법에 대해 알려드리겠습니다.


BaseViewController 만드는 방법

별거 없어요.. 그냥 프로젝트에서 New File로 ViewController 파일 하나 만들어 주시면 되요. 이름은 자유인데 대부분 BaseViewController로 사용하더라구요.

따로 Utility 그룹을 만들어서 관리를 해주면 알아보기 편하겠죠?


요렇게 파일을 추가해준 뒤, 다음부터 사용할 뷰에 UIViewController 대신 BaseViewController를 사용해주시면 되겠습니다.



이런 방법으로 Cell도 만들어 줄 수 있어요.

이렇게 만들어 주면, tableViewCell 파일을 만들어서 사용할 때 요런식으로 깔끔하게 코딩을 해줄 수가 있어요.


깔끔하죠??



그럼 마지막으로..

이 포스팅이 도움이 되셧으면 좋겠고.. 좋은하루되세요..(머쓱)

앞으로 포스팅에 대한 부담감을 줄이고 알게 된 내용이 있다면 간단하게라도 올리는식으로 진행을 해볼려구요. 너..무 처음부터 끝까지 정리한다고 생각을 하게 되면 그 부담감에 알게 된 내용이 있는데도 바로 정리를 못하게 되는 경우가 있더라구요. 그럼 이만...

추가로 혹시 iOS 앱 개발이 아직 미숙하다고 느끼시거나 이 강의를 안들어 보신 분은 edWith - 부스트코스 iOS 강의를 꼭 들어보시는걸 추천드려요. 카카오톡 오픈톡방에 iOS 부스트코스 오픈톡방도 있으니 한번쯤 들어오셔서 swift 질문도 하고 정보도 공유하면 좋을 것 같아요.

728x90
댓글