Singleton Pattern 이란? 싱글톤 패턴이란, 특정 용도로 객체를 하나만 생각해 공용으로 사용하고 싶을 때 사용하는 디자인 패턴 애플리케이션 전반에 걸쳐 딱 한번만 생성되고, 어디서든지 해당 인스턴스에 접근할 수 있는 클래스 디자인 패턴이라고도 한다 같은 말이네..! 이 패턴을 사용하면 하나만 메모리에 생성되어 어디서든 사용되기 때문에 데이터를 공유하거나 특정 리소스에 접근할 때 매우 유용하다. 이렇게 사진과 같이 하나의 인스턴스에 어디든 접근이 가능해진다 🙂 Singleton Pattern 생성하기 내가 이번에 만들었던 위시리스트를 참조해 Singleton Pattern 을 한번 생성해보자 class CoreDataManager { // MARK: - 코어데이터 매니저 싱글톤 만들기 stat..
오늘은 테이블 뷰 중에서 xib 파일을 사용해서 커스텀 셀을 구성할 수 있는 방법을 처음 사용해 보았다. 처음 사용하는거라 여러번 막히다가 구글링을 통해 차근차근 다시해보니 금방 할 수 있었다. xib파일 생성 먼저 tableviewCell 파일을 만들면서 사진과 같이 xib 파일을 같이 선택해서 만들어주면 자동적으로 cell 과 연동된 xib 파일을 만들 수 있다. Custom 만들어진 xib 파일에 들어가면 cell 의 크기를 하고 있는 테이블 뷰 셀이 있는데 여기서 원하는 컴포넌트를 넣고 cell 을 구성하면 된다. 호출 만들어진 cell 내 식별자를 입력하고 VC로 넘어와 만들어둔 xib 을 불러오면 연동 완료 let nib = UINib(nibName: "TableViewCell", bundle..
오늘은 첫 팀프로젝트를 진행하기 앞서 CollectionView , segment controller 구현을 맡게되어 먼저 얘네들이 무슨 역할을 할 수 있는지 알아보고자 한다. 자세한 구현 내용은 하단의 프로젝트 일지를 통해 적고 간단한 개념정도만 기록하고자 한다 🙂 CollectionView 먼저 UICollectionView는 순서가 지정된 데이터들을 관리하고 사용자 정의 가능한 레이아웃을 사용하여 표시하는 객체이다. UICollectionView | Apple Developer Documentation UICollectionView의 구조 크게 구조는 상단에 헤더 뷰를 넣을 수 있는 공간이 있고 컨텐츠들이 들어가는 cell , 하단의 푸터 이렇게 들어가 있다. 헤더나 푸터의 경우 원한다면 생략이 가..
2024.03.19 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (1) 2024.03.21 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (2) ToDoList 만들기 (3) 오늘은 새로 배운 MVC 패턴, 클래스 간 데이터 이동 등 강의를 통해 배운 내용을 이번 과제에 한번 녹여내보고 싶어 원래 만들었던 ToDoList 를 버리고 새로 다시 만들었다. 다시 만들면서 취소선 만들기 부분이 생각보다 이해가 되지 않는 부분이 있어 다른 분의 블로그를 참고하여 새로 공부를 다시 했다. 취소선 구현 먼저 원래 사용했던 UISwitch 를 토글하여 true/false 를 구한 후 이 값을 활용하여 사용하는 법보다 UIButton 을 사용하여 select..
MVC 패턴 적용하여 테이블 뷰 구성하기 지난번 MVC 패턴의 기본 개념정도만 정리하는데 그친 반면에 오늘은 이 패턴을 직접 적용시켜 간단한 테이블 뷰를 만들어 보려고 한다. Swift Architecture , MVC 개념 정리 아키텍처(Architectuer) 애플리케이션을 설계하고 구축하는데 사용되는 구조와 패턴을 나타낸다. 모델의 구성과 동작 원리, 구성요소 간의 관계 및 시스템 외부 환경과 관계 등 포괄하여 설명하는 dongdida.tistory.com 먼저 MVC 패턴을 다시 한번 간단하게 말해보면 소스 코드 설계 기법으로써, 모델(Model) , 뷰(View), 컨트롤러(Controller) 의 핵심구조를 이용하여 애플리케이션을 설계하는 것을 말한다. 모델(Model)은 데이터를 담당하고 뷰..
NSLayoutConstraint.activate([ emailInfoLabel.leadingAnchor.constraint(equalTo: emailTextFieldView.leadingAnchor, constant: 8), emailInfoLabel.trailingAnchor.constraint(equalTo: emailTextFieldView.trailingAnchor, constant: 8), emailInfoLabel.centerYAnchor.constraint(equalTo: emailTextFieldView.centerYAnchor), emailTextField.leadingAnchor.constraint(equalTo: emailTextFieldView.leadingAnchor, const..