· 성취/개선/학습한 내용 🏆 오늘 배운 것들은 앱이나 웹에서 많이 사용하는 페이지네이션과 앱에서는 빠질 수 없는 싱글톤 패턴이다. 순차적으로 하나하나 배우다 보니 싱글톤이 왜 필요한지 어떻게 만드는지 알게 되었고, 이번에는 UserDefaults를 사용하고 연산 프로퍼티를 설정해서 학습해 봤다. 싱글톤 페이지네이션 · 어려웠던 내용 😵😵💫 페이지네이션을 할 때 row를 기준으로 새로운 데이터를 요청을 해야 하는데 이걸 마지막에서 몇 번째 전일 때 요청을 해야 하는지 애매하다. 마지막 아이템의 3개 전 아이템이 뷰에 보였을 때 요청을 하니, 위로 다시 올려줘야 새로운 데이터가 받아와 지던데 왜 그러는진 정확히 모르겠다. 코딩을 하면 할수록 Enum이 굉장히 편리하고 좋다고 생각되지만, 활용이나 사용이 ..
· 성취/개선/학습한 내용 🏆 오늘은 API를 통해 데이터를 받아오는 것을 위주로 학습을 했다. API 중에서는 그냥 데이터를 받아올 수 있는 것들도 있지만, GPT나 네이버 파파고 같은 것들은 인증키를 통해서 권한을 획득한 다음에 사용이 가능하다. 기존 API에 비하면 사용 방법이 약간 까다롭긴 하지만 할만하다. 그리고 이 인증키를 GIt이나 클라우드에 올리면 안 되니, Git ignore을 통해서 인증키를 올리지 않게 파일을 관리하는 방법 등을 학습하였다. 그리고 API로 데이터를 받아오면 보통 JSON 형식으로 받아오게 되는데, 이 것을 swift에서 사용가능하게 Class, Struct 등으로 바꾸는 작업을 할 수 있게 하는 Codable을 배우고 실습을 하였다. gitignore Codable ..
· 성취/개선/학습한 내용 🏆 Alamofire HTTP First Class Object Function Type · 어려웠던 내용 😵😵💫 Alamofire을 사용할 때, 가져오는 url의 json 형식을 잘 파악해야 한다. 그냥 구조체로 가져오면 될 줄 알았는데, 배열 형식으로 되어있어서 [0]을 해줘야 제대로 데이터가 나오게 된다. 이걸 파악하지 못해서 왜 계속 통신 오류가 나지라는 생각을 많이 했다. 또 alamofire을 이용해서 데이터를 가져오는데 이 데이터 통신에 시간이 걸려서 ui를 그리는 시간보다 늦게 가져오게 된다. 그러면 데이터가 반영되지 않아서 이 데이터를 언제 반영해야 하는지에도 좀 어려웠다. 아직 Function Type이 이해가 되지 않는다. 특히나 func callReque..
· 성취/개선/학습한 내용 🏆 Enum case VS static let WebKit MapKit · 어려웠던 내용 😵😵💫 어려웠다라기 보단 이미 filter를 통해 내가 원하는 것을 구해두고, 그 변수를 사용하지 않은 실수를 했다. 그 실수 때문에 '어 이거 왜 안돼?'를 외치며 20분 동안 찾았던 것 같다. func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) { let trimText = searchText.trimmingCharacters(in: .whitespaces) var lowercaseText = trimText.lowercased() if searchText.isEmpty { // lowercaseText..
· 성취/개선/학습한 내용 🏆 오늘은 채팅 앱 뷰를 구현하는 공부를 했다. 오토레이아웃을 이용해 채팅 버블을 유동적으로 조절했고, 데이터도 뷰끼리 주고 받게 했다. 그리고 꽤 오랜 시간에 걸쳐서 구현하다보니 제법 뷰와 테이블 뷰 셀을 연결하는 것에 익숙해졌고, Extension이라든가 protocol에 좀 더 능숙해진 것 같다. 그리고 DateFormatter 역시 내가 원하는 것으로 변환되게 사용할줄 알게 되었다. keyboardLayoutGuide scrollToRow autoDimension 그리고 채팅 방에 들어갔을때 마지막 채팅이 있는 곳으로 스크롤을 위치시키려면 아래와 같은 코드를 적어야한다. //채팅방 제일 최신 쳇 위치로 let index = IndexPath(row: self.chatRo..
· 성취/개선/학습한 내용 🏆 오늘은 스토리보드에서 다른 뷰로 연결하는 방법과 스토리보드에서 말고 코드에서 연결하는 방법을 배웠다. 스토리보드를 하면 할수록 처음 개발을 하는 사람들에겐 스토리보드가 굉장히 편하고 좋은 접근이지만, 뷰를 짜는 게 익숙해질수록 관리를 하는 입장에서 스토리보드보단 코드가 더 편할 것이라는 생각이 들었다. 또 다른 배운 것은 안드로이드와 iOS에서 단어는 같은데 지칭하는 부분이 다른 용어들이 많다는 것을 알게 되었다. 예를 들어 내비게이션바는 안드로이드에서 하단에 3~5개 있는 iOS로 치면 탭바이다. 코드를 쓰면서 extension을 이용해서 코드를 좀 더 효율적이고 가시성 좋게 하려고 처음부터 시도한 점은 굉장히 고무적이다. 그러나 아직 protocol을 사용에 미숙하니 좀..