Swift
-
[iOS, TDD] Swift 테스트와 XCAssert 알아보기iOS/TDD 2023. 10. 31. 13:26
지난 글에서 Swift 프로젝트에 테스트를 도입해봤습니다 https://hhproject.me/entry/Swift-TDD-Swift-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%97%90-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EB%8F%84%EC%9E%85%ED%95%98%EA%B8%B0 [Swift, TDD] Swift 프로젝트에 테스트 도입하기 TDD는 소프트웨어 개발 방법론 중 하나로, 실제 코드를 작성하기 전에 테스트 케이스를 먼저 작성하고, 해당 테스트를 통과하게 하는 코드를 작성하는 방법입니다. 이번 글에서는 Swift 프로젝트 hhproject.me 이번 글에서는 계산기의 기능(더하기, 곱하기)를 코드로 구현하고 테스트 적용하는 방법을 알아보겠습니다..
-
[Swift, TDD] Swift 프로젝트에 테스트 도입하기iOS/TDD 2023. 10. 31. 12:53
TDD는 소프트웨어 개발 방법론 중 하나로, 실제 코드를 작성하기 전에 테스트 케이스를 먼저 작성하고, 해당 테스트를 통과하게 하는 코드를 작성하는 방법입니다. 이번 글에서는 Swift 프로젝트에 TDD방식으로 테스트를 도입하는 방법을 알아보겠습니다. 프로젝트를 생성합니다(Xcode 15.0) Include Tests에 체크표시를 하면 프로젝트 생성 시에 테스트코드를 작성할 수 있습니다. 체크를 안 했다면, Xcode 상단 File - New - Target 에 들어가 Unit Test Bundle을 추가해주시면 됩니다. 테스트를 추가했다면 아래와 같은 코드가 생깁니다. 커맨드(⌘) + U를 누른다면 아래 스크린 샷과 같이 초록색 체크 표시가 뜨며 테스트가 통과했다는 것을 알 수 있습니다. setUpWi..
-
[iOS, Swift] Callback 함수와 ClosureiOS/기본 원리 2023. 8. 30. 10:41
Callback 함수는 특정 작업이나 함수의 완료 이후에 실행되도록 설계된 프로그래밍 패턴을 가리킵니다. 이러한 Callback 함수는 특히 비동기 작업에 많이 활용됩니다. 웹 요청 또는 파일 읽기와 같은 작업이 시작될 때, 이러한 함수에 callback을 전달하면 작업 완료 시 해당 callback 함수가 자동으로 호출되어, 결과를 처리하거나 발생한 오류를 관리합니다. Swift 언어에서는 이러한 Callback 기능을 구현하기 위해 Closure를 활용합니다. func fetchData(completion: (String) -> Void) { // 데이터를 비동기적으로 가져오는 가상의 코드 DispatchQueue.global().async { let data = "데이터" // 메인 스레드에서 완료..
-
[Swift, 패턴] SOLID에 대한 개념iOS/기본 원리 2023. 8. 28. 12:22
SOLID는 객체 지향 디자인을 지향하면서 유지보수성, 확장성, 재사용성을 강조하는 원칙들의 약어입니다. 이 원칙들은 2000년대 초에 Robert C. Martin에 의해 처음으로 제시되었습니다. Swift 언어를 사용해 SOLID 원칙을 설명하는 예시를 제시하겠습니다. 1. Single Responsibility Principle (SRP) - 단일 책임 원칙 클래스는 오직 하나의 책임만을 지녀야 합니다. 이 원칙은 클래스가 바뀔 이유가 하나뿐이어야 함을 의미합니다. 이 원칙을 따르면 코드의 유지보수가 쉬워지며, 다른 기능에 대한 부작용 없이 한 기능을 수정할 수 있게 됩니다. // 나쁜 예시 class Employee { var name: String var salary: Double // 책임1:..
-
[iOS, Swift] (TagCalendar 컴포넌트 3) 뷰 위치 이동 시 특정 위치(그리드)에만 위치하게 하기iOS/UI 컴포넌트 2023. 6. 5. 18:30
이전 포스팅에서는 뷰 충돌을 감지하여 충돌했을 때 원래의 위치로 돌아가게끔 하는 기능을 구현했었습니다. https://swift-apprentice.tistory.com/entry/iOS-Swift-TagCalendar-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8-2-%EB%B7%B0%EC%9D%98-%EC%B6%A9%EB%8F%8C-%EA%B0%90%EC%A7%80%ED%95%98%EA%B8%B0 [iOS, Swift] (TagCalendar 컴포넌트 2) 뷰의 충돌 감지하기 이전 포스팅에서 드래그하는 뷰를 만들었습니다. https://swift-apprentice.tistory.com/entry/iOS-Swift-TagCalendar-%EC%BB%B4%ED%8F%AC%EB%84%..
-
[iOS, Swift] (TagCalendar 컴포넌트 2) 뷰의 충돌 감지하기iOS/UI 컴포넌트 2023. 6. 2. 18:30
이전 포스팅에서 드래그하는 뷰를 만들었습니다. https://swift-apprentice.tistory.com/entry/iOS-Swift-TagCalendar-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8-1-%EC%9D%B4%EB%8F%99%ED%95%98%EB%8A%94-%EB%B7%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0 [iOS, Swift] (TagCalendar 컴포넌트 1) 이동하는 뷰 만들기 Swift에서 드래그해서 이동하는 뷰를 만드는 방법을 소개하려고 합니다. 처음에 이러한 디자인을 구현하려고 생각했을 때, 막막했었는데 작은 것 하나하나 조립해서 결국에 원하던 기능을 만들 hhproject.me 이어서 이번 포스팅에서는 뷰가 충돌하는지 확인하고 충돌..