IOS (51) 썸네일형 리스트형 Swift - Combine VS RxSwift 1. combine VS RxSwift Reactive 프로그래밍 이라는 점의 공통점을 가지고 있다. Rx는 iOS 이상부터, Combine는 iOS 13이상부터 사용가능하다. Rx는 Third party framework인 반면 Combine은 애플에서 만든 framework 이다. 그리고 Rx는 Rxcocoa(UiKit)에서 Combine은 SwiftUI와 UIBinding을 하도록 만들어져있다. Combine RxSwift Publisher Observable Subscriber Observer Cancellable Disposable CurrentValueSubject BehaviorSubject PassthroughSubject PublishSubject eraseToAnyPublisher as.. Swift - UITableView + ListClick 오늘은 테이블뷰에 간단하게 클릭 이벤트를 줄예정이다. 테이블뷰를 가지고있는 팝업을 띄워 각각의 리스트는 오직 하나의 아이템만 클릭할수 있게 만들어놨다. 해당 아이템은 다시 클릭하면 해제 할수 있게 만들어 일반적으로 떠오르는 팝업형 리스트뷰를 만들어보자. 결과 먼저 보고 들어가겠습니다.. 기본적인 테이블뷰 구성하는 부분은 제외 했습니다. 1. 결과 2. TableViewController import UIKit import RxSwift import RxCocoa import RxGesture protocol TableViewDelegate { func selectSnack(snack : String) } class TableViewController: UIViewController { @IBOutlet .. Swift - Property Wrapper 오늘은 Property Wrapper 라는 것을 알아보는 시간을 갖도록 하겠습니다 연산 프로퍼티(Computed property)의 getter, setter를 기본으로 가진 구조체(Property)를 Property wrapper 라고 합니다. 구조체 상에서 반복되는 로직이 있을경우에 프로퍼티 자체에 연결할 수 있어 보일러플레이트 코드와 코드 재사용성을 높혀줍니다. 예시1 @propertyWrapper struct CutTitle { private var title: String = "" var wrappedValue: String { get { if title.count > 2 { return String(title[...title.index(title.startIndex, offsetBy: 2)]).. Swift - Reactive Programming (Rx) Reactive Programming 은 반응형 프로그래밍이라고도 하며, 현재 가장핫(?) 한 기술중 하나이다. 검색하면 정말 좋은 자료들이 많지만 저도 숟가락 하나 얹어 보겠습니다. 그래서 Reactive Programming 이 무엇이냐? ReactiveX에서 observer는 observable 을 구독한다. observer는 observable이 방출하는 모든 아이템(들)에 대해 반응한다. 비동기 프로그래밍을 더욱 쉽게 개발 하기 위한 라이브러리이며 기존 명령형 프로그래밍이 아닌 선언형 프로그래밍으로 개발이 가능하다. 값이나 오브젝트 의 대한 내용을 구독 함으로써 값의 변화에 대응 할수가 있다. Observable - 옵저버블 (Observable) 이란 데이터 스트림을 생성하는 객체를 말한다. .. Swift - ReactorKit / ErrorHandling https://moonggi-dev-story.tistory.com/49 글에 이어서 ReactorKit 에 대해 적도록 하겠습니다. Http 통신중에 발생할수 있는 오류에 대해 ReactorKit으로 처리할수 있는 방법을 적겠습니다. func mutate(action: Action) -> Observable { switch action { case .http: return Observable.concat([ Observable.just(Mutation.setLoading(true)), setHttp().map{Mutation.setResult($0)}, Observable.just(Mutation.setLoading(false)) ]) } } 해당 프로세스는 로딩(true) -> Http 통신 완료후 .. Swift - iOS 면접 질문 리스트 해당 면접 질문 리스트에 대해 노션으로 작업 중에 있습니다. 많은분들의 블로그와 지식을 참고하여 한개한개씩 작성중에 있습니다. 매주매주 업데이트 중입니다! https://moonggi-notepad.notion.site/iOS-07242d5af9ac4c279abf74e254020032 iOS 면접 질문 리스트 iOS moonggi-notepad.notion.site Swift - UICollectionView + Paging CollectionView 에 Paging 기능을 추가해서 이미지 관련 배너 및 썸네일을 만들때 유용하게 사용 할수 있다. 좀더 간단하게 만들기 위해 RxSwift, RxCocoa를 이용했다 1. ViewController import UIKit import RxCocoa import RxSwift class ViewController: UIViewController { @IBOutlet weak var mCollectionView: UICollectionView! @IBOutlet weak var mCountText: UILabel! var imageArray = ["image1", "image2", "image3", "image4"] let lineSpacing: CGFloat = 20 let cel.. Swift - SceneDelegate AppDelegate.swift, SceneDelegate.swift 파일은 Xcode 상에서 새로운 프로젝트를 생성할때 만들어지는 파일이며 앱의 상태 변화 및 전역변수 선언, 기타 이벤트 처리 를 할수있는 파일이다. 1. AppDelegate.swift (iOS 13 버전 이전) - 앱 안에서 상태 변화에 응답하면서 초기에 앱 컨텐트를 그리는 역할을 수행한다 -> iOS 13 버전부터는 일부 기능이 SceneDelegate로 넘어 갔다. - 생명주기 관련 메소드 import UIKit @main class AppDelegate: UIResponder, UIApplicationDelegate { // 애플리케이션이 실행된 직후 사용자의 화면에 보여지기 전에 호출 func application(_ appl.. 이전 1 2 3 4 5 6 7 다음