๋ชฉ๋ก๐ฑ๐ iOS (62)
Bibi's DevLog ๐ค๐
์ฐธ๊ณ ๋ฌธ์ : [DI] DI Container, IOC Container ๊ฐ๋ ๊ณผ ์์ DIContainer๋? DI = Dependency Injection ์์กด์ฑ ์ฃผ์ ๋ฐ์์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด ์ฃผ์ ํด์ฃผ๋ ๊ฒ Container : ๋ชจ๋ ์ธ์คํด์ค๋ฅผ ๊ฐ์ง๊ณ ๊ด๋ฆฌํ๋ ๊ฐ์ฒด. register : ๋ด๊ฐ ์ฌ์ฉํ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด ๋ฑ๋ก resolve : ํ์ํ ์ธ์คํด์ค๋ฅผ ๋ฌ๋ผ๊ณ ์์ฒญ ์ฆ DIContainer๋ ์์กด์ฑ ์ฃผ์ ์ ํ์ํ ๊ฐ์ฒด๋ค์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ์ญํ ์ ํ๋ค. ์ ํ์ํ๊ฐ? ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ค๋ณต์ฝ๋๊ฐ ๋ง์์ง ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ํ์ํ ํ๋ผ๋ฏธํฐ๊ฐ ๋ง์ ๋ ์ฌ์ฉ๋ฐฐ๊ฒฝ ํ๋ก์ ํธ๋ฅผ ํ๋ฉฐ ์ด๋ค ๊ฐ์ฒด๊ฐ ํ์ํ ๋, ์์ฑ์๋ก ์ฑ์ ์ฌ๊ธฐ์ ๊ธฐ์์ ๋ฌด๋ถ๋ณํ๊ฒ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์์๋ค. ๋, ์ด๋ฏธ ์์ฑํ๋ ์์ ๊ณผ ์์น๋ฅผ ๋ชจ๋ฅด๊ณ ..
์ฐธ๊ณ ํ ๋ฌธ์ The ultimate guide to Timer Apple Developer Documentation Why would a scheduledTimer fire properly when setup outside a block, but not within a block? Swift์์ ์ง์ฐ์๊ฐ์ ๋๊ณ ์ฝ๋๋ฅผ (๋ฐ๋ณต)์คํํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์๋๋ฐ, Timer์ DispatchQueue.main.asyncAfter ์ด๋ค. Note: Before I start, I want to make it clear that there is a significant energy cost to using timers. We’ll look at ways to mitigate this, but broadly..
๋ฌธ์ AppCoordinators์์ childCoordinators๋ฅผ ๊ด๋ฆฌํ๋ค. ์๋ก์ด ํ๋ฉด์ ๋์ฐ๊ธฐ ์ํด coordinator์ viewcontroller๋ฅผ ๋ง๋ค๊ณ , ์์ฑํ coordinator๋ฅผ childCoordinators์ ์ถ๊ฐ ๊ธฐ์กด ํ๋ฉด์ด ์ฌ๋ผ์ง๋ฉด UINavigationControllerDelegate๋ฅผ ํตํด ์๋ฆผ์ ๋ฐ๊ณ , childCoordinators์์ ํด๋น viewcontroller๋ฅผ ๊ด๋ฆฌํ๋ coordinator๋ฅผ ์ญ์ ํด์ผ ํจ ์ฌ๊ธฐ์์ fromCoordinator๋ฅผ ๊ฐ ๋ทฐ์ปจ์ผ๋ก ํ๋์ฉ ํ๋ณํํด ๋ณด๊ณ , ๋๋ฉด ๊ทธ ๋ทฐ์ปจ์ ๊ด๋ฆฌํ๋ coordinator๋ฅผ childCoordinators๋ก๋ถํฐ ์ ๊ฑฐํจ ๊ฐ ๋ทฐ์ปจ์ผ๋ก ํ๋์ฉ ํ๋ณํํ๋ ๋ฐ์ ์ค๋ณต ์ฝ๋๊ฐ ๋๋ฌด ๋ง์ด ๋ฐ์ํจ extension AppC..
Rounding a double value to x number of decimal places in swift ์์์ n์งธ ์๋ฆฌ๊น์ง ์ถ๋ ฅํ๊ธฐ 1. round() ํ์ฉ let x = 1.23556789 let y = Double(round(1000 * x) / 1000) print(y) /// 1.236 ์๋ฅผ ๋ค์ด ์์์ 3์งธ์๋ฆฌ๊น์ง ์ถ๋ ฅํด์ผ ํ๋ค๋ฉด, ์๋ ๊ฐ์ 1000์ ๊ณฑํ๋ค ๋ฐ์ฌ๋ฆผ ์ฒ๋ฆฌํ๋ค ๋ค์ 1000์ผ๋ก ๋๋๋ค ์ด๋ ๊ฒ ๋ณํํ ์ ์๋ค. ์์ฃผ ์ฌ์ฉํ๋ค๋ฉด ์ต์คํ ์ ์ผ๋ก๋ ์ฌ์ฉ ๊ฐ๋ฅ extension Double { /// Rounds the double to decimal places value func rounded(toPlaces places:Int) -> Double { let divisor =..
โ๏ธ ์ด ๊ธ์ ์๋ฆฌ์ฆ๋ ์๋์ ์ธ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด ์์ฑ๋์์ต๋๋ค. Coordinator Pattern How to use the coordinator pattern in iOS apps Advanced coordinators in iOS โ๏ธ ์๋์ ๋ ๋ฌธ์๋ ์กฐ์ ํ๊ฒ๋๋ง ๋ฒ์ญ์ ํด ๋์์ผ๋ ํน์ ํ์ํ์ ๋ถ ์ฐธ๊ณ ํ์ธ์. How to use the coordinator pattern in iOS apps ํด์ ๋ฐ ์ ๋ฆฌ Advanced coordinators in iOS ํด์ ๋ฐ ์ ๋ฆฌ โ๏ธ ์ด์ ํธ์ธ (1) - ์ฝ๋๋ค์ดํฐ ๊ฐ๋ ์ดํดํ๊ธฐ๋ ์ฌ๊ธฐ์ ์์ต๋๋ค. โ๏ธ ๋ ธ์ ์ด ๋ ํธํ์๋ค๋ฉด ์ฌ๊ธฐ์ 1,2ํธ ํตํฉ๋ณธ ๋ฅผ ํ์ธํด ์ฃผ์ธ์. Coordinator ๊ตฌํ ์ด์ ์ค๋ช ์ ๋ง์น๊ณ ์ค์ ์ฝ๋๋ฅผ ๋ณด๋ฉฐ ๊ตฌํํด ๋ด ์๋ค. ์์ ..
โ๏ธ ์ด ๊ธ์ ์๋ฆฌ์ฆ๋ ์๋์ ์ธ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด ์์ฑ๋์์ต๋๋ค. Coordinator Pattern How to use the coordinator pattern in iOS apps Advanced coordinators in iOS โ๏ธ ์๋์ ๋ ๋ฌธ์๋ ์กฐ์ ํ๊ฒ๋๋ง ๋ฒ์ญ์ ํด ๋์์ผ๋ ํน์ ํ์ํ์ ๋ถ ์ฐธ๊ณ ํ์ธ์. How to use the coordinator pattern in iOS apps ํด์ ๋ฐ ์ ๋ฆฌ Advanced coordinators in iOS ํด์ ๋ฐ ์ ๋ฆฌ โ๏ธ ๋ค์ ํธ์ธ (2) - ์ฝ๋๋ค์ดํฐ ๊ตฌํํ๊ธฐ ๋ ์ฌ๊ธฐ ์ ์์ต๋๋ค. โ๏ธ ๋ ธ์ ์ด ๋ ํธํ์๋ค๋ฉด ์ฌ๊ธฐ์ 1,2ํธ ํตํฉ๋ณธ ๋ฅผ ํ์ธํด ์ฃผ์ธ์. Coordinator (์ฝ๋๋ค์ดํฐ)๋? Coordinator๋ coordinate(์กฐ์ ..
Advanced coordinators in iOS iOS ์ฑ์์ ์ฝ๋๋ค์ดํฐ ํจํด์ ์ ์ฉํ ๋ ๋ง์ฃผ์น๋ 6๊ฐ์ง ๋ฌธ์ ๋ค์ ๋ํ ํด๋ต์ ์ฐพ๋๋ค. 1. child coordinators๋ฅผ ์ธ์ , ์ด๋ป๊ฒ ์ฌ์ฉํด์ผ ํ๋๊ฐ? ์ฑ์ด ์ปค์ง๋ฉด ๋ถ๋ชจ ์ฝ๋๋ค์ดํฐ์ ์์ ์ฝ๋๋ค์ดํฐ๋ฅผ ๋ ํ์๊ฐ ์๋ค. ์์ ์ฝ๋๋ค์ดํฐ๋ ๊ฐ๊ฐ ๋ค๋ฅธ ๊ธฐ๋ฅ(์ฑ ์)์ ๋งก๋๋ค ์์ ์ฝ๋๋ค์ดํฐ ํ๋์ ํ๋ฆ์ด ๋๋ฌ์ ๋, ๋ถ๋ชจ ์ฝ๋๋ค์ดํฐ์๊ฒ ์ด๋ฅผ ์๋ฆฌ๊ณ , ๋ค๋ฅธ ๊ณณ์ผ๋ก ํ๋ฆ์ ์ด์ด์ค๋ค. ๋ณต์กํ ์ฑ์ ๊ธฐ๋ฅ์ ์๊ฒ ๋๋์ด ์ฌ์ฌ์ฉ์ด ์ฝ๊ฒ ํจ child coordinator ์์ class BuyCoordinator: Coordinator { var childCoordinators = [Coordinator]() var navigationController: UI..
How to use the coordinator pattern in iOS apps VC๊ฐ ์ฝ๋๋ค์ดํฐ๋ฅผ ์์ ํ๋ ๋ฐฉ์์ผ๋ก ์กฐ๊ธ ๋ ๊ฐ๋จํ๋ค. ์์ด ํด์๊ณผ ์ฝ๋ ์์ ์์ฃผ๋ก ์ ๋ฆฌ. iOS์ฑ์์ ์ฝ๋๋ค์ดํฐ ํจํด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ view controller์ navigation controller๋ฅผ ๋จ์ํํ๊ธฐ. ์ฌ๊ธฐ์๋ child coordinator ์ฌ์ฉ ์ง์ ๊น์ง ๋ฐฐ์ด๋ค. child coordinator ์ฌ์ฉ๋ฒ์ ๋ค์ ๋ฌธ์์์ ๋ฐฐ์ด๋ค. iOS ์ฑ์์ ์ฝ๋๋ค์ดํฐ ํจํด์ ์ฌ์ฉํ๋ฉด… View Controller์์ ์ฑ ํ์(app navigation) ์์ ์ ์ ๊ฑฐํ ์ ์๋ค. ์ฐ๋ฆฌ๊ฐ ํ์ํ ๋ ์ฑ์ ํ๋ฆ์ ์กฐ์ ํ ์ ์๋ค. ViewController๋ค์ ๊ด๋ฆฌํ๊ณ ์ฌ์ฌ์ฉํ๊ธฐ ๋ ์ฌ์์ง๋ค. massive view c..