목록전체보기 (64)
GGURUPiOS
Properties ( 프로퍼티 ) 프로퍼티는 값을 특정 클래스, 구조체 또는 열거형과 연결함 저장 프로퍼티(Stored Properties)는 인스턴스의 일부로 저장하는 반면 계산된 프로퍼티(Computed Properties)는 저장하는 대신 계산함 저장 프로퍼티 클래스와 구조체에서만,계산된 프로퍼티는 클래스와 구조체 열거형 모두에서 제공 됨 또한 프로퍼티 옵저버를 정의해서 값이 변할 때마다 모니터링이 가능 함 프로퍼티 래퍼를 사용하여 여러 속성의 getter 밑 setter 에서 코드를 재사용할 수도 있음 저장 프로퍼티 ( Stored Properties ) 저장 프로퍼티는 단순히 값을 저장하고있는 프로퍼티임 let, var 키워드를 이용해서 선언해서 사용 가능 초기 값을 설정하고 수정할 수도 있음..
Structures and Classes ( 구조체와 클래스 ) 클래스와 구조체는 코드를 조직화 하기 위해 일반적으로 사용함 다른 언어와 다르게 인터페이스 및 구현 파일을 만들 필요가 없음 단일 파일에서 정의하고 클래스 또는 구조체에 대한 외부 인터페이스는 다른 코드에서 사용할 수 있도록 자동으로 제공 됨 클래스의 인스턴스는 전통적으로 객체라고 함. 그러나 스위프트의 구조체와 클래스는 다른 언어보다 기능면에서 인스턴스에 가까움. 그래서 이 장에서는 인스턴스로 부름. 구조체와 클래스 비교 스위프트의 구조와 클래스는 공통점이 많음. 값을 저장하기 위한 프로퍼티 정의 기능을 제공하기 위한 메소드 정의 subscript 문법을 이용해 특정 값을 접근할 수 있는 subscript 정의 초기 상태를 설정할 수 있는..
Enumerations ( 열거형 ) 열거형은 관련된 값으로 이루어진 그룹의 공통의 형임 타입 세이프티를 보장하는 방법으로 다룰 수 있게 해줌 열거형은 1급 객체형 이어서 계산된 프로퍼티를 제공하고 초기화를 지정하거나 초기 선언을 확장해 사용할 수 있음 열거형 문법 enum SomeEnumeration { // enumeration definition goes here } 일반적으로 위와 같이 작성한다 enum CompassPoint { case north case south case east case west } /* 공식문서에서 열거형은 다른언와 달리 기본적으로 정수 값이 할당되지 않는다. north,south,east,west는 0,1,2,3 이라는 값을 가지지 않으며, 각 case는 그냥 고유한 ..
Clean Architecture + MVVM Clean Architecture + MVVM 에 대해 알아보자 아래는 원문 링크출처임 https://tech.olx.com/clean-architecture-and-mvvm-on-ios-c9d167d9f5b3 기본규칙 기본적인 규칙은 내부 레이어에서 외부 레이어로의 의존성을 가지지 않는다는 것임 (Clean Architecture 의 기본 룰 Dependency Rule 과 동일) 기본설계 Clean Architecture + MVVM 에서는 크게 3개의 레이어가 있음 Domain Layer : 가장 안쪽의 원 ( Use Cases, Entity 를 포함 ) Presentation Layer : UI(View) + ViewModel ( UI에는 UIView..
Clean Architecture 몇 번 들어보기만 했던 클린 아키텍처.. 최대한 알아듣기 쉽게 정리해보자! 클린 아키텍처란 로버트 C. 마틴이 제안한 아키텍처임 기본적인 구조는 아래의 그림과 같음 그림만 봐도 어질어질 하다 하나씩 뜯어보기 전에 이 아키텍처의 규칙에 대해 알아보자. 기본 전제사항 의존성(Dependency) 위의 그림에서 원의 안쪽 으로 들어갈수록 고수준(higher-level) 바깥 쪽의 원은 매커니즘이고 안쪽의 원은 정책(policies) 매커니즘: 구체적이고 기술적인 측면에서 구현에 집중되는 부분 (DB접근, 네트워크 통신 등) 정책: 동작이나 결정을 규정하는 지침이나 규칙, 보다 추상적인 개념 (보안 정책, 인증 및 권한 부여) 의존성 규칙(Dependency Rule) 소스코드..
MVVM ( Model - View - ViewModel ) MVVM에서 ViewController 는 View 로 취급 View와 Model사이에 의존성을 낮춤 IOS 에서의 ViewModel? View 와 그 상태를 UIKit에 독립적으로 표현한 것 ViewModel 은 Model 의 변경 사항을 호출하고 업데이트 된 Model로 자체 업데이트 하며 View 와 ViewModel 사이에 바인딩 되어 있으므로 뷰가 자동으로 업데이트 됨 바인딩(Binding)? View와 ViewModel 사이의 양방향 데이터 흐름 ( 쉽게 말하면: 데이터가 바뀌었으니 뷰를 업데이트, 터치 이벤트를 받았으니 데이터를 업데이트 등 ) Swift 에서는 따로 편리한 바인딩 수단이 없음 ( SwiftUI에서는 combine ..