์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- BFS
- SwiftUI
- ์ด์งํ์
- ์ฝํ
- ๋นํธ์ฐ์ฐ์
- ๋ฐฑ์ค
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑํธ๋ํน
- ๋ธ๋ฃจํธํฌ์ค
- ์์
- ์คํ
- ๋ถํ ์ ๋ณต
- WebApp
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- dfs
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ๋ถํ ํ์
- WebView
- Swift
- ํ๋ก๊ทธ๋๋จธ์ค
- ์๊ณ ๋ฆฌ์ฆ
- ๋ถํ ์ ๋ณต
- ios
- ๋์ ํฉ
- dp
- ์ฝ๋ฉํ ์คํธ
- Queue
- ๋ฌธ์์ด
- Today
- Total
๋ชฉ๋ก๐ iOS ๊ฐ๋ฐ/SwiftUI (3)
MUKER_DEV with iOS
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Qc6G1/btrze0Nf7L7/W2RaMN2mKvsiBtbsZDm8W0/img.png)
preview๋ ๊ธฐ๋ณธ์ ์ผ๋ก canvas์ ์ํ๋ ๊ธฐ์ข ์ ๋ชจ์์ผ๋ก ๋ฟ๋ ค์ค๋ค. ์ด๋ ์ํ๋ ํฌ๊ธฐ ๋งํผ์ layout์ผ๋ก preview๋ฅผ ์ค์ ํ๊ณ ์ถ๋ค๋ฉด .previewLayout ์์์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. .previewLayout(.fixed(width: 300, height: 70)) Group์ ์ง์ด์ ์ฌ๋ฌ๊ฐ์ ๋ทฐ๋ฅผ ํ๋ฒ์ canvas์ ๋์ธ ์ ์์ต๋๋ค. struct LandmarkRow_Previews: PreviewProvider { static var previews: some View { Group { LandmarkRow(landmark: landmarks[0]) LandmarkRow(landmark: landmarks[1]) } .previewLayout(.fixed(width: 300, ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ctby0G/btrx1xzbwvO/xKkB3fIQo6nX6wbS3EL9fK/img.png)
BundleExtension.swift extension Bundle { func decode(filename: String, as type: T.Type) -> T { guard let url = self.url(forResource: filename, withExtension: nil) else { fatalError("๋ฒ๋ค์ \(filename)์ด ์์ต๋๋ค.") } guard let data = try? Data(contentsOf: url) else { fatalError("\(url)๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.") } guard let decodedData = try? JSONDecoder().decode(T.self, from: data) else { fatalError("๋ฐ์ดํฐ ๋ณตํธ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cqIvcV/btrwaqmBfvk/Uvo1D5le6wEJgDd1KT5rgK/img.png)
์ ์ธํ ๋ฐฉ์ SwiftUI๋ ๋ฌด์(What)์ ์ด์ ์ ๋ง์ถฅ๋๋ค. ๋ช ๋ นํ ๋ฐฉ์์ด ์ด๋ป๊ฒ(How)์ ์ด์ ์ ๋ง์ถ๋๊ฒ๊ณผ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ ์ธํ ๋ฐฉ์์ผ๋ก ํ์คํ๋ฅผ ๋ง๋ ๋ค๋ฉด "ํ์คํ ํ ๊ทธ๋ฆ ๋ง๋ค์ด์ฃผ์ธ์" ํ๊ณ ์ฃผ๋ฌธ์ ๋ฃ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ์ ์ธ์ ํ๋ฉด ์กฐ๋ฆฌ ๊ณผ์ ์ ์๋ฆฌ์ฌ์๊ฒ ์ ์ ์ผ๋ก ๋งก๊ธฐ๊ฒ ๋์ฃ . ์ด์ ๋น๊ตํด ๋ช ๋ นํ ๋ฐฉ์์ ํ์คํ๋ฅผ ๋ ์ํผ์ ๋ฐ๋ผ ๊ณผ์ ์ ์ฐจ๋ก๋๋ก ์ํํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ๋จ๊ณ๋ณ ์์ ์ํ ์ ์ด์ ์ ์ํ๊ฐ ์ด๋ ๋์ง๋ ์ค์ํ ์์์ ๋๋ค. ์๋ํ SwiftUI๋ ๊ฐ๋ฅํ ๋ง์ ๊ธฐ๋ฅ์ด ์๋์ผ๋ก ์ํ๋ ์ ์๊ฒ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ๋งค๋ฒ ์ง์ ์์ฑํด ์ฃผ์ด์ผ ํ๋ ์์ฉ๊ตฌ๋ฅผ ์๋ตํ ์ ์๊ณ ์ฝ๋์ ์์ ์ค์ฌ ์์ฐ์ฑ์ ๋์ผ ์ ์๊ฒ ๋์์ต๋๋ค. ์กฐํฉ SwiftUI์ API๋ ๋ทฐ์ ์กฐํฉ๊ณผ ๋ถ๋ฆฌ๋ฅผ ๊ฐ๋จ..