개발하는 뚝딱이

[iOS] 딩동환율 업데이트 일지 본문

iOS 개발일지

[iOS] 딩동환율 업데이트 일지

개발자뚝딱이 2022. 2. 6. 16:22

최근 1.6.1 버전으로 딩동환율을 업데이트하였다. 회사 일로 계속 바쁘다는 핑계로 딩동환율을 돌보지(?) 못했는데, RxSwift 공부한 것을 프로젝트에 적용해보고 싶다는 생각이 들어 이번 버전을 준비하였다.

 

 

1.6.1 업데이트 사항

1. RxSwift를 적용하여 리팩터링

RxSwift를 적용한 리팩터링을 진행하였다. 선택한 국가를 변경할 때, 사용자가 숫자를 입력할 때, 환율 타입을 변경할 때, 환율 우대률을 변경할 때 모두 환율 계산을 다시 해야 하는데 RxSwift를 이용해서 이를 좀 더 수월하게 관리할 수 있었다. 또한 Observable pattern을 적용하기 위해 Observable이란 class를 생성하였는데, RxSwift에서 제공하는 Relay와 Driver 등을 이용하여 경우에 따라 필요한 타입을 쓸 수 있었고, filter 기능과 map 기능을 통해 다양한 변형을 사용할 수 있다는게 큰 장점이었다.

 

2. 소수점 입력 기능 추가

이전 버전에서는 숫자 입력하는 TextField의 키보드 타입이 number pad여서 소수점 입력이 불가능하였다. 1.6.1 버전에서는 키보드 타입을 decimal pad로 변경하여 소수점 입력이 가능하도록 변경하였다.

 

3. 다크모드 지원 UI 업데이트

대부분의 색들이 system color여서 다크모드 여부에 따라 색상이 자동으로 변경되었다. 그 중에 나라별 환율에서 특정 나라를 탭했을 때 나오는 페이지에서 label color가 system color가 아니여서 다크모드 때 선명하게 색이 보이지 않는다는 이슈가 있었다. label color를 system gray color로 변경하여 해결하였다.

 

 

 

이번 업데이트를 준비하면서 고민한 내용

언제부터 네트워킹을 할 때는 Alamofire를 쓰는게 습관처럼 되어버렸다. 딩동환율은 Swift와 UIKit을 막 공부하기 시작할 때 시작한 프로젝트라 기초를 다진다는 마음으로 라이브러리는 사용하지 않았었다. 이번 업데이트를 준비하며 RxSwift를 위해 Podfile을 추가했고, 추가한 김에 Alamofire를 사용하는게 좋을까 생각을 많이 했다. 현재 프로젝트에서는 공휴일 데이터와 환율 데이터를 얻기 위해 총 2번의 네트워킹 과정이 있다. 이 데이터 요청들은 단순히 json 데이터만 받는 것이고, HTTP method 중에서도 'get'만 이용할 정도로 단순하다. 앞으로 더 이상의 서버와 통신이 필요하단 생각이 들지 않았고, 그래서 기존과 같이 URLSession을 이용하기로 하였다.

 

앱 버전을 이전에는 중간 번호만 계속 업데이트 해서 큰 기능의 변화가 없음에도 1.4 버전까지 와버렸다. (쩝) 개발자가 올리기 나름이고 정하기 나름이지만, 좀 더 학습하고 빌드 버전에 대해 공부했어야 했는데 아쉽다. 이제부터는 빌드 버전에 관한 룰을 갖기로 했다.

X.X.X (iOS 앱 버전 형태)

순서대로 Major, Minor, Revision version 이다.

Major : 기존 버전 대비 변경점이 매우 클 때 (전체적인 개편)

Minor : 부수적인 기능 추가가 생길 때

Revision : 사소한 버그 수정이나 아주 작은 기능단위가 추가될 때

 

 

 

다음 업데이트 때 추가할 내용

TDD + Github Actions... ?

TDD는 테스트를 위한 코드를 작성하며 개발을 하는 방식인데, 완성된 프로젝트에서 앞으로 추가될 개발에 대하여 TDD를 적용하는지 한 번 봐야겠다. Github Actions를 통해 테스트와 TestFlight에 자동 업로드 관리를 한다는 글을 본 적 이 있는데 꽤 흥미롭다! 이 부분에 대해 공부하고 가능하면 적용까지 시키고 싶다.

'iOS 개발일지' 카테고리의 다른 글

[iOS] 딩동말씀 앱 출시 후기  (2) 2021.06.12
[iOS] iOS + Realm 모델 사용하기  (0) 2020.10.06
[iOS] iOS Device Support  (0) 2020.09.17
[iOS] 스크린샷 찍고 앨범에 저장하기  (0) 2020.07.01
[iOS] Firebase 연동하기  (0) 2020.06.30