반응형
iOS 개발자를 위한 토막상식 5가지
1️⃣ @MainActor는 UI 작업의 수호자
- Swift Concurrency 도입 후, UI 업데이트는 @MainActor로 지정된 함수나 프로퍼티에서 안전하게 실행해야 함
@MainActor
func updateUI() {
self.label.text = "업데이트 완료!"
}
- ✅ 왜 중요할까? → 백그라운드 쓰레드에서 UI를 건드리면 앱이 크래시 날 수 있음!
2️⃣ UserDefaults는 임시 저장소일 뿐
- 작은 데이터 저장에는 편하지만, 구조화된 데이터나 대용량은 CoreData나 SwiftData, 혹은 FileManager를 고려해야 함
- ⚠️ 앱 삭제 시 함께 지워짐 / 보안에 민감한 데이터 저장은 Keychain을 써야 함
3️⃣ 앱의 메모리 경고 감지하기
- UIApplication.didReceiveMemoryWarningNotification을 활용하면 메모리 부족 상황을 감지할 수 있음
NotificationCenter.default.addObserver(
self,
selector: #selector(didReceiveMemoryWarning),
name: UIApplication.didReceiveMemoryWarningNotification,
object: nil
)
- 실전 팁: heavy한 뷰나 캐시 등을 이 타이밍에 정리할 수 있음
4️⃣ 앱 심사 시 NSLocationWhenInUseUsageDescription은 필수
- 위치 권한을 요청할 때, Info.plist에 해당 키가 없으면 앱이 심사에서 거절됨
- 설명 문구도 실제 목적에 맞게 작성해야 함 (예: “지도 기능을 위해 위치 정보를 사용합니다.”)
5️⃣ iOS에서 웹 디버깅은 Safari로!
- 앱 내 WKWebView에서 동작하는 웹 페이지는 Mac Safari의 개발자 도구에서 디버깅 가능
- 설정: iOS 기기 → Safari → 고급 → 웹 검사기 활성화
- → Mac Safari → 개발 → 연결된 기기 선택!
반응형
'iOS' 카테고리의 다른 글
[iOS] iOS 개발자를 위한 토막 상식 5 (0) | 2025.04.22 |
---|---|
[iOS] iOS 개발자를 위한 토막 상식 4 (0) | 2025.04.22 |
[iOS] iOS 개발자를 위한 토막 상식 3 (0) | 2025.04.16 |
[iOS] iOS 개발자를 위한 토막상식 2 (0) | 2025.04.15 |