2024.04.02 - [◽️ Programming/T I L] - [ProJect 일지] 키오스크 (1) 2024.04.03 - [◽️ Programming/T I L] - [ProJect 일지] 키오스크 (2) 어제에 이어서 가로 컬렉션 뷰에 헤더를 넣고 홈 화면을 구현하는 것 까지가 목표였지만 홈화면을 내 생각보다 많이 타협해서 완성한 뒤 고객센터 탭까지 구현에 완료 하였다 🙂 그래도 이제 테이블 뷰와 같이 해본 작업을 또 다시 해보니 생각보다 속도가 더 나와 뿌듯한 하루 였다. 그럼 오늘 구현한 내용을 한번 보자! 먼저 컬렉션 뷰를 가로로 배치하여 스와이프를 진행하면 당연히 헤더도 내가 생각한 위에 위치할거라고 생각했다. 아무리 맞는 것 같은 코딩을 넣어도 헤더가 위에 붙는게 아니라 제일 앞에 붙..
2024.04.02 - [◽️ Programming/T I L] - [ProJect 일지] 키오스크 (1) 오늘은 내가 푸시할 깃이 꼬여버리는 바람에 하루종일 깃가지고 끙끙대다가 시간을 다 날린 기분이었다.. 그치만 이제 깃이 어떻게 운영되고 데이터가 푸시되는지 알게 되었으니 그걸로 위안을 삼아야 겠다 오늘은 키오스크에서 추가적으로 탭바가 들어가기로 했고 그 탭바에 첫화면을 장식할 홈 화면을 구현하는 역할을 맞게 되었다! 애플 온라인 샵에서 아이디어를 얻어 컬렉션 뷰를 가로로 배치하여 이미지를 넣는 과정을 진행해보려고 한다. CollectionView 가로 배치 먼저 가로로 배치하기 위해선 이전 글에서 봤던 것 처럼 UICollectionViewFlowLayout 에서 해당 내용을 손볼 수 있다. let..
처음 팀프로젝트가 시작됐다. 기대했던 프로젝트 였기에 떨리고 긴장되는 마음이었는데 진행될 수록 팀원들 덕분에 착착 순조롭게 진행되는 것 같아 점점 더 재밌어지는 것 같다 이 프로젝트가 진행되는 일지를 적어보려고 한다. 우리팀은 키오스크 만들기 중 애플 제품을 판매하는 앱을 만드는 것을 방향으로 잡고 각자의 역할을 분담에 맡았다. 나는 그 중 세그먼트 컨트롤러를 이용해 각 세그별로 컬렉션 뷰로 제품을 나열하는 기능을 구현하는 것을 맡았다. 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..