iOS

[iOS] iOS 개발자를 위한 토막상식 1

Devleoper_yh 2025. 4. 14. 23:53
반응형

 iOS 개발자를 위한 토막상식 5가지

1️⃣  @MainActor는 UI 작업의 수호자

  • Swift Concurrency 도입 후, UI 업데이트는 @MainActor로 지정된 함수나 프로퍼티에서 안전하게 실행해야 함
@MainActor
func updateUI() {
    self.label.text = "업데이트 완료!"
}

 

  • ✅ 왜 중요할까? → 백그라운드 쓰레드에서 UI를 건드리면 앱이 크래시 날 수 있음!

2️⃣ UserDefaults는 임시 저장소일 뿐

  • 작은 데이터 저장에는 편하지만, 구조화된 데이터나 대용량은 CoreDataSwiftData, 혹은 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 → 개발 → 연결된 기기 선택!


 

반응형