처음 팀프로젝트가 시작됐다. 기대했던 프로젝트 였기에 떨리고 긴장되는 마음이었는데 진행될 수록 팀원들 덕분에 착착 순조롭게 진행되는 것 같아 점점 더 재밌어지는 것 같다 이 프로젝트가 진행되는 일지를 적어보려고 한다. 우리팀은 키오스크 만들기 중 애플 제품을 판매하는 앱을 만드는 것을 방향으로 잡고 각자의 역할을 분담에 맡았다. 나는 그 중 세그먼트 컨트롤러를 이용해 각 세그별로 컬렉션 뷰로 제품을 나열하는 기능을 구현하는 것을 맡았다. Model 생성 먼저 데이터 모델을 만들어주자 struct AppleProduct { let image: UIImage? let name: String let price: Int let category: String } 내가 컬렉션 뷰에 보여줄 데이터와 그것을 분류해 줄..
오늘은 첫 팀프로젝트를 진행하기 앞서 CollectionView , segment controller 구현을 맡게되어 먼저 얘네들이 무슨 역할을 할 수 있는지 알아보고자 한다. 자세한 구현 내용은 하단의 프로젝트 일지를 통해 적고 간단한 개념정도만 기록하고자 한다 🙂 CollectionView 먼저 UICollectionView는 순서가 지정된 데이터들을 관리하고 사용자 정의 가능한 레이아웃을 사용하여 표시하는 객체이다. UICollectionView | Apple Developer Documentation UICollectionView의 구조 크게 구조는 상단에 헤더 뷰를 넣을 수 있는 공간이 있고 컨텐츠들이 들어가는 cell , 하단의 푸터 이렇게 들어가 있다. 헤더나 푸터의 경우 원한다면 생략이 가..
iOS 네트워킹에 대한 이해 (1) HTTP 프로토콜의 특징 HTTP는 연결 상태를 유지하지 않는 무상태 프로토콜이다. 각 요청은 독립적이며, 이전 요청과의 관련성이 없다. 클라이언트는 요청 메시지를 생성하여 서버로 전송하고 서버는 요청을 받아 처리한 후 응답 메시지를 클라이언트로 반환한다. 요청은 주로 HTTP 메서드 (GET, POST, PUT, DELETE) 와 헤더 , 바디로 구성되어 있다. HTTP 응답에는 상태 코드와 헤더가 포함된다. 상태 코드는 요청의 성공, 실패를 나타내는 코드이며, 헤더는 요청 또는 응답에 대한 메타 데이터를 포함한다. 상태코드는 클라이언트에게 요청 결과를 알려주는데 사용되며, 200대 번호는 성공 , 400대 번호는 클라이언트 문제 등 나타내게된다. HTTP 메서드 G..
Delegate 패턴과 Notification 의 차이 및 특징 Delegate패턴 객체 간의 일대일 통신을 가능하게 한다. 한 객체가 다른 객체로 작업을 위임할 수 있도록 대리자를 설정한다. 주로 프로토콜을 사용하여 델리게이트 메서드를 정의하고, 델리게이트 객체는 이를 채택하여 실제 작업을 구현한다. // 프로토콜 정의 protocol DataProviderDelegate: AnyObject { func didReceiveData(_ data: String) } // 데이터를 제공하는 객체 class DataProvider { weak var delegate: DataProviderDelegate? func fetchData() { let data = "Some data fetched from serv..
UIKit 에서 UI 구성하는 두가지 방법 (스토리보드 , 코드) UIKit 에서 UI 를 구현하는 방법은 스토리 보드를 사용하는 방법과 코드로 작성하는 방법 두가지가 있다. 각각의 장단점을 알아보자 스토리보드로 UI 구현하기 장점 시각적 편의성 : 스토리보드를 사용하면 시각적으로 UI를 설계할 수 있다. 인터페이스 빌더를 통해 드래그 앤 드롭으로 요소를 배치하고 연결할 수 있어 개발자들이 빠르게 UI를 구현할 수 있다. 디자이너와 협업 용이 : 디자이너와 협업 시 디자이너가 스토리보드를 사용하여 UI를 설계하고 개발자는 그것을 코드로 연결하거나 수정할 수 있다. 시각적 피드백 : 스토리보드를 사용하면 디자인 변경 사항에 대한 미리보기를 쉽게 할 수 있다. 단점 복잡성 관리 어려움 : 스토리 보드의 크기..
옵셔널 옵셔널은 Swift 언어의 중요한 기능 중 하나 이다. 옵셔널은 값이 존재할 수도 있고 존재하지 않을 수도 있는 값을 나타낸다. 이를 통해서 nil 값이 발생할 수 있는 상황에서 안전하게 코드를 작성할 수 있다. 옵셔널의 개념 두가지 값이 존재하는 경우 : 변수나 상수에 유효한 값이 할당된 경우를 나타낸다. 값이 존재하지 않는 경우 : 변수나 상수에 nil 이 할당된 경우를 나타낸다. 옵셔널은 ? 기호를 사용하여 선언되며, 예를 들어 Int? , String? 과 같은 형태로 사용된다. 옵셔널 해제(Optional Unwrapping) 옵셔널 변수에 접근하고 실제 값에 접근하기 위해서는 옵셔널 언랩핑이 필요하다. 옵셔널 바인딩(Optional Binding) : 옵셔널 바인딩은 옵셔널 변수에 대해..