일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- combinecocoa
- xcode
- Subject
- Swift Tuist
- swift 6
- 카카오뱅크 ios
- JSON
- Tuist
- KeyPath
- realm
- swift db
- Firebase Analytics
- swift database
- Firebase
- RxSwift
- SwiftUI
- swift
- Combine
- observable
- arc
- SeSAC
- Subscribe
- ios database
- swift 5.9
- GCD
- 네트워크 통신
- ribs
- uitableviewdiffabledatasource
- Tuist Swift
- ios
- Today
- Total
목록전체 글 (87)
천원의 개발

안녕하세요. 천원입니다. 이번에 macOS Sonoma로 업데이트 하면서 Xcode 15이하의 버전은 Block이 되는데요. 실행하는 방법을 공유해 드리고자 글을 작성합니다. 먼저 응용프로그램에서 Xcode 이전 버전을 찾습니다. 패키지 내용 보기를 클릭합니다. Contents > MacOS > Xcode를 클릭해 줍니다. 터미널을 실행해둔 상태에서 원하는 Version의 Xcode를 사용합니다.

안녕하세요. 천원입니다. 이 글은 제가 Tuist를 학습하면서 여러 프로젝트를 하나의 Workspace로 관리하는 방법을 정리한 글이며 앞선 포스팅을 확인하시면 조금 더 이해하기 편하실 것 같습니다. 여러프로젝트 관리하기 먼저 Workspace를 생성할 폴더를 만들어 줍니다. mkdir 폴더명 cd 폴더명 tuist init tuist init --platform ios editing tuist edit 그러면 위와 같이 Project파일이 생성되는데 우리는 Root를 Project로 만들지 않을 테니 삭제해 줍시다. 그런 다음 Project를 대신해서 Workspace 파일을 추가해 줍니다. import ProjectDescription let workspace = Workspace( name: "Tu..

안녕하세요. 천원입니다. 최근 iOS 개발 트렌드에서 가장 핫한 'Modular Architecture'을 도입하기 위한 도구인 Tuist를 학습하고자 이 글을 작성합니다. Tuist를 처음 접해보신 분들도 프로젝트에 적용할 수 있도록 진행하겠습니다. Tuist Xcode의 프로젝트를 Swift로 생성, 관리할 수 있도록 도와주는 CLI 도구입니다. Swift를 사용해서 프로젝트를 관리하기 때문에 우리가 .xcodeproj, .xcworkspace 같은 파일들로부터 발생하는 Git conflict에 대한 걱정이 필요 없죠. 또한 관리 측면에서 더 많은 개발 편의성을 제공해 준다고 합니다. 성능적인 개선 또한 존재하는데 모듈을 static framework 형태로 만들게 되면 dynamic link가 감소..

안녕하세요. 천원입니다. Combine을 학습하면서 중요한 개념 중 하나인 Subject 정리하고자 글을 작성합니다. 1. Subject Publisher를 채택하고 있는 모습입니다. 덕분에 스트림을 생성할 수 있고, Subscriber를 통해서 방출한 이벤트를 받아올 수 있습니다. 다른 Publisher 들과 가장 큰 차이점은 send() 메서드를 사용해서 외부에서 이벤트를 주입시킬 수 있다는 점입니다. 예시 코드를 보자면 var subject = PassthroughSubject() // Subject 생성 subject.sink { value in print(value) } subject.send(2) // 2출력 원하는 시점에서 이벤트 방출이 가능하죠. 2. PassthroughSubject, C..

안녕하세요. 천원입니다. ui/unit 테스트 라이브러리인 Quick/Nimble을 학습하는 도중 TDD와 BDD개념을 정리하고자 글을 작성합니다. TDD TDD는 Test Driven Development의 약자로 테스트 주도 개발을 의미합니다. 코드를 작성 후에 테스트 케이스를 구현하는게 아닌 테스트 케이스를 먼저 작성한 후에 이를 통과하는 코드를 추가해 가는 방식의 개발 방법론입니다. TDD는 위의 그림과 같은 개발주기를 가지고 반복적으로 개발을 진행하는데 Red 단계에서는 실패하는 테스트 코드를 작성하고, Green 단계에서는 테스트 코드를 성공시키기 위한 최소한의 코드를 작성합니다. Blue 단계에서는 중복 코드 제거, 일반화 등의 리팩토링을 수행합니다. 간단하게 말하자면 실패하는 경우를 찾고,..
안녕하세요. 천원입니다. RxSwift를 사용하면서 너무 데이터 바인딩의 목적으로만 사용하는 것 같아 반성하고자 다양한 오퍼레이터들을 정리 해보려고 합니다. 자주 사용하는 오퍼레이터들은 별표를 붙여두었습니다. Transforming Observables - map ☆ 옵저버블의 각 항목을 변환하여 새로운 항목을 생성합니다. Observable.of(1, 2, 3) .map { $0 * 2 } .subscribe(onNext: { print($0) }) .disposed(by: disposeBag) // 2, 4, 6 출력 - flatMap 옵저버블의 항목을 다른 옵저버블로 변환하고 병합합니다. Observable.of(1, 2, 3) .flatMap { Observable.of($0 * 2, $0 * 4..