
[iOS] UITest - XCUITest이번 포스팅에서는 UITest에 대해서 다뤄볼 예정이다!사용자 인터렉션을 테스트하여 UI플로우를 검증하는 XCUITest와,실제 픽셀 단위로 UI를 제대로 구성했는지 확인해 볼 수 있는 Snapshot Test에 대해yanni13.tistory.com 바로 전 포스팅에서 UITest에 대해서 알아봤었다.이번 블로그에서는 또 다른 UITest인 Snapshot 테스트에 대해서 공부해 보자! ✏️ Snapshot test란?특정 뷰를 기준으로 스냅샷을 저장하고 이후 실행 시 새로 생성하는 테스트 기법 snapshot 테스트의 가장 큰 장점은 의도치 않은 UI 변경을 빠르게 감지할 수 있다는 점이다. 코드 수정이 실제 화면에 영향을 주었는지 자동으로 확인할 수 있고..

이번 포스팅에서는 UITest에 대해서 다뤄볼 예정이다!사용자 인터렉션을 테스트하여 UI플로우를 검증하는 XCUITest와,실제 픽셀 단위로 UI를 제대로 구성했는지 확인해 볼 수 있는 Snapshot Test에 대해서 공부해 보자. 🧐 테스트 코드의 필요성왜 Test-code를 사용해야 할까? 주변에서 테스트 코드를 프로젝트에 도입한다고 하면 개발하기도 바쁜데 테스트 코드까지 짜면 시간낭비 아니냐, 비효율적인 거 같다는 말을 많이 들었다. 나 또한 그렇게 생각했었고 여전히 프로젝트 규모가 작거나, 단기성 프로젝트일수록 테스트 코드를 도입하는 것이 비효율적이라고 생각한다.하지만 장기전으로 봤을 때 테스트 코드가 동작하는 기능은 테스트가 동작하지 않는 기능보다 나중에 리펙토링에서 훨씬 부담을 덜 느끼게..

✏️ Swiftgen이란? SwiftGen이란 Resources 폴더 안에 들어가는 폰트, assets, color들을 문자열이나 코드로 다룰 때 오타나 잘못된 키의 사용을 방지하여 안전하게 코드로 관리할 수 있도록 하는 자동화 도구이다. 보통은 UIImage(named: "logo_main")이라고 작성했다면 SwiftGen을 실행했을 땐 자동으로 Asset.logoMain.image 와 같은 enum 타입의 코드가 자동 생성되어서 실제 코드에서 문자열을 최소화하여 사용할 수 있도록 한다. 팀프로젝트를 하다보면 팀원이 넣은 Assets에서 이름이 변경되거나, 문자열로 Image를 호출하는 일이 많아져서 프로젝트 규모가 커질 경우 문자열 때문에 컴파일 에러가 났던 경험이 있을 것이다. (휴면에러..)따..

오늘은 푸시알람을 보내는 Push notifications에 대해서 공부해보자! 공부용 블로그이므로 정확하지 않을 수 있습니다. 틀린 내용이 있다면 댓글 부탁드립니다!! 😀 ✏️ Push Notifications 앱에 알람이 오게 하는 방법은 Local notification, Remote notification 두가지가 있다. Local notification기기 내부에서 발송하는 알림 UserNotifications을 사용해서 앱이 특정 시간이나 조건에 맞춰 알림을 보내도록 코드를 작성하면 시스템 자체에서 해당 조건과 시간에 맞는 알람을 트리거 하여 사용자에게 푸시 알람이 가게 되는 방식이다. 별도의 서버가 필요하지 않아 간단한 알람을 트리거해야 할 때 사용할 수 있다.앱 자체에서 미리 이 시간이..

지난 블로그에서 Task의 개념, Task 취소, Task가 다른 비동기 작업이랑은어떻게 다른 건지에 대해서 살펴봤다. [swift] Swift Concurrency - Task (1)Swift Concurrency는 Swift 자체에서 비동기와 동기 처리를 더 안전하게 하고 간결하게 만들기 위한 기능이며 swift 5.5부터 도입되었다고 한다. async/await, Actor, @sendable등 여러 가지가 있지만 그중에서 오yanni13.tistory.com 오늘은 Task - 2탄으로 Task의 종류에 대해서 알아보도록 하자! ✏️ Task의 종류 Async-let동시 실행을 예약해두고 필요한 시점에서 기다리는 방식 기존방식의 binding 기존 방식에서 let result가 실행되기 전..

Swift Concurrency는 Swift 자체에서 비동기와 동기 처리를 더 안전하게 하고 간결하게 만들기 위한 기능이며 swift 5.5부터 도입되었다고 한다. async/await, Actor, @sendable등 여러 가지가 있지만 그중에서 오늘 공부해 볼 주제는 바로 Task이다! Task Task는 Concurrency에서 비동기 작업의 최소 단위라고 한다. 모든 비동기 코드는 어떤 작업의 일부로 실행되곤 하는데, Task는 한 번에 하나의 작업만 수행하지만, 여러 작업을 실행할 때 동시에 수행하기 위해 Task를 스케줄링할 수 있다고 한다. 하나하나 뜯어보자. 1. Task는 한 번에 하나의 작업만 수행한다. [순차] 보통 비동기는 한번에 하나의 작업만 수행하곤 한다. 그래서 하나의 Ta..

오늘은 프로젝트에서 google maps를 호출해야 하는 기능이 있어서, google Maps Api를 불러오고 간단한 정보를 표시해 주는 작업을 해보자! 구글맵 키 받아오기 1. Maps SDK for iOS Google 클라우드 플랫폼로그인 Google 클라우드 플랫폼으로 이동accounts.google.com 위 링크를 통해서 Maps SDK for iOS를 검색하면 쉽게 사용할 수 있는 게 있다. 여기서 사용 눌러주면 다음 정보로 넘어간다. 2. 정보등록카드 정보를 등록해야 한다. 아니면 등록이 안됨! 그리고 카드 등록을 하면 간단하게 이 api를 어떻게 접근할 건지, 어떤 플랫폼으로 접근할 건지 정보를 작성할 수 있다. 최소코드를 선호하되, iOS/SwiftUI로 접근하려고 해당 항목..

버그는 반드시 수정해야 한다. 그중에서도 재현하기 어려운 버그는 쉽게 손을 댈 수도 없다. 이때 로그를 사용하면 재현하지 않고도 버그의 흐름을 파악할 수 있도록 한다. 그래서 Swift의 통합 로깅 API인 Logger에 대해서 알아보도록 하자. 📚 Logger란? Swift에서의 Logger는 구조화된 로깅 api의 일부이며 Swift의 concurrency 및 디버깅과 잘 통합되도록 설계된 로깅 시스템이다. Logger는 os 프레임워크 기반으로 만들어졌으며 os 프레임워크 기능을 더 swift하게 사용할 수 있도록 추상화된 형태로 iOS 14.0부터 도입되었다.공식문서를 살펴보면 apple에서는 디버깅을 할 때 print보다 Logger를 권장하고있다. 기본적으로 성능적인 측면에서 Logger가..
- Total
- Today
- Yesterday
- wwdc25
- 프로그래머스
- CoreData
- UIKit
- closure
- rxswift
- UITest
- Xcode
- unstructed task
- 백준
- 클로저
- Fastlane
- ios
- swiftUI
- 코딩테스트
- foundation models
- SWIFT
- xcuitest
- mlmodel
- combine
- Task
- ObservableObject
- asyne-let
- 병합충돌
- SnapshotTest
- detached task
- securefield
- 스위프트
- group tasks
- XCTest
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |