웅 모르는부분 : 1. jsonDecoder().keyDecodingstrategy 가 무엇일까? 2. CustomCell 내부 xib의 오토레이아웃은 어떻게 적용해야할까? 3. 스토리보드를 아예 사용하지않고(지우고) 어떻게 코드로 UI를 그릴 수 있을까? 4. 왜 스토리보드가 존재할 때는 sceneDelegate를 타지않을까? - 그렇다면 scneneDelegate를 탈때와 AppDelegate를 탈 때가 어떻게 다른건지 - dateformatter 51년도가 나옴 why. 왜 1970년을 기준으로 삼나. - cg size cg rect - UIView.keyvoardwillshow UIResponder 차이! 키보드 superview bottom safearea bottom <div style="display: flex, flex-direction: column"> <img src="https://i.imgur.com/tSmq2kh.png" width="200px"/> <img src="https://i.imgur.com/G3yBXdn.png" width="200px"/> <img src="https://i.imgur.com/tSmq2kh.png" width="200px"/> <img src="https://i.imgur.com/WoD7d7U.png" width="200px"/> <img src="https://i.imgur.com/3zriCPh.png" width="200px"/> </div> ![](https://i.imgur.com/uYwE4S3.png) 안녕하세요 woong, jeremy 입니다. Step1 완료하여 PR드립니다. ### 🤔 고민한 부분 #### 📎 키보드가 텍스트를 가리지 않도록 설정 - 키보드 Hide,Show 상태에 따라 다른 액션을 취하도록 하기위해NotificationCenter를 활용하였습니다. - Notification 구조체 내부의 인스턴스인 userInfo의 KeyboardFrame을 전달받아 키보드의 높이 값을 얻어 낼 수 있었고, - textView의 bottom 제약의 Constant에 전달받은 키보드의 높이값를 설정하는 것으로 문제를 해결 할 수 있었습니다. #### 📎 textView에서 title과 body를 나누는 로직 구현 `서론` - 아이폰의 메모장 앱을 참고하여 textView를 하나만 활용하면서 Diary title과 body를 구분할 수 있는 로직을 구현했습니다. `본론` 1. title과 body를 무엇을 기준으로 나눌지 고민이었는데textView에 title과 body를 합치면서 사용하는 `\n\n` 을 기준으로 나누는 것으로 문제를 해결할 수 있었습니다. ```swift // DetailViewController.swift private func configureView() { ... self.detailTextView.text = "\(data.title)\n\n\(data.body)" } ``` 2. 하지만 유저가 title과 body를 나누지 않고 하나의 문단으로 작성하는 경우도 고려해야 했습니다. - 이 과정에서 고려해본 형태는 아래와 같습니다. | <center> A </center>| <center> B </center> | | -------- | -------- | | <center><img src="https://i.imgur.com/3dWUO7V.png" height="500px"/> </center> |<center> <img src="https://i.imgur.com/SoiWpUU.png" height="500px"/> </center> | |문단이 있고 components로 </br>확실하게 나눌 수 있는 형태|문단이 하나이고 title과 body를 </br> 명확히 나눌 수 없는 형태| - 문단이 나뉘어있는 경우 componenets(separatedBy:) 메서드를 활용하여 배열의 첫 요소를 title로 지정하도록 했고 문단이 하나뿐이라면 문자열의 앞 20자가 title 그리고 나머지가 body가 되도록 했습니다. `결론` - textView를 여러개를 사용하면 편했겠지만 재미있는 시도였던 것 같습니다. - 아직은 완성되지 않은 기능인 것 같습니다. 고려해보지 않은 케이스들도 몇가지 떠오릅니다. - String index에 대해 알아볼 수 있는 좋은 경험이었습니다. ### ⁉️ 궁금한 점 앱 타겟 버전에 따라 사용할 수 있는 기술들이 각기 다를 것 같습니다. 저희 프로젝트의 경우 14버전인데 tableview를 사용하느냐 collectioView를 활용하여 list형태를 구현하느냐가 고민입니다. 일기장의 경우 단순한 앱이라 collectionView를 사용하는 것은 오버엔지니어링이 아닐까 그리고 추후에 tableView가 사라질거라는 이야기를 들은 것 같아 오히려 collectionView를 사용해야하지않을까라는 생각이 같이 드네요 `요약` - 가능하면 최신 기술을 활용해야하는 것인가 - 앱 타겟 14에서 collectionView는 오버엔지니어링인가 - tableView가 사라질거라는 이야기를 들은 것 같은데 이제는 떠나보내야하는가 > 위의 3가지에 대해서 알라딘은 어떻게 생각하시는지 궁금합니다!