Swift ๋ฌธ๋ฒ ๊ณต๋ถ๋ง ํ๋๊น ์ง๋ฃจํด์ iOS App์ ๋ง๋๋ ๊ณต๋ถ๋ ๊ฐ์ด ๋ณํํ๋ ค๊ณ ํ๋ค. ๋ณธ๊ฒฉ์ ์ธ iOS App ๊ณต๋ถ๋ฅผ ์์ํ๊ธฐ ์ ์ ๋ช ๊ฐ์ง๋ฅผ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค.App์ Application์ ์ค๋ง๋ก Application software ๋๋ Application
์ฑ์ ์ฌ์ฉ์์ ๊ด์ฌ์ ํญ์ ๊ธฐ๋ค๋ฆฐ๋ค. ์ฌ์ฉ์๊ฐ ์ฑ์ ์คํํ๋ฉด ์์คํ (iOS)๋ ์ด๋ ๊ฒ ์ฃผ๋ชฉ ๋ฐ์ ์ฑ์๊ฒ ๋ฆฌ์์ค๋ฅผ ๋ชฐ์์ค๋ค. ์ด๋ ๊ฒ ์ฌ์ฉ์์ ๊ด์ฌ์ ๋ฐ์ ๋๋ ๋ชป๋ฐ์ ๋๋ ์ฑ์ ์ํ๊ฐ ํฌ๊ทธ๋ผ์ด๋, ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ๋ณํ๋ค. ์ฑ ๊ฐ๋ฐ์๋ ์ด๋ ๊ฒ ์ฑ์ ์ํ๊ฐ ๋ณ๊ฒฝ๋จ์ ๋ฐ๋ผ ๋์
App์์ ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค๋ค.์ฌ์ฉ์์ ์ธํฐ๋์ ์ ๋ฐ์ App์ ์๋ ค์ฃผ๋ ์ญํ ์ ํ๋ค.์ฅ์ View๋ฅผ ์ํ ์ฝ๋๋ฅผ ์์ฑ ๊ฐ๋ฅํ๋ค.View๋ฅผ ์ง๊ด์ ์ผ๋ก ์ดํดํ ์ ์๋ค.View ์์ ์๋๊ฐ ๋น ๋ฅด๋ค.๋จ์ ์์ ๋ด์ฉ์ ๋ณด๊ธฐ๊ฐ ์ด๋ ค์ -> conflict๊ฐ
Model๋ฐ์ดํฐView๋ฐ์ดํฐ ํํ ๊ฐ์ฒด๋ฐฐ๊ฒฝ์ค๋ช Apple์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก MVC(Model-View-Controller) ํจํด์ ๊ฐ์ด๋ ํจํ์ง๋ง, ๊ฐ๋ฐ์๋ค์ด ์ค๋ฌด ์งํ๊ฐ์ MVC๋ฅผ ๊ฐ์ด๋๋๋ก ์์ -> ๊ฐ๋ฐ ๋ถ์ฑ๊ฐ ์์๋ ์ข์ ๊ตฌ์กฐ๊ฐ ๋ฌด์์ด๊ณ , ๋ฐ๋ณต๊ฐ๋ฅํ๋ฉด์ ์ง์๊ฐ๋ฅํ
Auto Layout์ View์ ์ง์ ๋ ์ ์ฝ ์กฐ๊ฑด์ ๋ฐ๋ผ View ๊ณ์ธต์ ์๋ ๋ชจ๋ View์ ํฌ๊ธฐ์ ์์น๋ฅผ ๋์ ์ผ๋ก ๊ณ์ฐํ๋ค. ์๋ฅผ ๋ค์ด, ๋ฒํผ์ด ์ด๋ฏธ์ง์ ์ํ์ผ๋ก ์ค์์ ์ค๋๋ก ์ ํํ๊ณ ๋ฒํผ์ ์๋จ ๊ฐ์ฅ์๋ฆฌ๊ฐ ํญ์ ์ด๋ฏธ์ง ํ๋จ๋ณด๋ค 8ํฌ์ธํธ ์๋์ ์๋๋ก ํ ์ ์
iOS app์ ํ๋ ์ด์์ view๋ก ๊ตฌ์ฑ๋์ด ์๊ณ , ๊ฐ๊ฐ์ view๋ค์ life cycle์ ๊ฐ์ง๊ณ ์์ด์ ์ด๋ฅผ ๊ณ ๋ คํด์ผํ๋ค.ViewDidLoad()View๊ฐ ๋ก๋ฉ๋์์ ๋ ์๋์ผ๋ก ํธ์ถ๋๋ค.์ผ๋ฐ์ ์ผ๋ก resource๋ฅผ ์ด๊ธฐํํ๊ฑฐ๋ ์ด๊ธฐํ๋ฉด์ ๊ตฌ์ฑํ ๋ ์ฃผ๋ก ์ฌ์ฉํ
1. Data Flow SwiftUI ์ด์ ์๋ PlayerViewController๊ฐ PlayerView, PlayButton์ ๊ฐ์ง๊ณ ์๊ณ , ์ฌ์์ค์ด๋ผ๋ ์ ๋ณด(isPlaying)๋ PlayerViewController์ PlayButton์ด ๊ฐ์ง๊ณ ์์ด์ UIKit