Archive/패캠(올인원) 26

🍜 ch15 인스턴스 메소드 vs 타입메소드

✅ 이번 시간에는 인스턴스 메소드와 타입 메소드에 대해서 아주 간략히 알아보고 넘어가보자. 스위프트에서 이를 이해하기 위해서는 구조체와 클래스에 대한 이해가 있으면 좋아. 구조체와 클래스에 대해서는 거의 비슷하면서도 다른데, 두 개의 정확한 차이에 대해서는 이번시간에는 다루지 않아. 그래도 큰 차이는 클래스는 상속이 되고, 구조체는 안된다는 점은 이 시간에 알아둬야 해! 나의 경우는 구조체는 주로 아직까지 cell을 만들때 캡슐화 하기 위해서 사용했고, 클래스의 경우는 그 외의 경우에 주로 사용했던 것 같아. 구조체던 클래스던간에 자바에서 처럼 인스턴스를 생성해서 사용해야하는데, 그렇지 않고 사용할 수 있는 방법이 있어. 바로 static을 붙이면 인스턴스를 생성하지 않고도 접근해서 사용할 수 있다는 사..

📡 ch14 URLSession (feat. Codable)

✅ 자 그럼 이번시간에는 URLSession에 대해서 알아보도록 하자. ✅ URLSessionConfiguration Class에 대해서 보자 대부분은 default로 사용 가능하다. Ephemeral 같은 경우는 크롬의 시크릿모드 처럼 쿠키나 정보들을 저장하지 않을 때 이용한다. ✅ 다음은 URLSessionTask다 이걸 통해서 실제로 서버와 통신한다. 데이터 받는거면 DataTask를 사용하면 된다. 이건 background 세션에 대한 지원이 안되서 네트워킹을 통해 데이터를 받아오는게 안된다. 나머지 2개는 업로드랑 다운로드에 사용한다. ✅ 그럼 이제 코드리뷰를 몇몇 부분만 한번 봐볼까? (코드에 대한 내용은 이 글의 맨끝에 첨부해 두었어) ⭐️1️⃣ Codable의 사용 struct Respon..

📡 ch14 Networking

✅ 이번 시간에는 네트워킹에 대해서 알아볼 것이다. 컴퓨터 입장에서 보았을 때, 네트워킹 작업은 상당히 느린 작업이다. App + Concurrency 라고 동시성을 만들어주는 것이 상당히 중요하다. 우리는 이것을 GCD & Operations을 통해서 만들어 줄 수 있다. (이번에 RxSwift 공부하는데 나오던 내용이던데 꼼꼼하게 봐야지✊) ✅ HTTP 개념 학교 컴퓨터 네트워크 수업에서 네트워크를 배우긴 했지만, 뭔가 조금 아쉽게? 느껴지는 부분이 있어서 네트워크에 대해서 한번 개념을 싹 정리하고 지나가자. Networking in iOS : 서버와 iOS 사이에 데이터를 주고 받을 때, HTTP,REST,JSON을 사용하여 주고 받는다. HTTP 같은 경우는 전세계가 약속한 프로토콜 통신 규약이다..

ch13 Todo 리스트 코드리뷰

✅ 이번시간에는 Todo 리스트에 대해서 리뷰하도록 해볼게. 이게 금방 끝날줄 알았는데, 생각보다 배울게 많은 시간이었다. (모르는게 왜 점점 더 많아지지?) 🤦‍♂️ 깃에 대해 사용이 미숙한데 실수를 하는 바람에,, 깃허브를 다시 하^_^_^_^_^_ -> 깃허브 문제를 해결한 포스팅 https://rldd.tistory.com/117 🤦‍♂️ git 원격 저장소에 올라간 commit 되돌리기 이번에는 깃 원격 저장소에 올라간 commit 되돌리는 법에 대해서 알아보자. (문제) 깃허브에 수동으로 파일을 추가하였는데, 나중에 알고보니까 코드가 잘못되었었음. 따라서 깃 허브에서 다시 수 rldd.tistory.com 그럼 이제 다시 코드 리뷰를 시작해 보도록 할까 https://github.com/lgv..

⌨️ ch13 키보드에 따른 레이아웃 조정하기

✅ 자 이번시간에는 키보드에 따른 레이아웃을 조정해보는 시간을 가져보도록 할게요. 이번 포스팅부터는,,,! 녹화 기능을 발견해서 녹화기능도 넣어보도록 하겠습니다! 아직은 안되겠네,,, ^_^ 아무튼 키보드에 따른 레이아웃 조정이 어떤건지 그림으로 보자 지금 보는 이미지처럼 텍스트 필드가 키보드에 맞게 조정되어야 사용자가 입력하는게 편하겠지? 만약에 이게 조정되지 않는다면 키보드에 텍스트 필드가 가려지는 현상이 발생할거야. 그럼 이걸 어떻게 조정하느냐? -> bottom으로 걸린 레이아웃을 조정함으로써 변경할 수 있어. 그럼 다음은 코드를 통해 사용하는 법을 알아보도록 할까? (목차) 1. 키보드 상태를 확인할 옵저버 설정 2. 셀렉터에 구현되 메소드를 알아보자 3. 키보드가 내려가게 만드는 제스처 달기 ..

