Part1: ๆฌ็ฉใฎ็ๅๆญฉiOSใๅญฆใถ(SwiftUI, SwiftData, 2024)
็่ๅ ฑ้่ใใใจใใงใใSwiftUI่ฌ็พฉ๏ผ ไฝใ็ฅใใชใใฆใๅงใใใใจใใงใใพใใ
ๅ่ฌ็ 432ๅ
้ฃๆๅบฆ ๅ ฅ้
ๅ่ฌๆ้ ็กๅถ้
- ่งฃๆฑบ
ํ์ธ ๋ฒํผ ๋ง๋ค ๋ ํฐํธ ์์ ํ์ดํธ ์ฃผ๋ ์์น ๋ฌธ์๋๋ ค์.
<img src="https://cdn.inflearn.com/public/files/posts/d38394db-3890-4d67-8247-13d14a13ef1f/3409f134-3e51-4d92-924e-4f7089ae2729.webp" media-type="img"
iosswiftswiftuiswift5.5hyoniri
ใป
5ใถๆๅ
1
57
2
- ่งฃๆฑบ
Button(action: label:)์ด ๊ฐ์์ ๋ฌ๋ผ์!
๊ฐ์๋ฅผ ๋ณด๋ฉด Button(action: {}, label: {})๋ก ๋์ค๋๋ฐ์. ์ ๋ ๊ฐ์ ๊ฒ์ ์ ํํ๋๋ฐ ์๋์ ๊ฐ์ด ๋์ค๋ฉด์ ์๋ฌ(?)๊ฐ ๋น๋๋ค.<img src="https://cdn.inflearn.com/
iosswiftswiftuiswift5.5hyoniri
ใป
5ใถๆๅ
1
54
2
- ่งฃๆฑบ
HStack๊ณผ VStack์์ alignment์ spacing ๋ฐฉํฅ์ด ์ดํด๊ฐ ์ ์๊ฐ๋๋ค.
์คํฌ ์ฐฝ ์๋ ๋ถ๋ถ์ HStack์ VStack(์์, ์๋๋ ค, ํ์ฐ์ค)๊ณผ VStack(์, ์ฝ) ๋๊ฐ์ VStack ๊ตฌ์กฐ๋ก ๋์ด ์์์์.์ฌ๊ธฐ์ alignmen
iosswiftswiftuiswift5.5hyoniri
ใป
5ใถๆๅ
1
59
2
- ่งฃๆฑบ
modifiers ์ฐฝ์ด ์๋ณด์ฌ์.
xcode 26.0.1 ์ฌ์ฉ ์ค์ธ๋ฐ์.inspectors ์ฐฝ์ ์ด๋ ค ์๋๋ฐ์.modifiers ์ฐฝ์ด ์๊ณ
iosswiftswiftuiswift5.5hyoniri
ใป
5ใถๆๅ
1
84
2
- ่งฃๆฑบ
showAlert ๋ณ์ mvi ํจํด์์์ ์ฌ์ฉ๋ฒ
์๋ ํ์ธ์ ์ ๊ตฌ๋ง๋!์ฑ ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ ์, ๋ณดํต showAlert ๊ฐ์ UI ๋์์ ์ ์ดํ๋ ๋ณ์๋ ํ๋ฉด(Screen)์์ ์ง์ ๊ด๋ฆฌํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค๊ณ ๋ค์์ด์
iosswiftswiftuiswift5.5devjinsung10175584
ใป
6ใถๆๅ
1
45
2
- ่งฃๆฑบ
swift vs swiftUI
์๋ ํ์ธ์. Swift์ ์ ๋ฌธํ ์ฃผ์ง์ฑ์ ๋๋ค.ํผ์ AI๋ฅผ ํตํด ํ์ตํ๋ ์ค Xcode์ Mac ํค๋ณด๋ ๋จ์ถํค ์ ์์ ์ด๋ ค์์ ๋๊ปด ์ข์ ๊ฐ์๋ฅผ ์ฐพ๊ฒ ๋์์ต๋๋ค.
iosswiftswiftuiswift5.5devjinsung10175584
ใป
6ใถๆๅ
1
58
1
- ่งฃๆฑบ
๋๋ง์๊ธฐ ๋ก์ง ๊ตฌํ ์ค ios 16 (iphone 16) ์๋ฎฌ๋ ์ดํฐ ์์ด ์ ๋ ฅ ๋ถ๊ฐ
์๋ ํ์ธ์!์์์์์ฒ๋ผ ๊ณผ๊ฑฐ์๋ ํ๊ธ์ ๋ ฅ์ด ์ด๋ ค์ ๋๋ฐ, ์ด๋ฒ์ ์๋ก ๋งฅ๋ฏธ๋ m4๋ฅผ ๊ตฌ๋งคํ ํ ์ต์ xcode๋ฅผ ์ฌ์ฉํด์ ๋ค์ ๊ณต๋ถํ๋ ์ค์ ๋๋ค.&nb
iosswiftswiftuiswift5.5jinwoongok
ใป
7ใถๆๅ
1
64
1
- ่งฃๆฑบ
@Binding๋ ๊ฐ์ฒด๋ ์๋์ผ๋ก ์ ์ฅ์ด ๋๋์?
SwiftData๋ฅผ ์ฌ์ฉํด์ TodoList ์ฑ์ ๋ง๋ค์ด๋ณด๋ ์ค์ ๋๋ค. ๊ฐ์๋ฅผ ๋ฃ๊ธฐ ์ ์ ๋ณต์ต ์ฐจ์์์ ๋จผ์ ๊ตฌํํด๋ดค๋๋ฐ, ์์๊ณผ ๋ค๋ฅธ ๋์์ ๋ฐ๊ฒฌํ์ต๋๋ค.์ฒ์์
iosswiftswiftuiswift5.5leebs309194692
ใป
9ใถๆๅ
1
92
2
- ่งฃๆฑบ
์น์ 5. Class๋ก Todo ๋ฐ์ดํฐ ๊ด๋ฆฌํ๊ธฐ ๋ถ๋ถ์์ ์ง๋ฌธ ์์ต๋๋ค.
์์ ์ฝ๋๋๋ก ์์ฑํ๋๋ฐ, Referencing initializer 'init(_:content:)' on 'ForEach' requires that 'Todo' conform to 'Identifiable' ํด๋น ์ค
iosswiftswiftuiswift5.5ไฝๆ่ ใชใ
ใป
10ใถๆๅ
1
79
2
- ่งฃๆฑบ
JSON_Decodable.playground์์ print๋ฌธ์ด ์์ฐํ๋ ๋ฌธ์
JSON_Decodable.playground ์์ print ๋ฌธ์ด ์์ฐํ์
iosswiftswiftuiswift5.5perfecctism8243
ใป
1ๅนดๅ
0
115
2
- ่งฃๆฑบ
List๋ฅผ ๋ฃ์ผ๋ ์์น๊ฐ ์ ๋๋ก ์กฐ์ ์ด ๋๋๋ฐ ๊ทธ๋ผ Spacer๋ ๋ฐ๋ก ๋ฃ์ ํ์๊ฐ ์๋๊ฑธ๊น์?
์๋ ํ์ธ์ ์ ์๋. wordRelay ๊ฐ์ ์ ์๊ฐํ์์ต๋๋ค. ๊ฐ์๋ฅผ ๋ค ์๊ฐํ ๋ค์ ๋ณต์ตํ๊ณ ์ ์์ ์งํํ๋ ์ฝ๋๋ฅผ ์ฒ์๋ถํฐ ๋ค์ ๋ฐ๋ผ ์น๋ ์์ค์ ๋๋ง์๊ธฐ ๊ฒ์ ํ์ดํ๊ณผ ๋จ์ด ์ ๋ ฅ์ฐฝ, ํ์ธ ๋ฒํผ ๋ฐ์ Spacer๋ฅผ ๋ฐ๋ก ๋ฃ์ง ์๊ณ List๋ง ๋ฃ์ด๋ ์์น๊ฐ ์ํ
iosswiftswiftuiswift5.5minari2405
ใป
1
101
1
- ่งฃๆฑบ
์ฝ์์ฐฝ์ ๊ฐ์ด ์์ฐํ๊ณ ์์ต๋๋ค.
์๋ ํ์ธ์. ์ ์๋์ข์ ๊ฐ์ ๋๋ฌด ์ ๋ฃ๊ณ ์์ต๋๋ค.wordRelay ์ค์ต ์ค์ธ๋ฐ, ํ๋จ ์ฝ์์ Executable ์ด๋ Preview ์์ญ์ ๊ฐ์ด ์์ฐํ๊ณ ์์ด์์.์ ๋ ฅํ์ ๋จ์ด๋: aaaa ์๋ฐ ๊ฐ๋ค์ ํ์ธํ ์๊ฐ ์๋ค์.
iosswiftswiftuiswift5.5bhjun5096
ใป
1
133
2
- ่งฃๆฑบ
todo ์ฑ์์ ๋ฏธ๋ฆฌ ์ ์ด๋จ๋ ์์๋ค์ ์ ์๋์ค๋์?
์๋ ํ์ธ์! ๊ฐ์ ๋๋ฌด ์ ๋ฃ๊ณ ์์ต๋๋ค.todo์ฑ ํ๋ก์ ํธ ํ๋ฐ๋ถ swiftdata ์ ์ฉ ์ค์ต๋์๋ฎฌ๋ ์ดํฐ๋ฅผ ๋๋ ค๋ณด๋๋ฐ ๋ถ๋ช ์ฝ๋์์๋ todoList๋ณ์์ Todo ๊ฐ์ฒด 3๊ฐ๋ฅผ ๋ฃ์ด๋์๋๋ฐ ์คํํ ๋๋ ๋ฆฌ์คํธ์ ์๋จ๋๋ผ๊ตฌ์.&
iosswiftswiftuiswift5.5nelime
ใป
1
121
2
- ่งฃๆฑบ
Swift 6 ์ ๋ฐ์ดํธ ์ดํ Todo ์์ ์คํ ์ค๋ฅ
Todo.swift์์ 'Cannot expand accessors on variable declared with 'let'; this is an error in the Swift 6 language mode' ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค!
iosswiftswiftuiswift5.5imo2k
ใป
1
177
2
- ๆช่งฃๆฑบ
ToDo ์ฑ @Observable ๊ธฐ๋ฅ(?) ์ง๋ฌธ์ ๋๋ค
์๋ ํ์ธ์ ๊ฐ์ฌ๋ ์ข์ ๊ฐ์ ์ ์๊ฐํ๊ณ ์์ต๋๋ค!๊ฐ์์์ @Observable ์ฌ์ฉ์ ํฐ ์ค๋ช ์์ด ๋์ด๊ฐ์ ์ ๊ฐ์ธ์ ์ผ๋ก ์์๋ณด๋ ์ค์ ๋๋ค<a target="_blank" rel="noopener noreferrer nofollow" h
iosswiftswiftuiswift5.5ah20755939
ใป
0
198
2
- ่งฃๆฑบ
Todo ์ฑ @Observable ์ง๋ฌธ์ ๋๋ค
์๋ ํ์ธ์ @Observable ์ด ๋ถ๋ถ์์ ์๋ฌ๊ฐ ๋ฐ์ํด์ ์ง๋ฌธ๋๋ฆฝ๋๋คํ์ฌ ๋งฅ๋ถ ๋ฒ์ ์ Sequoia 15.0์ด๋ฉฐ Xcode ๋ฒ์ ์ 16.0์ ์ฌ์ฉ ์ค์ ๋๋ค Observable()' is only available
iosswiftswiftuiswift5.5ah20755939
ใป
2
188
2
- ่งฃๆฑบ
VStack, HStack์ผ๋ก ๋ทฐ ๊ตฌ์ฑํ๊ธฐ ๊ฐ์ padding ์ง๋ฌธ์ ๋๋ค
์๋ ํ์ธ์ ๊ฐ์ ์๊ฐ ์ค ์ดํด๊ฐ ์๋๋ ๋ถ๋ถ์ด ์์ด์ ์ง๋ฌธ ๋๋ฆฝ๋๋ค import SwiftUI struct ContentView: View { var body: so
iosswiftswiftuiswift5.5ah20755939
ใป
1
213
1
- ่งฃๆฑบ
@State ํน์ฑ(?) ์ง๋ฌธ์ ๋๋ค
import SwiftUI struct ContentView: View { @State private var ToggleCheck: Bool = false // @State ์์ผ๋ฉด ์๋ฌ ์? / ์ฐ์ฐ
iosswiftswiftuiswift5.5ah20755939
ใป
1
149
2
- ่งฃๆฑบ
6-7) ์ด๋ฏธ์ง ์ฌ์ด์ฆ ์ง์ ์์น ์ง๋ฌธ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์ ์ ๊ตฌ๋ง๋!6-7) 7:50 ์ฏค์ ์ด๋ฏธ์ง์ ์ฌ์ด์ฆ๋ฅผ ์ง์ ํด์ฃผ๊ธฐ ์ํด frame() ์์ฑํ์๋ ๋ถ๋ถ์ ์ง๋ฌธ์ด ์์ต๋๋ค.bigBanner์ ์ด๋ฏธ์ง ์ฌ์ด์ฆ ์ง์ ์<p
iosswiftswiftuiswift5.5drfranken1192
ใป
1
158
1
- ่งฃๆฑบ
๊ฐ์ ์๋ฃ๋ฅผ ๋ชจ์๋ณด๋ ํ๋ก๊ทธ๋จ์ ์ ์ํด๋ณด๋ ค๊ณ ํฉ๋๋ค!
์๋ ํ์ธ์! ๋ค๋ฆ์ด ์๋๋ผ ๊ฐ์ ์๋ฃ๋ฅผ ๋ชจ์๋ณด๋ ์ฑ์ ํ๋ ๋ง๋๋ ค๊ณ ํ๋ ์ํฉ์ ๋๋ค์ด ์ฑ์ ๋ง๋ค๊ธฐ ์ํด ์ ๊ตฌ๋ง๋ ๊ฐ์๋ ์ด์ฌํ ๋ค์ ์์ ์ ๋๋คใ ใ ์๋ฅผ ๋ค์ด 1๊ฐ๋ถํฐ~ 12๊ฐ๊น์ง ๊ฐ์๊ฐ ์๊ณ ๊ฐ๊ฐ pdf๋ ppt ๋ฑ์
iosswiftswiftuiswift5.5ah20755939
ใป
0
171
1

