Home 2월 13일 Today I Learned
Post
Cancel

2월 13일 Today I Learned

오늘한 일

  • 노션 iOS DB를 작성하였다
  • 앨런 Swift문법 마스터 스쿨 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) 강의를 수강하였다
  • 알고리즘 문제를 풀었다
  • 블로그 TIL을 작성하였다
  • 1일 1커밋을 하였다

느낌 점

오늘 타이머 앱을 구현하면서 저번에 배운 MVC 패턴으로 구현하려고 고집을 부리다가 오히려 코드가 더 길어지며 복잡해지고 예상치 않은 문제가 생기는 등 디자인 패턴에 이점을 살리지 못하는 것을 느끼면서 무조건적으로 디자인 패턴을 사용하려고 하는 것은 지양 해야겠다는 생각이 들었다

배운 점

Swift 일정 시간 코드 지연 실행

1
2
3
DispatchQueue.main.asyncAfter(deadline: .now() + 10.0) {
    // 코드
}

타이머 앱을 구현하던 중 일정 시간 이후 코드를 실행하면 되겠다는 해당 논리를 떠올려서 해당 로직을 구현하는 법을 찾다가 알게 되었다

시스템 기본 오디오 출력

1
2
3
import AVFoundation

AudioServicesPlayAlertSound(SystemSoundID(1322))

아이폰 기본 사운드를 재생하는 법에 대해 찾다가 해당 방법을 알게 되었다 SystemSoundID에 사운드 정보는 여기에서 찾을 수 있었다

일정 시간마다 반복

1
2
3
4
5
6
weak var timer: Timer?

timer?.invalidate()
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true, block: { [self] _ in
        // 코드
})

타이머 앱을 구현하던 중 생각한 첫번 째 로직을 쓰는 것보다 더 좋은 로직인 것 같아 사용하게 되었다

1
timer?.invalidate()

위 코드로는 타이머를 종료할 수 있다

UI 텍스트 필드 코드

1
2
3
4
5
6
7
8
9
10
let textField: UITextField = {
    let tf = UITextField()
    tf.keyboardType = UIKeyboardType.emailAddress 
    tf.placeholder = "이메일 입력" 
    tf.borderStyle = .roundedRect
    tf.clearButtonMode = .always 
    tf.returnKeyType = .done
    
    return tf
}()

스토리보드로만 구현했던 UI 텍스트 필드를 코드로 구현하는 법에 대해 알게 되었다

내일 계획

내일은 앨런 Swift문법 마스터 스쿨 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) 강의에서 최소 9번 째 앱까지는 복습하고 노션에 정리를 할 것이다

This post is licensed under CC BY 4.0 by the author.

2월 12일 Today I Learned

2월 14일 Today I Learned