티스토리 뷰
2주에 걸친 LvUpToDo의 1.30 버전 업데이트에 대한 후기를 한 번 써보려고 한다.
BitBucket을 사용한 형상관리
이번 버전부터는 형상관리를 하기 위해 몇 가지를 찾아봤다. 고려했던 플랫폼은 Git, BitBucket 정도가 있었고 나는 BitBucket, Source Tree를 사용하여 형상관리를 하기로 결정했다.
위와 같이 약 2주일에 걸쳐 개발을 진행한 흔적을 살펴보니 뭔가 뿌듯함도 있고 어떤 날에 어떤 일을 했는지도 확실하게 알 수 있어서 좋았다.
위에는 커밋 메시지가 한 줄밖에 안 나오는 거 같은데 실제로는 위와 같이 어떤 일을 했고, 어떤 일을 해야 하는지를 구체적으로 기록해둬서 다음 작업을 할 때 수월했다.
기능별 모듈화
원래는 동일한 기능을 하는 메서드들을 각 뷰컨에서 매번 구현하는 식으로 만들었었는데, 이렇게 새로운 기능을 추가하려고 하니 정말 별로였다. 그래서 가장 먼저 시작한 일은 이러한 메서드들을 모듈화 하는 작업이었다.
예를 들어 위와 같이 퀘스트를 수정하는 메서드를 만들었는데, 이러한 메서드는 앱의 여러 군데에서 자주 쓰이기 때문에 위와 같이 한 번만 만들어두고 사용하는 게 편리했다. 또한 나중에 메서드와 매개변수들의 역할을 알기 위해서 주석도 꼼꼼히 달아주었다. 이전작업의 코드를 보면 정말 별로라는 생각이 든다.
예를 들어 할 일을 추가하는 기능을 구현한 기존 코드는 아래와 같다.
일단 당장 몇 주만에 본 나도 처음엔 이 코드가 무엇을 하는 코드인가 읽어봐야 했으며 동일한 기능을 하는 다른 부분에서도 위의 코드를 동일하게 또 써줘야 했다.
하지만 이번 업데이트에서 모듈화를 하여 사용하니 아래와 같이 깔끔한 코드가 완성될 수 있었다.
심지어 위의 코드에는 이번 업데이트에서 추가된 기능인 주간, 월간 계획을 추가하는 코드들도 있었지만 코드는 오히려 더 짧은 것을 볼 수 있다.
깔끔하게 코드를 만들기 위해 노력하며 개발하다 보니 깔끔하게 코드를 작성하는 게 재밌어졌고 더 나은 방법은 없을까에 대해 고민할 수 있었다.
변경 사항
일단 이번 업데이트의 목적은 크게 2가지였다.
UI 개선, 주간, 월간 계획 기능 추가 및 능력치를 맘대로 설정할 수 있는 기능.
먼저 UI를 비교해보면 아래와 같다.
일단 기존 UI이다.
이번엔 이번 업데이트로 인해 변경된 UI이다.
좀 더 깔끔한 UI를 만들기 위해 노력했고 위와 같이 이전보다는 깔끔하게 만들 수 있었다. 또한 내비게이션 바 부분에 주간, 월간 계획을 사용할 수 있도록 버튼을 추가하여 주간, 월간 계획도 사용할 수 있게 변경했다.
어려웠던 점
이번 개발에서는 전체적인 코드 리팩토링을 수행했다. 특히 TableView에서 CollectionView로 수정할 때 높이를 직접 계산해줘야 하는 부분이 어려웠던 것 같다. 이 부분은 간단하게 여기에 정리해뒀다. 사실 내 앱에는 CollectionView Cell이 비교적 단순하여 크게 어려운 부분은 아니었다. 그래서 따로 여러 개의 뷰가 존재하는 Cell을 만들어 테스트를 해봤는데, 잘 되는 거 같아 나중에 한 번 포스팅해보려고 한다.
다음으로 어려웠던 것은 색을 변화시키는 방법에 대한 부분이다. 내 앱은 다크 모드와 라이트 모드를 지원하는데, 이 부분을 기존에는 단순하게 모두 수작업으로 변경해줬다. 이번 업데이트에서 새로운 뷰가 많이 추가되었는데, 매번 이렇게 하는 게 너무 비효율적이라고 느껴져서 ColorModule을 하나 만들어 처리하도록 구현했다. 기존 뷰와 새로운 뷰에 원래 존재하던 다크, 라이트 모드를 적용하는 것은 기본이고 코드의 확장성을 위해 새로운 색의 조합을 쉽게 추가할 수 있도록 고민하여 만들었다. 이걸 사용하여 다음 업데이트에서는 봄, 여름, 가을, 겨울 스타일로 색상들을 추가해볼 계획이다.
느낀 점
처음 iOS를 공부하며 작성한 기존의 코드는 공부를 좀 더 한 지금의 내가 보니 정말 많이 부족해 보였다. 언젠가 미래의 내가 이번에 작성한 코드를 볼 때에도 비슷한 느낌을 받도록 열심히 공부해야겠다. 비교적 간단한 기능이라고 생각하고 시작했던 이번 업데이트가 2주가 걸렸다는 것에 놀랐고, 다음 기능으로는 할 일을 미루는 기능, 능력치의 상승을 그래프로 보여주는 기능을 생각하고 있다. 할 일을 미루는 기능은 비교적 쉬워 보이는데, 문제는 그래프를 그리는 기능이다. 이 부분도 잘 고민해서 직접 모두 구현해봐야지~
이번 업데이트로 적은 사용자지만 그분들이 좀 더 나은 사용자 경험을 했으면 좋겠다!
'Toy Project > LvUpTodo' 카테고리의 다른 글
UICollectionView를 이용한 LvUpTodo List 리팩토링 (0) | 2021.03.18 |
---|---|
[iOS 앱개발 일기] LvUpTodo 업데이트 계획정리 (0) | 2021.01.10 |
[iOS 앱개발 일기] 앱 스토어에 앱 심사 신청 및 느낀점 + 등록완료! (4) | 2020.10.30 |
LvUp Todo 개인정보처리방침 (0) | 2020.10.29 |
- Total
- Today
- Yesterday
- Combine
- dfs
- 자료구조
- Publisher
- 동시성
- IOS
- Apple
- pattern
- 아이폰
- mac
- 테이블뷰
- 코테
- System
- 프로그래밍
- Xcode
- 스위프트
- BFS
- OS
- DP
- design
- 알고리즘
- 앱개발
- Swift
- document
- operator
- OSTEP
- 코딩테스트
- operating
- 문법
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |