1์ฃผ์ฐจ ์คํฐ๋์์ ๊ณต๋ถํ๋ "Delegate๋ ๋ฌด์์ธ์ง ์ค๋ช ํ๊ณ , Retain์ด ๋๋์ง ์๋๋์ง ๊ทธ ์ด์ ๋ฅผ ํจ๊ป ์ค๋ช ํ์์ค"๋ผ๋ ์ฃผ์ ์ ๋ฆฌํ๊ธฐ๐คDeletate์ "๋๋ฆฌ์, ์์ํ๋ค"๋ผ๋ ๋จ์ด์ ๋ป์ฒ๋ผ ํ๋์ ๊ฐ์ฒด๊ฐ ๋ชจ๋ ์ผ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์๋๋ผ, ์ฒ๋ฆฌํด์ผํ ์ผ ์ค
Swift ์์ํ ๋๋ถํฐ ๊ณ์ ๋ค์ด์๋ struct vs class๋ฉด์ ๋จ๊ณจ ์ง๋ฌธ์ผ๊ฒ ๊ฐ์์ ์ด๋ฒ์ ์คํฐ๋์์ ๊ณต๋ถํ๋ ๋ด์ฉ ์ ๋ฆฌ๐struct๋ ๊ฐ ํ์ ์ผ๋ก, ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ ์ค ์คํ ์์ญ์ ์ ์ฅ๋๊ณ , struct๋ฅผ ์๋ก์ด ํ๋กํํฐ์ ํ ๋นํ ๋๋ง๋ค ๊ฐ์ด ๋ณต์ฌ๋ฉ๋๋ค.๊ฐ์
์ด๋ฒ์ SwiftUI์ MVVM์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ Property Wrapper๋ฅผ ์ค์ ๋ก ์ฌ์ฉํด๋ณด์๋๋ฐ, @Published์ @State์ ๊ฐ๋ ์ด ํท๊ฐ๋ ค์ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค@Published์ @State ๊ฐ๋ ์ด ํท๊ฐ๋ ธ๋ ์ด์ ๋, ๋ ๋ค ํด๋น ํ๋กํผํฐ ๋ํผ๋ก ์
OAuth์ ์ํค๋ฅผ ๋ณด๋ฉด OAuth๋ฅผ ์๋์ ๊ฐ์ด ์ค๋ช ํ๊ณ ์๋คOpen Authorization์ ์ค์๋ง๋ก, ์ธํฐ๋ท ์ฌ์ฉ์๋ค์ด ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๊ณตํ์ง ์๊ณ ๋ค๋ฅธ ์น์ฌ์ดํธ ์์ ์์ ๋ค์ ์ ๋ณด์ ๋ํด ์น์ฌ์ดํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ ์ ์๋ ๊ณตํต์ ์ธ ์๋จ์ผ๋ก ์ฌ์ฉ
๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ (SOLID)์ ์ด์ ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ 2ํ์ ๊ฐ์ฒด์งํฅ ์ํ ์ฒด์กฐ ์์น์ด๋ค ๊ฐ์ฒด์งํฅ ์ํ ์ฒด์กฐ ์์น์ ๋ฐ๋ผ ํ๋ค ๋ณด๋ฉด ์์ฐ์ค๋ฝ๊ฒ ๊ฐ์ฒด์งํฅ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ ๊ท์น์ธ๋ฐ, ๋ค์ 9๊ฐ์ง ๊ท์น์ด ์๋ค ๐โโ๏ธ ๊ฐ์ฒด์งํฅ ์ํ ์ฒด์กฐ ์์น ํ ๋ฉ์๋
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP)์ด๋ผ๋๊ฑด ๋ญ๊น?์ํค๋ฐฑ๊ณผ๋ฅผ ๋ณด๋ฉด ์๋์ ๊ฐ์ด ์ ์๋์ด ์๋ค๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ด์ ๋ชฉ๋ก์ผ๋ก ๋ณด๋ ์๊ฐ์์ ๋ฒ์ด๋์ฌ๋ฌ๊ฐ์ ๋ ๋ฆฝ๋ ๋จ์, ์ฆ ๊ฐ์ฒด๋ค์ ๋ชจ์์ผ๋ก ํ์ ํ๊ณ ์ ํ๋ ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ์ ํจ๋ฌ๋ค์ ์ค ํ๋์ด๋ค.๊ฐ์ฒด์ง
Core DataPersist or cache data on a single device, or sync data to multiple devices with CloudKit.Core Data๋ ๋จ์ผ ๋๋ฐ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ๋๋ ์บ์ฑํ๊ฑฐ๋, CloudKit์ ์ฌ์ฉํด
localization์ ์ง์ญํ internalization์ ์ธ๊ณํ ๋ผ๋ ๋ป์ผ๋ก, ๊ฐ๊ฐ L10N๊ณผ I18N์ผ๋ก ํ๊ธฐํ๊ธฐ๋ ํ๋ค. ์ง์ญํ ์ ์ ์ธ๊ณํ๊ฐ ๋จผ์ ๋์ด ์์ด์ผ ํ๋๋ฐ, ์ธ๊ณํ๊ฐ ๋์๋ค๋๊ฑด ์ฌ๋ฌ ๊ตญ๊ฐ์์ ์ฌ์ฉํ ์ ์๋๋ก ๋ฐฐํฌ๋ ์ฑ์ด์ด์ผ ํ๋ค๋ ๋ป์ธ ๊ฒ ๊ฐ
์์ดํฐ ๊ธฐ๋ณธ ์ดํ์ธ ๋ฉ๋ชจ๋ ์๋์์ ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก swipeํ๋ฉด ๊ณต์ /์ญ์ ํ ์ ์๋ ๋ฒํผ์ด ๋ํ๋๋๋ฐ,์ด๋ฒ ํ๋ก์ ํธ์์ ์ ์ฉํด์ผํด์ ์๋์ ๊ฐ์ด ๋ทฐ๋ฅผ ๊ตฌํํด๋ณด๊ณ Action๋ ์ฐ๊ฒฐํด๋ณผ๊ฑฐ๋ค.ํ ์ด๋ธ ๋ทฐ์ ๊ฐ cell์ Swipeํด์ Action์ ์ค์ ํ๋ ค๋ฉด, UI
๐ฉ๐ปโ๐ป UIKit vs SwiftUI PropertyWrapper์ ๋ํด์ ์๊ธฐํ๊ธฐ ์ ์ ์ ๊น UIKit๊ณผ SwiftUI๋ฅผ ๋น๊ต
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ํค๋ณด๋๊ฐ ํ ์คํธ๋ทฐ๋ฅผ ๊ฐ๋ฆฌ์ง ์๋๋ก ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋๊ฐ ๊ฐ๋์๋๋ฐ, ์ ๋ฒ ํ๋ก์ ํธ๋ ์ดํด๋ฅผ ์ ๋๋ก ๋ชปํ๊ณ ์ผ์๋๋ฐ, ์ด๋ฒ ํ๋ก์ ํธ๋ ์ ๋๋ก ์๊ณ ์ฐ๊ธฐ ์ํด ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค. - ํค๋ณด๋๊ฐ ํ ์คํธ๋ทฐ๋ฅผ ๊ฐ๋ฆฌ์ง ์๋๋ก ํ๊ธฐ - ์ฑ์ด ๋ฐฑ๊ทธ๋ผ์ด๋์ ์ง์
์ ๋ฒ์ Core Graphics๋ฅผ ์ด์ฉํด์ ๋ฒํผ์ ๊ทธ๋ ค๋ณด๋๊ฑธ ํ์๋๋ฐ, (CoreGraphics ํ์ฉํด์ +๋ฒํผ ๊ทธ๋ ค๋ณด๊ธฐ)์ด๋ฒ์๋ CoreAnimation์ ํ์ฉํด์ ๊ทธ + ๋ฒํผ์ ํด๋ฆญํ๋ฉด 40๋ ํ์ ์์ผฐ๋ค๊ฐ, ๋ค์ ํด๋ฆญํ๋ฉด ์๋ ์ํ๋ก ๋์์ค๋ ๊ฑธ ๊ตฌํํด๋ณด์๋คCore
CoreGraphics๋ฅผ ํ์ฉํด์ ์๋์ฒ๋ผ ๋ฒํผ์ ๊ทธ๋ฆผ์ ๊ทธ๋ ค๋ณด์๋ค1๏ธโฃ Normal State 2๏ธโฃ Selected StateCore Graphics๋ ์ , ๋ํ ๋ฑ์ ๊ธฐ๋ฐ์ผ๋ก ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๋ 2์ฐจ์ ๋๋ก์ ํด์ด๋ค. Core Graphics๋ Quartz๋ผ๋ ๊ทธ๋ํฝ
์ ํ๋ก์ ํธ์ SwiftLint๋ฅผ ์ ์ฉํด๋ณด์๋คํ ํ๋ก์ ํธ ๋ด์์ ์ฝ๋ฉ ์ปจ๋ฒค์ ์ด ํต์ผ๋์ง ์์ผ๋ฉด ๋ณด๊ธฐ ๋ถํธํ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ..๊ทธ๋ SwiftLint๋ฅผ ์ฌ์ฉํ๋ฉด ์๋์ผ๋ก ๊ด๋ฆฌํด์ฃผ๋ ํธ๋ฆฌํ ๊ฒ ๊ฐ๋คmarisol-MacBookPro desktop % cd ViewDrawing
์ค๋์ View Drawing Cycle ๊ณต๋ถ๋ฅผ ํ๋ค View Life Cycle์ ๋ค์ด๋ดค์ด๋ View Drawing Cycle์ ์ฒ์ ๋ค์ด๋ดค๋๋ฐ..