목록SwiftUI (51)
기어가더라도 제대로

- Protocol 의 생성과 사용 - Opaque(불투명) 반환 타입의 사용 프로토콜이란? 데이터 타입에게 기대하는 기능을 정의 Swift 식으로 하는 계약 앱의 나머지 부분에서 이 프로토콜을 따라야함 실제 구현은 고려하지 않고 "이 타입은 이 기능을 따를거야~" 라고 명시 예시 출퇴근을 하는 사람을 시뮬레이션 하는 코드가 있다고 가정 이 사람은 다양한 교통 수단을 이용해서 "통근" 이라는 기능을 수행해야함 기차, 차, 오토바이, 공유 킥보드, 비행기 등 무슨 교통 수단을 타더라도 다음의 두 기능은 수행해야함 어떤 수단을 타는지보다 "통근"을 "얼마의 시간" 동안 했다는 것이 중요 새로운 프로토콜 타입이므로 가장 앞 대문자를 쓰는 캐멀케이스 사용 이 프로토콜이 수행해야하는 행동(메서드)을 리스트업 구..
배열 배열은 스트링, 정수, 더블 처럼 고유한 자료 타입이다. 인덱스로 해당 자리에 있는 값을 호출한다. 실제하는 인덱스 바깥의 인덱스로 호출을 하면 크래시가 난다. .append() 로 추가하는데, 기존에 있는 데이터와 같은 타입의 데이터여야한다. swift는 자료형이 섞이는 것을 좋아하지 않는다. Array가 자신이 가지고 있는 범위 밖을 요청할 떄 에러를 내는 이유는 무엇인가? 없는 범위를 요구하면 에러를 내는것이 데이터가 없음에도 잘못된 데이터를 내는 것보다 낫다. Dictionary 배열이 순서를 지키는 데이터를 저장하는데 최적의 선택이 될 수 있지만, 그 자리에 값이 있음을 항상 보장하지는 않는다. 만약 array[2] 를 요구했는데 그 배열이 조작되서 아이템의 개수가 2개밖에 없다고 하면 어..
MVVM ? UI 코드와 비 UI 코드를 분리하기 위한 아키텍쳐 패턴 모델 - 뷰 모델 - 뷰로 이루어 진다. 주로 반응형 로직을 담고 있는 SwiftUI 나 RxSwift 와 함께 썼을 때 그 맛이 배가 된다. Model 데이터와 관련된 코드를 담는다. 구조체, 네트워크 로직, JSON 파싱 코드 등이 포함된다. View 와 ViewModel을 전혀 모르는게 가장 좋다. View 앱의 UI에 대한 코드를 담고 있는 계층 디자인적 요소 ViewModel 로 부터 데이터를 어떻게 가져올지, 배치할지 결정 ViewModel 의 어떤 메서드를 사용하는지도 간혹 있다. View 는 재사용성이 강조된다. 컴포넌트를 적당히 잘 나누어 중복 코드를 줄이는 것이 중요하다. View 는 Model 을 직접 소유하지 않아..