본문 바로가기

iOS43

XCTest tips and tricks that can level up your Swift testing iOS에서의 Unit Test를 위해 XCTest에 대해 알아보던 중 XCtest tips and tricks that can level up your Swift testing 이라는 블로그를 보게 되었습니다. XCTest에 대한 내용과 참고 게시물의 내용을 함께 번역 및 정리해보면 좋을 것 같았습니다. 중간중간 제가 이해가지 않는 tip들은 직접 예시코드를 작성해보면서 이해해보려고 노력해봤는데, 아직까지는 좀 더 학습이 필요한 것 같아요 :) 그럼 먼저 XCTest가 무엇인지부터 알아볼까요? What is XCTest? 먼저 애플에서는 XCTest에 대해 이렇게 말하고 있습니다. Create and run unit tests, performance tests, and UI tests for your X.. 2021. 3. 3.
Frame과 Bounds iOS 개발을 하다보면 거의 무조건 접하는 것 중 하나가 바로 frame과 bounds입니다. 저는 사실 frame과 bounds가 어떤 차이가 있는지 잘 모르고 사용했는데, 모르고 사용하니까 너무 답답하더라구요. 네, 그래서 알아봤습니다! 먼저 Frame과 Bounds가 애플에서는 뭐라고 정의되고 있는지 한 번 볼게요. Frame The frame rectangle, which describes the view's location and size in its superview's coordinate system. 👉Frame은 SuperView(상위뷰)의 좌표 시스템 안에서의 View의 위치와 사이즈를 나타냅니다. Bounds The bounds rectangle, which describes the .. 2021. 2. 26.
Ch9. Combining Operators 본 게시물은 Florent Pillet, Junior Bontognali, Marin Todorov, Scott Gardner - RxSwift. Reactive Programming with Swift (2017, Razeware LLC) 책과 ReactiveX 사이트를 기반으로 작성되었습니다. RxSwift를 공부하는 데에 이 책을 읽으면 좋겠다고 생각하였고, 단지 읽기만 하는 것보다 한국어로 직접 정리해놓으면 더 기억하기 좋을 것 같아 게시물을 작성하게 되었습니다. 이번 게시물에서는 마블 다이어그램과, 마블 다이어그램에 해당하는 메서드 예시를 중점으로 정리하였습니다. 이전 Chapter에서는 Observable Sequence를 어떻게 만들고, 필터링하고, 변형하는지를 보았습니다. 이번 챕터에서는 .. 2021. 1. 13.
Data Binding in MVVM on iOS 본 게시물은 Data Binding in MVVM on iOS 라는 Medium 게시물을 기반으로 작성하였습니다. 다소 흥미로웠던 내용이라 제 블로그에 메모 및 정리해놓으면 좋을 것 같아 작성을 하게되었습니다. 영어로 된 본문을 제가 읽히는대로 번역을 해서 의역이 많고, 최대한 적절한 단어선택을 하긴 했으나 그래도 이해가 가지 않거나 잘못된 내용이 있다면 댓글로 알려주세요! 바로 수정하겠습니다 :) > Technique1. Observables > Technique2. Event Bus / Notification Center > Technique3. FRP Technique (RxCocoa / RxSwift) > Technique4. Combine 우리는 새로운 프로젝트를 할수록 View Controll.. 2021. 1. 7.
Struct와 Class, Closure Java를 사용할 때는 Class로 객체를 만들어 사용했었는데, Swift를 사용하면서 알게 된 점은 Swift에서는 Struct와 Class가 모두 있다는 것이었습니다. 그러다 보니 어떤 차이점이 있을지 궁금해서 알아보게 되었습니다. Struct와 Class 공통점 프로퍼티와 메서드를 구조화해서 묶어둔 형식 하나의 사용자 지정 타입을 만드는 것 이니셜라이저 init을 정의해서 초기상태 지정 가능 새로운 기능 추가를 위한 Extension 사용 가능 Protocol 사용 가능 Struct와 Class 차이점 먼저, Struct는 value 타입으로 할당이나 파라미터 전달 시에 value copy가 일어납니다. 항상 새로운 변수로 copy가 일어나는 점 때문에 멀티스레드 환경에서 공유 변수로 인해 문제를 .. 2020. 12. 24.
ARC (Automatic Reference Counting) iOS 개발을 공부하면서 꼭 알아야할 것 중 하나인 ARC (Automatic Reference Counting). 도대체 ARC가 뭘까요? 먼저, 앱의 성능을 유지하기 위해서는 메모리 관리가 필수적입니다. Stack 메모리에 저장된 데이터는 자동으로 제거되기 때문에 특별한 관리가 필요 없지만, Heap 메모리는 개발자가 동적으로 할당하는 메모리 공간이기 때문에 Heap 메모리에 저장된 데이터는 필요하지 않은 시점에 직접 제거해야만 합니다. 따라서 메모리 관리 모델은 Heap에 저장된 데이터를 관리합니다. [ 참고 ] Value Type은 Stack 메모리에, Reference Type은 Heap 메모리에 저장됩니다. Value Type: Structure, Enumeration, Tuple.. Refe.. 2020. 12. 22.
강한 순환 참조 / 강한 참조 사이클 (Strong Reference Cycle) STRONG REFERENCE CYCLE Strong Reference Cycle (강한 순환 참조)란 무엇을 말할까요? 저는 iOS 개발을 공부하면서 iOS와 관련된 게시글이나 정보를 찾다보면 메모리 관리에 관한 이야기가 정말 많다고 생각이 들었습니다. 그리고 이 게시물에서 다뤄볼 강한 순환 참조도 메모리와 관련되어 있습니다. 그래서 오늘은 강한 순환 참조에 대해서 아래 예시와 함께 살펴보겠습니다. 먼저, 아래 코드와 같이 Person과 Car이라는 클래스가 있다고 가정합시다. 그리고 Person class는 Car 속성을, Car class는 Person 속성을 가지고 있습니다. class Person { var name = "Jamie" var car: Car? } class Car { var mo.. 2020. 12. 20.