์ ์ฒด ๊ธ
-
TestFlight ์ฌ์ฉํ๊ธฐ (์ฑ ๊ด๋ฆฌ์ ๋ฐ ํ ์คํฐ๋ค)App Store 2023. 6. 26. 11:55
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ๊ฐ๋ฐ๋ ์ ํ์ iOS, iPadOS, macOS ๋ฑ๋ฑ ์ฑ์ ํ ์คํธ ํ๊ธฐ ์ํด TestFlight๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป ํด๋น ํฌ์คํ ์์๋ ์ฐ์ ์ฑ ๊ด๋ฆฌ์๊ฐ ํ ์คํฐ๋ค์ ๋ฑ๋กํ๊ณ ๊ถํ์ ๋ถ์ฌํ๋ ๊ณผ์ ๊ณผ ์ด๋ ๋ฐ์ ํ ์คํฐ๋ค์ด ํ ํ์ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋๋ ๋ณด๊ฒ ์ต๋๋ค๐บ๐ป ์ฐ์ ์์ฃผ ๊ฐ๋จํ ํ ์คํธ ํ๋ผ์ดํธ๊ฐ ๋ญ์ง ์์๋ณด๊ณ ๊ฐ๊น์? TestFlight ์ค์ฌ์ ์ผ๋ช ํ ํ์ App Store์ ๋ฆด๋ฆฌ์ฆํ๊ธฐ ์ ์ ํ ์คํฐ๋ค์ ์ด๋ํด ์ฑ ๋ฐ ์ฑ ํด๋ฆฝ๋ค์ ํ ์คํธํ๊ณ ํผ๋๋ฐฑ์ ์ป์ ์ ์๋๋ก ์ ๊ณตํด์ฃผ๋ ๋๊ตฌ์ ๋๋ค. ์ต๋ ๊ณต๊ฐ ๋งํฌ๋ฅผ ๊ณต์ ํด ํ ์คํฐ๋ค์ 10,000๋ช ๊น์ง ์ด๋ํ ์ ์์ผ๋ฉฐ ํ๋ฒ์ ์ต๋ 100๊ฐ์ ์ฑ์ ํ ์คํธํ ์ ์์ต๋๋ค. ์ ๋ก๋๋ ์ฑ ๋น๋๋ 90์ผ..
-
SwiftUI์์ Tooltip ๊ตฌํํ๊ธฐSwiftUI 2023. 6. 22. 14:33
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ ๊ฐ๋จํ Tooltip์ ์ง์ ๊ทธ๋ ค๋ณด๋ฉฐ Shape๋ฅผ ๋ค๋ค๋ณผ๊น ํฉ๋๋ค๐๐ป โ ๏ธ ์ฃผ์ - ์์ฃผ ๊ฐ๋จํ Shape๋ฅผ ๋ค๋ค๋ณด๋๊ฒ์ ์ด์ ์ ๋ง์ท๊ธฐ์ ๊ฐ๋จํ ์ ์์! ์ฐ์ ๋๊ฐ์ง๊ฐ ํ์ํฉ๋๋ค. ํ๋๋ ์ผ๊ฐํ ๋ชจ์์ Shape๋ฅผ ๋ง๋๋๊ฒ ๊ทธ๋ฆฌ๊ณ ํ๋๋ ํดํ ํ ์คํธ๊ฐ ๋ค์ด๊ฐ ๋ผ์ด๋๋ Rectangle ๋ทฐ๋ฅผ ๋ง๋๋๊ฒ! ๋จผ์ ์ผ๊ฐํ ๋ชจ์์ ์ฃ์ง๋ฅผ ๊ฐ์ง Shape๋ฅผ ๋ง๋ค์ด๋ณผ๊ป์. Custom Triangle Shape private struct CustomTriangleShape: Shape { private var width: CGFloat private var height: CGFloat private var radius: CGFloat fileprivate i..
-
์คํ์์ค ๋ผ์ด์ผ์ค ํ์iOS 2023. 6. 19. 09:59
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ฑ์ ๊ตฌ์ฑํ๋ฉด์ ์ฌ์ฉํ ์คํ์์ค ๋ผ์ด์ผ์ค๋ฅผ ๋๋ฐ์ด์ค ํด๋น ์ฑ ์ค์ ์์ ํ์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป ์ฑ์์ ์ฌ์ฉ๋ ์คํ์์ค๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋ผ์ด์ผ์ค ํ์๋ฅผ ๊ผญ ํด์ค์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด๋ ์ค์ ํด๋น ์ฑ ๋ด๋ถ์์ ์ค์ ์ด๋ ๋ง์ดํ์ด์ง ๊ฐ์ ํ๋ฉด์์ ํ์ํด์ค ์๋ ์๊ณ , ๋๋ฐ์ด์ค > ์ค์ > ํด๋น ์ฑ์์ ๋ผ์ด์ผ์ค ์ ๋ณด๋ฅผ ํ์ํด์ค ์๋ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ํ์์ธ ๋๋ฐ์ด์ค > ์ค์ > ํด๋น ์ฑ ์ ๋ณด์์ ๋ผ์ด์ผ์ค๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค๐ LicensePlist ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ ์ฐ์ ์ฌ์ฉ๋ ์คํ์์ค ๋ผ์ด์ผ์ค๋ค์ ์ ๋ณด๋ฅผ ์ถ์ถํด์ค๊ธฐ ์ํ์ฌ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. https://github.com/mono0926/LicensePlist GitHub - ..
-
Beyond Scroll Views (feat. WWDC 2023)SwiftUI 2023. 6. 15. 11:05
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ API๋ฅผ ์ฌ์ฉํด ์คํฌ๋กค ๋ทฐ๋ฅผ ๋ ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ณด๊ฒ ์ต๋๋ค๐๐ป ํนํ ์ด์ ๊ณผ๋ ๋ฐฉ์์ผ๋ก ๋ค๋ฅธ ์คํฌ๋กค ๋ทฐ๋ฅผ ์ปค์คํ ํ๊ฒ ์ ์ํ๋๊ฑธ ๋ณด๋ คํด์. ์ฐ๋ฆฌ๊ฐ ์ฒ๋ฆฌํ๋ ๋ง์ ์ปจํ ์ธ ๋ ๊ณ ์ ๋ ํ๋ฉด์ ๋ค ๋ด์ ์ ์์ด ์คํฌ๋กค๋ง์ ๋ง์ด ์ด์ฉํฉ๋๋ค. ์ด๋ฅผ ํตํด ํ๋ฉด์ ๋ง์๊ฒ์ ๋ด์ ์ ์์ฃ . SwiftUI๋ ์คํฌ๋กค์ ์ฑ์ ํตํฉํ ์ ์๋ ๋ช๊ฐ์ง ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ค์ ์ ๊ณตํฉ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ๊ทธ ์ค ํ๋์ธ ScrollView๋ฅผ ๋ณด๊ฒ ์ต๋๋ค! ScrollView์ ๋ํ ๊ฐ๋ต ์ ๋ฆฌ ์คํฌ๋กค ๋ทฐ๋ ์ปจํ ์ธ ๋ฅผ ์คํฌ๋กคํ ์ ์๋ building block์ ๋๋ค. ์คํฌ๋กค ๋ทฐ๋ ์คํฌ๋กค ๋ฐฉํฅ์ ์ค์ ํ๊ณ ๋ด๋ถ ์ปจํ ์ธ ๋ฅผ ๋ด์์ฃผ์ฃ . ํด๋น ์ปจํ ์ธ ๊ฐ ์คํฌ๋กค ๋ทฐ์ ํฌ๊ธฐ๋ฅผ ์ด๊ณผํ๋ฉด ํด๋น ์ปจํ ์ธ ์ค..
-
Model your schema with SwiftData (feat. WWDC 2023)SwiftData 2023. 6. 13. 12:02
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ด์ SwiftData์ ๋ชจ๋ธ ์คํค๋ง๋ค์ ๋ํด ์์๋ณด๋ ค ํฉ๋๋ค๐๐ป Utilizing schema macros ์คํค๋ง ๋งคํฌ๋ก๋ฅผ ์ต๋ํ ํ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ณผ๊น์? ์คํค๋ง ๋งคํฌ๋ก๋ฅผ ํ์ฉํ๋ฉด ์ฑ์์ ์๋ฒฝํ๊ฒ ์๋ํ๋๋ก ์ง์์ ์ธ ํ๊ฒฝ์ ๋์์ ์ปค์คํ ํ๊ฒ ์ง์ ํ ์ ์์ด์. @Model final class Trip { var name: String var destination: String var start_date: Date var end_date: Date var bucketList: [BucketListItem]? = [] var livingAccommodation: LivingAccommodation? ... } ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋นํ๋ ๋ชจ๋ธ์ด ์์๋ ์ฌ๊ธฐ์ ๊ฐ ..
-
Build an app with SwiftData (feat. WWDC 2023)SwiftData 2023. 6. 13. 10:51
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ WWDC 2023์์ ๊ณต๊ฐ๋ SwiftData๋ก ์ฑ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐๐ป ์ฐ์ ์ด๋ฒ ํฌ์คํ ์ WWDC 2023์ ์น์ ์ ๋ณด๋ฉด์ ์๊ฐํ๋ ์ฑ์ ๋ค์ด ๋ฐ์ ๊ฐ์ด ์งํ๋๋ ํ์์ ๋๋ค. ๊ทธ๋ ๊ธฐ์ ์๋ ๋งํฌ๋ฅผ ํตํด ํด๋น ํ๋ก์ ํธ๋ฅผ ๋ค์ด ๋ฐ์์ ๊ฐ์ด ์ดํด๋ณด๋ฉด์ ํ๋ฆ์ ์ดํดํ๋๊ฒ์ด ์ข์ต๋๋ค๐ https://developer.apple.com/documentation/SwiftUI/Building-a-document-based-app-using-SwiftData Building a document-based app using SwiftData | Apple Developer Documentation Code along with the WWDC presen..
-
Expand on Swift macros (feat. WWDC 2023)Swift 2023. 6. 10. 09:37
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ Swift 5.9์์ ์๊ฐ๋ ๋งคํฌ๋ก ๊ธฐ๋ฅ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ Why macros? ์ฐ์ ๋งคํฌ๋ก๋ฅผ ์ ๋ง๋ค์๋์ง ๊ทธ ์ ํ์ ์๊ธฐ๋ฅผ ๋ค์ด๋ณผ๊น์? Swift๋ ํํ์ ์ธ ์ฝ๋์ API๋ฅผ ์์ฑํ๋๊ฒ์ ๋ฅํฉ๋๋ค. ๊ทธ๋ ๊ธฐ์ ์ฌ์ฉ์๊ฐ ๋ฐ๋ณต์ ์ธ ์์ฉ๊ตฌ ์์ฑ์ ํผํ๋๋ฐ ๋์์ด ๋๋ result builders์ ๊ฐ์ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๊ณค ํ์ฃ . ์ฆ ์ด๋ ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด Codable์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ ํํ ์ ํ์ ์์ด Codable์ ์ฌ์ฉํ ์ ์๊ณ Codable ์ง์์ ์ถ๊ฐํ๋๊ฒ์ด ์ฝ๋๋ฅผ ๋๋ฆฌ๋ฉด์๊น์ง ์์ฑํ ๊ฐ์น๊ฐ ์๋์ง ํ๋จํ๊ณ ๊ฒฐ์ ํ ํ์๊ฐ ์๊ฒ ๋ฉ๋๋ค. ์ฌ๊ธฐ๊น์ง๋ Swift ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ฉด์ ํ๋กํผํฐ ๋ํผ๋ผ๋์ง Result builders๋ผ๋์ง ๋ฑ ๋ง์ด ์ ํด๋ดค๋ ๊ธฐ..
-
Swift 5.9 ์ฌ์ฉ ๋ง๋ณด๊ธฐ (feat. WWDC 2023)Swift 2023. 6. 9. 15:41
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ Swift 5.9๊ฐ ์๊ฐ๋๋ฉด์ ์๋ก ๋์จ๊ฒ๋ค์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค๐๐ป ์ ์ฒด์ ์ผ๋ก Swift ๊ฐ๋ฐ ํ๋ก์ ํธ ๋ฐฉ์์ ์ ๋ฐ์ดํธ๋ถํฐ ์ธ์ด์ ์ผ๋ก ๋งคํฌ๋ก ๊ธฐ๋ฅ๋ ์ด๋ฒ์ ์๊ฒผ๊ณ ์ฑ๋ฅ ๋ฐ ์์ ๋๋ ๋ง์ด ํฅ์๋์๋ค๊ณ ํด์. ์ ๋ ์ด๋ฒ ํฌ์คํ ์์๋ ์ค์ ์ ์ผ๋ก Swift ์ธ์ด์๋ง ํฌ์ปค์ฑ์ ๋ง์ถฐ ํ๋ฒ ๋ณผ๊นํฉ๋๋ค. if ๋ฐ switch ํํ ๋ณ์๋ฅผ ์ด๊ธฐํ ํ ๋ ์ด์ ๋ ์๋์ ๊ฐ์ด if ๋ฐ switch ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฆ, ์ฝ๋๋ฅผ ์ค์ด๋๋ฐ ๋ง์ ๋์์ ์ค๋๋ค๐ // if let score = 800 let simpleResult = if score > 500 { "Pass" } else { "Fail" } print(simpleResult) // switch let comp..