샘성의 iOS 개발 일지

[HIG] Launching - 실제 적용하여 리펙토링 하기(1) 본문

iOS/HIG & 디자인 패턴

[HIG] Launching - 실제 적용하여 리펙토링 하기(1)

SamusesApple 2023. 11. 15. 14:21
728x90

개요

 저번주에 HIG 스터디에서 Launching 부분을 주제로 공부하였다.

스터디에서 출시한 앱 중 한 앱이 ‘앱을 처음으로 설치 → 실행’ 경우 사용자 정보를 요구한 것이 떠올라 이를 회고하고 리펙토링 하기로 했다.

스터디 내용

 

 


리펙토링 계획

우선, 해당 앱은 MVC 패턴, CoreData, Podfile, SPM등의 외부 라이브러리가 전혀 들어가있지 않은 상태이다. (심지어 네트워킹도 URLSession으로 함)

  1. 정보를 요청하는 화면 제거하기
  2. MainVC에서 유저의 이름 부분을 터치 가능하도록 하기
    • 유저 정보 없을 시에, "User"를 이름 대신 노출 
    • 터치시, 이름 등록 및 수정 하는 얼럿창 노출
  3. 지역을 나타내는 글자 옆에 버튼 추가하기
    • 기본 날씨 제공 지역은 '서울'로 설정하기
    • 버튼 터치시 CLLocation으로부터 현재 위치 좌표 받기
    • 새로 받은 위치 좌표로 날씨 정보 요청하기

 


리펙토링 시작

 

  이 글에서는 하단의 2가지 내용을 다룰 것이다.

  1. 정보를 요청하는 화면 제거하기
  2. MainVC에서 유저의 이름 부분을 터치 가능하도록 하기

 

 

1. 정보를 요청하는 화면 제거하기

  1. 파일 제거
  2. 유저 이름을 최초에는 "User"로 임의 설정하기
  3. CoreData에 저장된 지역 데이터가 없을 경우 네트워킹을 요청할 때 default 지역으로 '서울'의 데이터를 보여주도록 하기

1. 유저 정보 유무에 따라 화면 다르게 세팅하기
2. default 지역을 "Seoul" 로 세팅하도록 변경 /  앱 최초 설치 후의 모습

 

 

 2. MainVC에서 유저의 이름 부분을 터치 가능하도록 하기

  1. 유저 이름이 표시된 label에 TabGestureRecognizer 추가하기
  2. label이 탭 된 경우 이름을 변경할 수 있는 얼럿창 띄우기
  3. 얼럿창의 확인 버튼이 눌리면 CoreData에 변경된 이름 반영 및 view 다시 그리기

1. label에 제스처 추가

 

2. CoreData에 유저 이름 없을 경우 -> 생성(Create) / 있는 경우 -> 수정(Update)

 

 


시연 영상

 

728x90