[UIKit] CustomView
·
🍎 Dev/UIKit
새싹에서 후반기 프로젝트를 개발할 당시 CustomView를 많이 사용하게 되어서 정리하게 되었다.주로 코드베이스로 UI를 그려왔기 때문에 해당 글에선 코드 베이스 + SnapKit 기반으로 customView를 만드는 방법을 다룰 예정이다.        커스텀 뷰를 왜 사용할까❓ 우선 내가 CustomView를 사용했던 가장 큰 이유는 재사용성 때문이었다.위 캡쳐 이미지처럼, 반복되는 UI 요소가 많은 화면을 그릴 때 매번 UI와 관련된 코드를 작성하면 굉장히 비효율적일 수 밖에 없다. 폰트를 바꿔야한다면?포인트 컬러를 바꿔야한다면?버튼의 코너 레디어스를 변경해야한다면? 동일한 구성의 코드를 일일이 찾아서 수정한다면, 반복되는 뷰의 수가 많을 수록 수정의 굴레에 빠질 수 밖에 없으니까. 또한, 부분적으..
[UIKit] 앱의 생명주기
·
🍎 Dev/UIKit
✔︎ 생명주기 (Life Cycle) 생명주기란, 앱이 최초로 실행되는 시점부터 종료되는 시점까지의 상태를 의미한다.그렇다면 이런 앱의 상태가 무엇인가 하면, "the current state of your app determines what it can and can’t do at any time." 즉, 현재 시점에서 앱이 무엇을 할 수 있느냐를 결정 짓는 것을 뜻한다. 앱을 개발 및 사용을 하다보면 사용중인 앱을 백그라운드로 잠시 보낼 때도 있고 (카톡으로 받은 계좌번호를 복사하고, 그대로 은행앱을 켜서 붙여놓는다거나 하는 상황), 백그라운드에 둔 채로 해당 앱을 계속 사용할 때도 있고 (유튜브 뮤직을 사용중인 채로 다른 앱을 메인으로 사용하고 있을 수도 있고), 포그라운드 상태로 그 앱을 이용할 ..
[Error] object has been deleted or invalidated.
·
🍎 Dev/Issue
⚙️ 환경 - iOS 16이상 - Swift 5.9 - Xcode 15 💻 문제상황 - 개인앱 프로젝트 진행 중 diffableDatasource로 컬렉션뷰 활용하는 UI를 사용 중이었고, Realm에서 create는 잘 되는데 delete를 하려고 하면 delete 팝업창에서 앱이 터지며 'object has been deleted or invalidate'라는 오류가 CollectionView가 있는 VC의 snapshot을 찍는 부분에서 났다. - '이미 삭제된 개체인데 왜 접근해?' 의미의 오류였는데, 객체가 한 개일 땐 문제없이 구현이 되었으나 두 개 이상부터는 삭제 시 위와 같은 오류 뜨며 앱이 멈췄다. ✏️해결방안 - 처음엔 realm과 관련된 문제인 줄 알고 realm을 사용한 코드를 모두..
[UIKit] Enum with Reusable VC
·
🍎 Dev/구현
⚙️ Setting- iOS 16 ↑- Swift vesrion 5.9- Xcode version 15 🔖 Background Info- During the development of my first app, Zickwan, I encountered a challenge: the UI design and features of the writing and editing view controllers were identical. Creating two separate view controllers wasn't ideal for efficient memory management.  ✏️ Steps- To achieve reusable views, enums proved to be a valuable tool..
🌱 7주차: URLSession, Access Control, ARC
·
🌱 SeSAC iOS 3기
7주차 기록: URLSession, Access Control, ARC 🧐 무엇을 배웠나? - 코드 쪼개기 (Base ViewController, View, TableView, CollectionView) - 역으로 값전달 - Access Control 접근 제어자 - WKWebView - URLSession - ARC - Any vs AnyObject : Any (모든 타입을 받음), AnyObject (클래스에서만 프로토콜을 정의할 수 있도록 제약) (+) viewController Naming 하는 법: main, detail 같은 이름 짓기는 지양하기. 훗날 업데이트 과정에서 그 역할이 바뀔 수도 있기 때문에 다른 이름을 지을 것을 고려해볼 것. 🔨 예제 - Photogram - Media Pro..
🌱 6주차: NotificationCenter, CLLocationManager, MKMapView, UIPageViewController
·
🌱 SeSAC iOS 3기
6주차 기록: NotificationCenter, Map, UIPageViewController 🧐 무엇을 배웠나? - NotificationCenter - CLLocationManager, MKMapView (위치 권한) - UIPageViewController - Storyboard 없이 코드베이스로 UI만들기 (snapKit 사용) - 카메라 권한 + 갤러리 권한 ( UIImagePickerController, UIFontPickerViewController, UIColorPickerViewController) - 제네릭 : 타입에 유연하게 대응하기 위한 요소 🔨 예제 - 테이블뷰를 활용해서 만들기 - onboardingViewController 만들기 - CLLocationManager, MKMa..