🤪 ch13 버튼 상태에 따라 바꿔주기

✅이번시간에는 버튼을 바꾸는 방법에 대해서 알아볼거야. 버튼을 클릭했을때, 클릭했다는 다른 이미지로 보여진다고 사용자들이 인식하는데 더 도움이 되겠지? Xcode에서는 다행히도 그런 기능들을 제공하고 있어. State Config 쪽을 보면 Default로 설정된 상태를 확인할 수가 있는데, 저 부분을 셀렉, 하이라이트 등 자유롭게 변경해주면 끝! 그럼 버튼을 눌렀을때, 코드로 어떻게 작동되는지 살펴볼까? 대충 이렇게 작동해. 여기서 눈여겨 볼 것은 checkButton이 어떻게 작성되어서 행동하는지에 주목해보자 체크 버튼이 선택되었을때, 체크버튼의 상태를 반대로 변경하고 let isDone 변수에 체크 버튼의 상태를 넣는다..! 그러면 생각보다 간단히 끝나! 체크버튼과 관련한 UI들도 있는데, 이 부분..

😂 ch13 swift Equatable?!

✅ 이번 시간에는 Equtable에 대해서 알아보도록 할게. Equatable이 뭐냐? 두 값이 동일한지 확인할 수 있는 프로토콜이야. 우리가 코딩을 하면서 "abc" == "abc" 혹은 33 != 33 등 스위프트의 기본 타입을 같은지 다른지 비교해본적이 있었지? 너무 단순하게 그냥 비교하면 되는거 아닌가..? 썼던 것들인데,, 우리는 이러한 문제에 부딪히게 돼 그럼 swift에서 구조체나 클래스의 인스턴스들의 값이 같은지는 어떻게 비교할 수 있을까? 아래의 예시를 한번 봐보자. class A{ var aNum : Int init(_ aNum :Int) { self.aNum = aNum } } if A(1) == A(2) //error! { } 출처: https://zeddios.tistory.com..

🦧 ch13 Static Cell (TableView)

✅ 이번에는 그동안 테이블 뷰를 Dynamic하게 사용해 왔었는데, 간략하게 스태틱 셀에 대해서 짚고 넘어가자. 그냥 설정하는 값을 보여주겠다는 의미 ✅ 테이블뷰를 그럼 조금 더 예쁘게 만들어 볼까? Inset Grouped를 사용하면 조금 더 예쁘게 만들 수 있다. ✅ 그럼 스태틱 셀에서 헤더를 넣어볼까? 스태틱 셀을 선택하면 파란색 섹션이 생기는데 그 부분에 헤더를 넣어주면 된다.

ch12 애플뮤직st 음악앱 코드리뷰

✅ 이번 시간에는 주된 내용은 AVFoundation을 활용한 미디어 객체를 사용하는 작업이야. 확실히 코드리뷰를 하고 지나가야 온전히 내것으로 만드는 느낌이 있어서 진도가 조금 느려지더라도 꼭 하고 지나가는걸로..! AVFoundation에 대해 사용해본 경험이 적어서 이번에는 짚고 넘어가야할 코드가 많은 것 같다..! 익숙하지 않을때는 역시나 애플 개발자 문서를 보면서 지나가보자! 애플 개발자 문서 https://developer.apple.com/documentation/avfoundation/ Apple Developer Documentation developer.apple.com 그럼 코드 리뷰 시작해보자!! (목차) 1. 컬렉션 뷰 헤더 2. AVFoundation 메타 데이터 추출 3. Tr..

💈 ch11 현상금 랭킹앱 코드리뷰(Animation)💈

✅ 이번 시간에는 ch11에서 애니메이션을 중점으로 하여 코드리뷰를 진행할 생각이야. 이 페이지를 보기 전! 자세한 이해를 위해 [개념편]을 참고하기 바래 2021.06.22 - [iOS/패캠공부] - 💈 ch11 Animation - 개념편💈 💈 ch11 Animation - 개념편💈 이번시간에는 애니메이션에 대해서 간략하게 정리해보도록 하자! ✅ 애니메이션이란? 시간에 따라 뷰의 상태가 바뀌는 것 애니메이션을 이용하면 앱을 더 완성도 있게 만들 수도 있지만, 과하 rldd.tistory.com 개념 편에서 언급했듯이 1. 제약조건을 통해 애니메이션을 구현하거나, 2. 뷰를 통해 constraint를 조작하거나 두가지 방법이 있어. 1️⃣ 제약조건을 통해 애니메이션을 구현하는 방법 제약조건도 버튼이나 ..