본문 바로가기

전체 글

(426)
[iOS] Combine_Async_Programming - Publishers & Subscribers Combine에 대한 기초와 개념을 알아봤으니 이제 본격적으로 핵심에 대해 알아보도록 할게요. 이번 챕터에서는 Publisher를 만들어보고 Subscriber를 이용하여 해당 Publisher Chain들을 구독해보도록 합니다. Hello Publisher Combine의 중심에는 Publisher 프로토콜이 존재합니다. 이 프로토콜 내에는 하나 혹은 그 이상의 구독자들에게 시퀀스를 전달할 수 있는 타입이 되기 위한 요구사항이 명세되어 있습니다. 즉, Publisher는 값을 가지는 이벤트를 방출할수 있는 타입입니다. public func example(of description: String, action: () -> Void) { print("\\n--- Example of:", descriptio..
[iOS] Combine_Async_Programming - Hello, Combine! 이 문서는 Combine Framework를 소개하는 것을 목표로 제작되었습니다. Combine framework는 잠재적인 여러 delegate 콜백 또는 completion handler을 대신하여 선언적 방식의 접근을 통해 앱의 이벤트 처리를 도와줍니다. 주어진 이벤트 시퀀스로 부터 단일 Processing 체인을 생성하고 이에 여러가지 다양한 기능을 제공하는 Operator를 접목하여 데이터들을 가공하고 처리할수 있습니다. 실제로 코드를 작성해보기 이전에는 다소 추상적으로 들릴수 있으나 아래 예제를 통해 직접 Combine 익혀보도록 합시다! Asynchronous Programming 단일 스레드를 사용하는 언어에서는 한 줄 한 줄 순차적으로 코드가 실행됩니다. 마치 아래의 의사코드 처럼요. b..
[iOS] TabBarController With Coordinator-Pattern TabBarController With Coordinator-Pattern (본 내용은 공부 목적으로 작성되었습니다. 잘못되거나 틀린 내용이 있다면 댓글 남겨주시면 감사하겠습니다.) 안녕하세요! 이전 시간에 간단한 예제와 함께 살펴봤던 Coordinator에 이어 이번에도 Coordinator에 대해 알아보도록 하겠습니다. (이전 게시글을 안보신 분이 계시다면 Coordiantor 패턴을 한 번 참고해주세요 :) ) 바로 본론으로 들어가도록 하겠습니다. 이전 시간에는 NavigationController만을 사용하여 간단히 화면을 전환하는 예제를 통해 Coordinator(이하 코디네이터) 패턴에 대해 알아보았는데요, 오늘은 UITabBarController와 UINavigationController 모..
[iOS] Coordinator Pattern Coordinator 오늘은 Coordinator에 대해서 공부해보고자 합니다. Coordinator란 무엇을 의미하는지, 또 어떤 역할을 하는지 먼저 알아보도록 할꼐요! Coordinator 란? Coordinator 패턴을 소개한 Soroush Khanlou는 코디네이터를 아래와 같이 설명하고 있습니다. A Coordinator is an object that bosses one or more view controllers around. Taking all of the driving logic out of your view controllers, and moving that stuff on layer up is gonna make your life a lot more awesome. 하나 이상의 뷰 ..
[iOS] [Swift] Arrays Arrays 배열과 변이성 배열은 Swift에서 가장 빈번히 사용되는 collection 타입입니다. 여느 프로그래밍 언어에서 제공하듯 배열은 동일한 타입의 원소들에 대한 컨테이너이며 순서를 갖는다는 특징이 있습니다. 일반적으로 index를 통해 배열 내 각각의 원소들에 접근이 가능하죠. // Fibonacci numbers let fibs = [0, 1, 1, 2 ,3, 5] 위와 같은 배열에서 append(_:) 를 이용하여 원소 추가를 시도하고자 한다면 컴파일 에러가 발생합니다. 위 배열을 let 예약어를 통해 상수값으로 정의되었기에 불변성을 지니기 때문입니다. 만일 우리가 변이성을 갖는 배열을 생성 하고 싶다면 아래와 같이 var 예약어를 통해 변수를 정의하여 사용하면 됩니다. var mutabl..
[iOS] [Swift] The Swift Programming Guide - 4.제어문 (Control Flow) 제어문 (Control Flow) Swift 에서는 while, if guard, switch, for-in 등 많은 제어문을 제공합니다. For-In 문 (For-In Loops) for-in 문은 배열, 문자열, 숫자 등을 순차적으로 순회하기 위하여 사용합니다. let names = ["Anna", "Alex", "Brian", "Jack"] for name in names { print("Hello, \(name)!") } // Hello, Anna // Hello, Alex // Hello, Brian // Hello, Jack Dictionary 타입을 이용하여 반환된 Key-Value 쌍으로 구성된 튜플을 순회하여 제어할 수도 있습니다. let numberOfLegs = ["spider": 8..
[iOS] [Swift] The Swift Language Guide - 3. 콜렉션 타입 (Collection Types) 콜렉션 타입 (Collection Types) Swift 에서는 콜렉션 타입으로 배열, 셋, 사전 세 가지를 지원합니다. 배열 (Array) 배열 타입은 Array로 기재할 수 있으며 축약형으로 `[Element]` 형태로 사용할 수 있습니다. 빈 배열의 생성 아래와 같이 Int 배열 타입의 빈 배열을 생성할 수 있습니다. var intArray = [Int]() intArray.append(3) // 배열에 3을 추가하였습니다. intArray = [] // 배열을 재초기화 하였습니다. 배열의 아이템 타입은 그대로 Int로 유지됩니다. 기본 값으로 빈 배열 생성 repeating 메소드와 count 메소드를 이용하여 기본 값으로 빈 배열을 생성할 수 있습니다. var threeDoubels = Arra..
[iOS] [Swift] The Swift Language Guide - 2. 문자열과 문자(String and Characters) 문자열과 문자 (Strings and Characters) Swift의 String 은 Foundation 프레임워크의 NSString 이 bridge 된 타입이기 때문에 NSString의 메소드를 String 에서 또한 사용이 가능합니다. 여러줄 문자열 리터럴 Swift에서 여러줄로 구성된 문자열을 사용하고 싶은 경우 큰 따옴표 3개(""")로 묶어서 표현할 수 있습니다. let quotation = """ The white Rabbit put on his spectacles. "Where shall I begin, Please your Majesty?" he asked. "Begin at the beginning," the king said gravely, "and go on till yo ucome..