안녕하세요. 밀쿄입니다. 오늘은 두 번째 시간입니다. 오늘은 SwiftUI로 프로젝트를 생성해보고 간단히 살펴보겠습니다. 생성된 파일을 보면 ContentView.swift가 있는데 기존에 StoryBoard로 프로젝트를 생성하면 있던 ViewController.swift에 해당합니다. ContentView부터 보면 재미있을 것 같지만 SceneDelegate.swift에 가면 특이한 부분이 있어서 그것부터 보겠습니다. UIHostingController라는 처음보는 녀석이 있을겁니다. UIHostingController의 선언부를 보면 다음과 같이 되어있습니다. open class UIHostingController : UIViewController where Content : View 일단 눈에 띄는..
안녕하세요. 밀쿄입니다. 오늘부터 조금씩 SwiftUI에 대해서 알아봅시다. 우선 이 프레임워크의 탄생 배경부터 살펴봅시다. 현재 iOS의 앱구현에는 UIKit이 macOS 앱 구현에는 AppKit, watchOS에는 WatchKit이 사용되고 있습니다. 물론 밑바탕에 있는 Foundation이나 그래픽 영역을 공유하지만 유저 인터페이스 영역에는 앞에서 말한 것 처럼 각자 다른 프레임워크를 사용합니다. 물론 앞에서 언급한 프레임워크들은 모두다 Objective-C 기반의 UI프레임워크 입니다. 그렇기에 Swift 언어로 개발하면서 Objective-C와 상호작용을 위해서 여러가지 작업을 해주고있습니다. 우리가 흔하게 붙이는 함수 앞에 붙이는 @objc가 그 대표적인 예로 들수있습니다. 그리고 Swift가..
안녕하세요. 밀쿄입니다. 오늘은 코드로 화면 짤 때 조금 더 편하게 짜는 방법에 대해 알아보겠습니다. 코드르 화면 짤 때 화면을 미리 볼 수 없어서 많이 불편했습니다. 실제로 화면 하나를 수정하기 위해서 수정 -> 빌드를 몇 번이나 반복한 적도 있습니다..( 이건 제가 실력이 없어서 그럴지..) 그치만 XCode 11이 나오고 SwiftUI에서 사용할 수 있는 XCode의 Canvas뷰? Canvas모드?를 활용하면 조금 더 편하게 코드를 짤 수 있습니다. 이 팁을 처음본건 작년 Let's Swift였는데 그 때만 해도 캔버브뷰만 틀면 제 엑스코드가 자주 먹통이 되어버려서.. 포스팅을 안하고 있었는데요..11.4부턴 조금 덜 먹통이 되길로 남겨봅니다.. 위에서 말했듯이 SwiftUI에서 사용할 수 있는 ..
오랜 시간 기다렸던 포스팅입니다. MVC에서 MVVM으로 만들어보는 프로젝트 입니다. 중간에 이 글이 중단된다면 저는 무기한..귀차니즘에 빠진걸로.. https://milyo-codingstories.tistory.com/40 MVC(Model-View-Controller)? 안녕하세요. 밀쿄 입니다. 오늘은 미루고..미뤄왔던 포스팅을 해볼까합니다. 이 블로그 시작하며서 써야지 했던게 벌써 몇달이 흐르고 흘렀네요. 이 주제에 대해 자신이 없기도 했고 ( 지금도 없어요 지적 해주세.. milyo-codingstories.tistory.com MVC에 대한 설명은 여기 있습니다. 모자란 설명이지만 적혀있습니다. 자 그러면 시작하겠습니다. (뷰 코드가 들어가면 길어지니 생략하겠습니다.) 먼저 모델을 만들어줄껍..
Publisher 시간이 지남에 따라 하나 이상의 값을 방출할 수 있는 Protocol 입니다. public protocol Publisher { associatedtype Output associatedtype Failure : Error func receive(subscriber: S) where S : Subscriber, Self.Failure == S.Failure, Self.Output == S.Input } Output: 내보내는 값의 타입 Failure: 내보내는 에러의 타입 ( 단, Error 프로토콜 채택 필수) receive(subscriber:) Subscription을 생성해서 Subscriber에게 값 전달 합니다. 이 때 이 Subscription이 실제적인 작업과 값 전달을 ..
안녕하세요. 밀쿄입니다, 오랜만에 Combine 관련으로 글 쓰는 것 같네요. 오늘은 결합 연산자 중에 제일 많이 사용하게 되는 CombineLatest에 대해서 알아보겠습니다. 일단 조금 이상한 예제지만 CombineLatest 전후를 비교하기 위해서 예제를 하나만 비교해보겠습니다,. 두 개의 배열이 있고 이 배열이 count가 일정 갯수이상 되면 콘솔창에 메세지를 출력하는 예제입니다. 먼저 콤바인 없는 상태입니다. class TestClassWithoutCombine { var items = [String]() { didSet { self.isPass = items.count > 3 && items2.count > 1 } } var items2 = [String]() { didSet { self.is..
안녕하세요. 밀쿄 입니다. 오늘은 우리가 무심코 지나치게 되는 UIWindow에 대해서 알아보겠습니다. 저는 코드로 화면을 짜기 때문에 사실 새 프로젝트 파일을 만들 때마다 UIWinodw를 생성해서 사용하는데 매번 지나치고 가는 것 같아서 이 기회에 정리해보고자합니다, 기본적으로 UIWindow는 뷰나 객체들에게 이벤트를 전달하는 역할을 합니다. 다시말해서 View Controller와 함께 이벤트를 처리하고 앱 운영에 필수적인 다른 많은 작업을 수행하게 되는녀석입니다.' 이러한 UIWIndow는 기본적으로 제공해줍니다. 단, 스토리보드를 사용할 때만 말이죠 참고로 이 때 AppDelegate나 SceneDelegate에 UIWindow타입의 프로퍼티가 존재해야합니다, 그래서 우리가 AppDelegat..
안녕하세요. 밀쿄 입니다. 오늘은 flatMap, compactMap에 대해서 알아보겠습니다. flatMap에 쓰임새에 대해서 한 번 보겠습니다. let language = [["C", "C++"], ["Objective-C", "Swift"], ["Java", "Kotlin"]] print(language.flatMap({ $0 })) //결과 //["C", "C++", "Objective-C", "Swift", "Java", "Kotlin"] Sequence에서 각 요소들도 Sequence일 때 Elements를 flat하게 만들어줄 때 쓰곤했었죠. 스위프트 오픈 소스를 보면 다음과 같이 구현되어있습니다. extension Sequence { public func flatMap(_ transform:..
- Total
- Today
- Yesterday
- 유니온파인드
- 자료구조
- 콤바인
- combine
- iOSCombine
- ios
- 스위프트유아이
- ErrorHandling
- 현업이그리운
- BBIK
- replaceNil
- 결합연산자
- 스위프트
- CombineLatest
- AutoLayout
- MVC
- UIViewControllerRepresentable
- Queue
- SEQUENCE
- 스유
- 스택뷰
- SwiftUI
- compactMap
- swift
- 알고리즘
- Just
- 텔큐온
- programmers
- 삨
- Apple
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |