apple 216

[iOS/Swift] init과 super.init에 대해서 알아보자. 🤔

init과 super.init에 대해서 알아보자. ✅ init과 super.init에 대해서 알아보자. 개발을 하면서 테스트코드 작성을 위해서 init으로 프로퍼티들을 초기화 시키다 보니 init에 대해서 궁금증이 생겼다. 그럼 정리 ㄱㄱ SwiftUI를 통해서 코드를 작성해 보았음 ✅ init에 대해서 큰 틀만 잡고 가자면 1. 초기화 메소드의 이름은 init으로 통일된다. 2. 매개변수의 개수, 이름, 타입은 임의로 정의할 수 있다. 3. 매개변서의 이름과 개수, 타입이 서로 다른 여러 개의 초기화 메소드를 정의할 수 있다. 4. 정의된 초기화 메소드는 직접 호출되기도 하지만, 대부분 인스턴스 생성 시 간접적으로 호출된다. ✅ 아래 코드를 보자. class Student { var age: Int v..

iOS 오픈소스 라이선스 페이지 (뱅크샐러드)

iOS 오픈소스 라이선스 페이지 (뱅크샐러드)오픈소스 라이선스 페이지를 만들어보고자 함.뱅크샐러드에서 오픈소스에 채용 이스터에그를 넣어두었는데 사이드 프로젝트에서도 도입하고 했고, 인턴하는 회사에서도 넣자고 해서 겸사겸사 만들어보고자 함.코드 파일아래는 샘플 파일     ✅ 환경 Swift 5 Xcode 13 RxSwift 6 SnapKit Then 폴더 구조간단한 페이지라 MVC 기반으로 빠르게 작업하고자 함.  🟠 UIViewController+.swiftimport Foundationimport UIKitimport Thenextension UIViewController { func showOpenSourceWebVC(data: OpenSourceModel) { let vc =..

SwiftUI Info.plist가 없을 때

Info.plist가 없을 때 점점 SwiftUI가 OS별 이슈도 줄어들고 쓸만한 것 같음. 기존에는 UIKit으로 프로젝트를 생성해서 필요한 일정 부분에 SwiftUI를 도입하는 형태였는데, SwiftUI로 아예 프로젝트를 생성하니까 Info.plist가 안보임. 같은 Xcode 버전인데 UIKit으로 생성할 때랑 SwiftUI로 생성할 때랑 달라서 조금 당황ㅎ .. 이 설정이 config? 같은걸로 빠져서 대격변이 일어난건가 싶었는데 그건 아니였음. 완전히 새로운 파일을 교체하는 방법과 기존 파일에서 추가하는 방법 두가지를 알아보고자 함. 기존 파일을 활용하는 방법 타겟에서 저기에 위치함.  완전히 새로운 파일로 교체하는 방법파일 생성할 때처럼 Info.plist 파일을 생성해주기나는 Apperanc..

XCTest Stubber

XCTest Stubber테스트코드를 작성하는데 Stubber라는게 있대서 알아보고자 함.  오픈소스 링크https://github.com/devxoul/Stubber GitHub - devxoul/Stubber: A minimal method stub for SwiftA minimal method stub for Swift. Contribute to devxoul/Stubber development by creating an account on GitHub.github.com  배경 네트워크 상황과 관련한 코드를 작성하고 있는데, 이를 활용해 테스트 환경을 더 손쉽게 구축하여 본질에 집중하고자 함.테스트 코드를 작성하면서 네트워크 상에서는 너무 변수가 많은데 이를 하나하나 다 가정하고 테스트 코드를 ..

[XCTest] RxTest 와 RxBlocking에 대해서 알아보자

RxTest / RxBlocking ✅ 테스트에 대해서 알아보자. Rx... 얘내 도대체 어떻게 테스트할까 고민 많이 했었는데, 이런 도구들이 있다니! 여담이지만 이런거 Kuring프로젝트 하시는 분의 테스트코드 보는데 약간 치임;; Swift에서 제공하는 것만으로도 충분하다고 생각했는데 굳이 Rx를 하는게 도움이 클까?? 생각도 들지만 아무튼 공부해보자 (UIButton의 rx.tap 못쓴다고 생각하니 공부해야겠ㄷ.ㅏ) 🟠 RxTest란? Observable의 가상의 시간 개념을 주입해서 테스트하는 방법으로 가상의 시간이 다 흐를때까지 기다린 후에 이벤트를 반환할 수 있어. 각 초에 문자하나 방출한다고 가정 1초 -> "A" 2초 -> "B" 3초 -> "C" // 2sec에 B가 나왔는지 검증 ✅ R..

[XCTest] Quick 과 Nimble에 대해서 알아보자.

Quick / Nimble ✅ Quick / Nimble에 대해서 알아보자. 이번에 XCTest를 공부하다가 Quick과 Nimble이라는게 있어서 한번 다시 공부해보도록 하자. https://github.com/Quick/Nimble GitHub - Quick/Nimble: A Matcher Framework for Swift and Objective-C A Matcher Framework for Swift and Objective-C. Contribute to Quick/Nimble development by creating an account on GitHub. github.com https://github.com/Quick/Quick/tree/main/Documentation/ko-kr GitHu..

RxSwift Signal,Emit

RxSwift Signal, emit RxSwift를 사용하면서 코드 리뷰 과정에서 Signal이라는걸 보아서 공부해보자! Signal vs Driver공통점 에러를 방출하지 않고, 메인스레드에서 동작차이점Driver는 구독할 때 replay를 통해 emit이 발생Signal은 구독할 때 replay를 하지 않음   Signal은 주로 어떨때 사용할까?Signal은 replay되면 문제가 있는 스트림에 사용하면 됨.여러 코드를 살펴보는데 주로 ViewModel -> View로 가는 작업 즉, UI 관련한 것들에 Signal이 보임.개인적인 생각인데 그냥 드라이버 쓰는게 더 낫지 안을까란 생각emit은 Driver를 사용했을때 drive라고 생각정리Signal과 Driver가 주로 비교되는 것 같아서 ..

iOS Lottie 알아보기 (.json, .lottie)

iOS Lottie 알아보기 모든 걸 코드로 구현할 수 없어서 적당히 로티를 사용하는 걸로 하자. 변경로그2022년 2월 19일 03시 13분 최초 포스팅2022년 4월 29일 15시 05분Lottie AnimationView width, height 적용이 되지 않는 문제에 대한 고찰기존 샘플 코드에서 잘못된 레이아웃 수정2022년 4월 30일 16시 39분로티 이미지 색상 변경2024년 11월 15일 03시 01분dot-lottie 오픈소스 사용시 주의할 점    로티 오픈소스 사이트https://github.com/airbnb/lottie-ios/tree/master/Example/iOS/ViewControllers GitHub - airbnb/lottie-ios: An iOS library to..

Showing All Messages Undefined symbol: __swift_FORCE_LOAD_$_XCTestSwiftSupport

Showing All Messages Undefined symbol: __swift_FORCE_LOAD_$_XCTestSwiftSupport 카카오 맵 API를 사용하려고 하는데 에러가 발생함아직 초보자라서 framework, libraray 등 관련 오류가 터질때마다 해결하는데 시간이 너무 오래 걸린다 ㅠㅠ product 타겟에 오류 원인처럼 XCTests를 넣어주면 오류를 1차적으로 제거할 수 있으나 올바른 처리 방법은 아님.근데 가만히 생각해니까 테스트 프레임워크가 들어가는게 이상한거 같음.프로덕트 타겟에서 테스트 타겟으로 가야하는 부분들을 완전히 제거해 줌.  그냥 찾아보다가 rpath 관련해서 다른 오류도 있어서 하나 더 작성해 봄.  rpath도 환경 관련 이라는데 코코아팟에서 처리가능한 것..

[iOS] TTGTagCollectionView에 대해서 알아보자.

✅ 이번 시간에는 TTGTagCollectionView에 대해서 알아보자. 헤더뷰에 붙여서 사용하는 코드로 사용했었는데, 기능은 다양하니까 살펴보면 좋을듯! 근데 얘는 pod init으로 만들어야지 SPM 사용시 복잡하다고 함. https://github.com/zekunyan/TTGTagCollectionView GitHub - zekunyan/TTGTagCollectionView: Useful for showing text or custom view tags in a vertical or horizontal scrollable view Useful for showing text or custom view tags in a vertical or horizontal scrollable view and s..