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()
}
}
느낀점
아..사실 지금 이렇게 코드만 보면 정말 간단한 앱이다. 간단한 앱익도 하고 기능도 별로 없는 앱이다. 하지만 이걸 진행할 때는 생각보다 힘들었다. 내가 원하는 곳에서 원하는 답이 나오지 않고, 잘 모르는 건 또 영어로 검색해야 하니...배로 힘들었지만, 막상 다 끝내놓고 보면 이렇게 재밌는 것은 또 없었던 듯 하다! 정말 열심히 빨리 배워서 내 앱을 만들고 싶다.
Author And Source
이 문제에 관하여(5. 달걀 앱), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kirri1124/5.-달걀-앱저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)