전체 글

Swift

[iOS] Swift initialization 알아보기 (1) - init 기초

도대체 swift는 init이 왜 이렇게 많을까..? 종류별로 하나씩 기억하기가 어려워서 정리하는 포스팅..! 우선 문서 링크는 여기 Initialization 문서에 적힌 글을 살펴보면 Initialization은 class나 struct, enum 타입의 instance를 사용할 수 있도록 준비하는 프로세스라고 정의되어있다. Initialization에는 stored property나 새 인스턴스를 사용할 준비가 되기 전에 필요한 기타 다른 설정 또는 초기화를 수행하는 작업이 포함된다. Objective-C와 다르게 init 메서드는 return 값이 없다. class 유형의 인스턴스는 사용 이후에 소멸 전에 메모리로부터 직접 해제해야 하는 것들이 있는 경우 deinit을 사용해 해제 후 deinit..

Swift

[iOS] Swift Enum - Associated Values

Associated Values enum은 rawValue로 값을 지정할 수 있지만, 한 번 지정된 값을 바꿀 수는 없다. case를 나누고 난 뒤에 하나의 case에 대해 또 다시 여러 case를 확인해야 하는 경우(하나의 case에서 여러 값을 저장해서 확인하고 싶은 경우)에는 Associated Values(연관값)을 사용해 볼 수 있다. 대충 예를 들어보면.. 카페의 메뉴를 관리하는 CafeMenu enum이 있다고 가정하자. 카페는 커피와 버블티를 팔고, 커피는 샷을 얼마나 넣을 건지를 확인, 버블티는 얼음양, 당도, 타피오카 펄의 양을 확인할 수 있다고 생각해본다. 코드로는 아래와 같이 나타낼 수 있다. case인데 괄호가 나타나다니.. 처음에 진짜 이게 뭔가 싶었다. 요 괄호 안에 들어가는 ..

Swift

[iOS] Swift Enum (열거형)

스위프트에서 enum을 자주 활용하게 되어서 정리해보는 글입니다. 우선 Swift 공식문서 링크는 여기 Syntax 주소록 화면의 구성요소를 enum으로 표현해보자. 대충 네 가지 정도를 생각해봤는데 이름, 전화번호, 생일, 주소 정도를 넣으면 괜찮을 것 같다. 그러면 이 값들을 다음과 같이 enum으로 표현할 수 있다. enum ContactInfo { case name case phoneNumber case birthday case address } enum의 이름은 대문자로 시작한다. case에 정의된 값들은 C나 Objective-C처럼 Int 값을 가지고 있지는 않다. 그냥 그 자체로 다른 값이다. 별도의 정수형이 없어도 Swift는 얘네가 다른 걸 안다. (Swift enumeration ca..

iOS

[iOS] UIView에 border 추가하기 / 모서리 둥글게 하기 - 코드, 스토리보드

매번 까먹고 매번 찾아보는 게 귀찮아서 정리하는 글입니다. UIView에 테두리를 넣어야 할 때가 생기는데, 이 때 코드로도 넣을 수 있고 스토리보드로도 넣을 수 있다. 우선 코드로 넣는 방법 부터 알아보자. 1. 코드로 Border 추가하기 간단하게 storyboard에서 UIView를 하나 추가해준 뒤에 ViewController에 outlet 연결을 해준다. import UIKit class ViewController: UIViewController { @IBOutlet weak var testView: UIView? override func viewDidLoad() { super.viewDidLoad() // 테두리 둥글게 testView?.layer.cornerRadius = 5 // 테두리 두..

iOS

[iOS] Clean Swift (VIP Pattern)

작년에 처음 Clean Swift(VIP 패턴)을 접했을 때 비즈니스 로직을 쉽게 분리해서 테스트 코드를 짜기가 용이하다는 점이 마음에 들었다. MVC 패턴을 사용할 때는 Model에 들어갈 로직도 ViewController에 넣게 되고, 그러다보면 정말로 Massive View Controller가 되기 쉬웠는데 VIP 패턴으로 코드를 짜보니까 확실히 로직 분리를 의식적으로 할 수 있었다. Clean Swift (VIP Pattern) 1. VIP (ViewController, Interactor, Presenter) Clean Swift는 VIP Component들을 활용하기 때문에 VIP Pattern으로도 불린다. VIP는 각각 ViewController - 화면 업데이트 담당 Interactor..

iOS

[iOS] MVC Pattern + 예제코드

MVC (Model - View - Controller) MVC 패턴은 Model과 View, Controller로 코드를 분리하는 디자인 패턴을 말한다. 각각의 요소들은 다음과 같은 역할을 맡는다. Model: 화면에 필요한 데이터와 Business Logic을 관리한다. View: Model이 가진 데이터를 화면에 보여준다. Controller: 모델과 뷰 객체 사이의 브리지 역할을 한다. The core app objects Figure 4 represents a fairly typical structure of a UIKit app. You provide the model objects that represent your app’s data structures. UIKit provides most..

eunjuicy
TIL