TIL - 2024.03.14 목요일 (개인프로젝트 11일차)

· 성취/개선/학습한 내용 🏆

  • ImagePicker
  • hidesBottomBarWhenPushed

· 경험한 이슈 😫

  • 뷰를 다른 뷰로 푸시했을 때, 탭바를 안 보이게 하려고 탭바를 UINavigationController로 만들었었는데, 이러면 내가 원하는 대로 navigationBar의 타이틀을 사용하기가 어려워진다는 것을 알게 됐다. 이때 타이틀을 사용하려면, topItem.title을 이용해야 하는데 이렇게 되면 탭바의 다른 뷰컨트롤러로 이동시 topItem.title이 유지가 된다는 것을 알게 됐다. 물론 이런 현상을 각 뷰마다 viewWillAppear 할 때, 각각 topItem의 요소들을 설정해서 해결할 수는 있겠지만, 비효율적이라고 생각을 했다. 또한 어떤 뷰는 barButton이 있고 어떤 뷰는 없다면, 매번 이동할 때마다 버튼을 만들고 삭제해야 해서 좋지 않다고 생각을 했다. 결론적으로 해결방법은 탭바의 속한 뷰컨에 내비게이션 컨트롤러를 하나하나 적용한 후, 다른 뷰컨으로 푸시할 때, 아래 코드를 사용해 탭바를 사라지게 했다.
vc.hidesBottomBarWhenPushed = true
  • 막연하게 될 것 같다라고 생각해서 고려하지 않았던 기능을 구현하지 못할 뻔했다. 마냥 그냥 그걸로 구현하면 되겠지라고 생각했었는데, 다른 동료의 이야기를 들어보니 안된다고 해서 잠시 멘털이 나갔었다. 다행히도 검색을 통해 다른 방법으로 구현할 수 있다고 알게 되었다.

· 모르는 부분???? 🥺

  • 이번에 출시하는 앱은 앱끼리의 데이터를 서로 주고받을 수 있어야 한다. 그래서 막연하게 share Extension으로 해야겠다고 생각을 했다. 그런데 share Extension은 데이터를 주고받기 어려운 형태인 점을 오늘 알게 됐다. (차라리 지금 아는 게 났다.) 그래서 대안을 찾아보던 도중 UIActivityViewController를 찾게 되었고, 쉽게 구현할 수 있는 건 아닌 거 같아서 틈틈이 찾아봐야겠다.

· 생각보다 덜/더 걸리는 작업과 그 이유  😱/🥴

  • 이미지와 닉네임을 저장하고 그에 따라 뷰에 업데이트해주는 부분에서 생각보다 시간이 오래 걸렸다. 이유는 생각해야할 부분이 많아서였다. 이미지가 없는 경우, 있는 경우 그리고 앞에 두 경우에서 또 파생되는 경우가 이미지를 고른 경우, 고르지 않은 경우를 모두 생각해서 이미지와 닉네임을 업데이트하고 삭제하고 만들어주는 과정이 필요해서 예상보다 시간이 더 오래걸렸다.

· 느낀 점 🌟

 직관적으로 사람이 생각하기엔 간단한 게 코딩으로 하려니 정확하게 분기처리를 해줘야 해서 오히려 더 머리가 아픈 경우가 있다는 것을 다시 한번 깨닫게 되었다. 그래서 더 공수가 투입될 것이라는 것을 미리 예상할 수 하기에 계획을 세울 때부터 작게 나누어서 생각할 필요가 있겠다. 또 정확하게 어떤 기술을 쓰고, 어떤 게 가능한지 확실하게 알아야겠다..