5. 달걀 앱

스켈레톤 프로젝트 5번째.

황금시간대의 달걀 익히기 카운터 ㅋㅋㅎㅎㅋㅎㅎㅋㅋㅎ

프로젝트로 배운 것

Timer() , UIProgressView, Swift 에서의 Dictionary 등을 배웠다.

Timer

가장 생소하고 찾기도 힘들었다. 스택 오버플로우에도 어떤 키워드로 검색을 해야할지도 막막했었다. 그래도 강의를 들으며 하나씩 배워갔다.

주요 프로퍼티, functions

UIProgressView

// 프로그래스 뷰를 땡겨와서 뷰 컨트롤러에 적용시키고 나면 이렇게 적용이 된다.
@IBOutlet weak var progressBar: UIProgressView!
// 기본적인 프로그래스 뷰 초기화 (0.0 : 0% ~ 1.0 : 100%)
progressBar.progress = 0.0

Timer(), AVFoundation

// Timer() 선언
var timer = Timer()
//  AVAudioPlayer 선언. 음원파일을 실행 시킬 수 있게 해주는 기능
var player: AVAudioPlayer!
// timeInterval에 적혀있는 시간 동안 딜레이 되며, 시간이 한틱한틱 지나감.
// 중간에 selector 부분은 obj-c 부분이라 처음 본 문법이 보였다.
// 이 부분에서 넣어준 시간을 업데이트 해주는 부분이다.
// 만일 1초간 지나가는 Timer를 만들어 10초부터 시작한다고 하면,
// update() function에서 진행을 해준다.
// 마지막 repeats 부분에 false가 들어갈 경우, 한번밖에 실행이 될것이다.
// ㄹㅇ 1초 틱, 하고 끝이다. repeats는 필히 true로 설정해주자.

timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(update), userInfo: nil, repeats: true)

@objc func update() {
        if (secondsPassed < totalTime) {
            
            secondsPassed += 1
            progressBar.progress = abs(Float(secondsPassed) / Float(totalTime))
            
        } else {
            timer.invalidate()
            titleLabel.text = "Done!"
            // url로 오브젝트에 있는 파일을 땡겨와서
            let url = Bundle.main.url(forResource: "alarm_sound", withExtension: "mp3")
            // player로 해당 파일을 잡아놓고
            player = try! AVAudioPlayer(contentsOf: url!)
            // play()시킨다.
            player.play()
        }
}

느낀점

아..사실 지금 이렇게 코드만 보면 정말 간단한 앱이다. 간단한 앱익도 하고 기능도 별로 없는 앱이다. 하지만 이걸 진행할 때는 생각보다 힘들었다. 내가 원하는 곳에서 원하는 답이 나오지 않고, 잘 모르는 건 또 영어로 검색해야 하니...배로 힘들었지만, 막상 다 끝내놓고 보면 이렇게 재밌는 것은 또 없었던 듯 하다! 정말 열심히 빨리 배워서 내 앱을 만들고 싶다.

좋은 웹페이지 즐겨찾기