swiftUI
-
SwiftUI๋ก ์บ๋ฆฐ๋ ์ง์ ๊ตฌํํ๊ธฐ (2ํ - ๊ฐ๋ก ์บ๋ฆฐ๋ ๋ฒ์ )SwiftUI 2023. 6. 5. 10:19
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI๋ก ์ปค์คํ ํ๊ฒ ๊ฐ๋ก ์บ๋ฆฐ๋๋ฅผ ๊ตฌํํด๋ณด๋ ํฌ์คํ ์ ํด๋ณด๊ฒ ์ต๋๋ค๐๐ป ์ด์ ์๋ ํฌ์คํ ์์ SwiftUI๋ฅผ ํตํด ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํด์ฃผ๋ DatePicker ๋์ ์ปค์คํ ํ๊ฒ ์ผ๋ฐ์ ์ธ ๋ฌ๋ ฅ ํํ์ ์บ๋ฆฐ๋๋ฅผ ๊ตฌํํด๋ดค์๋๋ฐ์. https://green1229.tistory.com/362 SwiftUI๋ก ์บ๋ฆฐ๋ ์ง์ ๊ตฌํํ๊ธฐ ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ค๋๋ง์ SwiftUI๋ก ๋๋ฅ๋๋ฅ ํด๋ณด๋ ์๊ฐ์ ๋๋ค๐๐ป ๋ญ ๋๋ฅ๋๋ฅ ํด๋ณผ์ง ๊ณ ๋ฏผํ๋ค๊ฐ ๊ทธ๋ฅ ๋ฐ๋ ๋๋ ์์ด ์บ๋ฆฐ๋๋ฅผ ๊ฐ๋จํ๊ฒ ์ง์ ๋ง๋ค์ด๋ณด๊ณ green1229.tistory.com ์ด๋ฒ์๋ ์ผ๋ฐ์ ์ธ ๋ฌ๋ ฅ ํํ๋ณด๋ค ์ฝ๊ฐ ์๋์ ๊ฐ์ ์๋ฐ ๊ฐ๋ก ๋๋์ ์บ๋ฆฐ๋๋ฅผ ์ง์ ์ปค์คํ ํ๊ฒ ๊ทธ๋ฆฌ๊ณ ๊ฐ๋จํ๊ฒ๐ฅ ๋ง๋ค์ด๋ณด๋ ค๊ตฌ..
-
SwiftUI๋ก ์บ๋ฆฐ๋ ์ง์ ๊ตฌํํ๊ธฐSwiftUI 2023. 5. 25. 12:04
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ค๋๋ง์ SwiftUI๋ก ๋๋ฅ๋๋ฅ ํด๋ณด๋ ์๊ฐ์ ๋๋ค๐๐ป ๋ญ ๋๋ฅ๋๋ฅ ํด๋ณผ์ง ๊ณ ๋ฏผํ๋ค๊ฐ ๊ทธ๋ฅ ๋ฐ๋ ๋๋ ์์ด ์บ๋ฆฐ๋๋ฅผ ๊ฐ๋จํ๊ฒ ์ง์ ๋ง๋ค์ด๋ณด๊ณ ์ถ์ด์ก์ต๋๋ค! ๊ทธ๋์ ์บ๋ฆฐ๋๋ฅผ ์ปค์คํ ํ๊ฒ SwiftUI๋ก ๊ตฌํํ๋ ํฌ์คํ ์ด ๋ ๊ฒ ๊ฐ๋ค์๐บ๐ป ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๋ DatePicker ์ฐ์ SwiftUI์์ ๊ธฐ๋ณธ์ ์ผ๋ก DatePicker๋ผ๋ API๋ฅผ ์ ๊ณตํด์ฃผ๊ณ ์๋์ ๊ฐ์ด ์ฐ๋ฆฌ๊ฐ ์ต์ํ ์บ๋ฆฐ๋์ ํํ๋ฅผ ๋ํ๋ผ ์ ์๊ฒ ์์ฃผ ์ฝ๊ฒ ๋์์ค๋๋ค. https://developer.apple.com/documentation/swiftui/datepicker DatePicker | Apple Developer Documentation A control for selecting an ab..
-
AVPlayer in SwiftUI (feat. PIP)SwiftUI 2023. 3. 23. 15:15
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ ์ปค์คํ ํ AVPlayer๋ฅผ ํตํด ๋์์ ํ๋ ์ด์ด ๊ตฌ์ถ์ ํด๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ ๋ฐ๋๋ผ SwiftUI ํ๊ฒฝ์์ ๊ตฌ์ถ์ ์งํํ์์ต๋๋ค. VideoPlayer์ ๋จ์ iOS 14๋ถํฐ SwiftUI์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ VideoPlayer๋ผ๋๊ฒ์ด ์์ต๋๋ค. ๋ฌผ๋ก ๊ฐ๋จํ ๊ตฌํ์ ๋๋ ํด๋น API๋ฅผ ํตํด ๊ตฌ์ถํ ์ ์์ง๋ง, ์ธ๋ถ์ ์ธ ์กฐ์์ด ํ์ํ ๊ฒฝ์ฐ UIKit์์ ์ ๊ณตํ๋ AVPlayer๋ฅผ ์ง์ ์ปค์คํ ํ๊ฒ ๊ตฌ์ฑํด์ผ ๋ฉ๋๋ค๐ฅน ๊ทธ๋ผ ์ด๋ฒ ํฌ์คํ ์์๋ ํฐ ์ค๋ช ๋ณด๋ค๋ ์ฝ๋๋ก ๊ฐ์ด ๋ณด๊ฒ ์ต๋๋ค! ์์ฐธ! ์ฐ์ ํด๋น ํ๋ก์ ํธ ํ๊ฒ์์ ์๋ ์ค์ ์ ์ผ์ค์ผํฉ๋๋ค. ๐๐ป Signing & Capabilites > Background Modes > Audio, Airplay,..
-
UIKit๊ณผ SwiftUI์์ ํ ์คํธ์ ์๊ฐ&ํ๊ฐ ์กฐ์ ํ๊ธฐSwiftUI 2023. 2. 20. 20:40
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ UIKit๊ณผ SwiftUI์์ ํ ์คํธ์ ์๊ฐ ๋ฐ ํ๊ฐ์ ์ค์ ํ๋ ๊ตฌํ์ ํด๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ ์๊ฐ๊ณผ ํ๊ฐ์ด ๋ญ๊น์? ์๊ฐ์ ๊ธ์์ ๊ธ์ ์ฌ์ด ๊ฐ๊ฒฉ์ ๋ปํฉ๋๋ค. ์ฆ Letter Spacing์ด๋ผ๊ณ ๋ ๋ง์ด ํ๊ธฐํ๋ฉฐ ํผ๊ทธ๋ง๋ ์ ํ๋ฆฐ์์ ํด๋น ์์ฑ ๊ฐ์ ์ด๋ฆ๋ ๋ณดํต Letter Spacing์ผ๋ก ํ๊ธฐ๋ฉ๋๋ค. ํ๊ฐ์ ์ค๋์ด๋ผ๊ณ ๋ ํ๋ฉฐ ๊ธ์ํ ์ฌ์ด ๊ฐ๊ฒฉ์ ๋ปํฉ๋๋ค. ํ์ดํฌ๊ทธ๋ํผ์์ ์ธ์ ํ ์ค ์ฌ์ด์ ๊ณต๊ฐ์ ์๋ฏธํ๋ฉฐ ๋ณดํต Line Spacing์ด๋ผ๊ณ ๋ช ์นญํฉ๋๋ค. ์ฐ๋ฆฌ๋ Text, TextField, TextView๋ฅผ ์์ฃผ ์ฌ์ฉํ๋ฉด์ ์ด ํ ์คํธ ๊ฐ ์๊ฐ๊ณผ ํ๊ฐ์ ์กฐ์ ํ ์ผ์ด ๋ง์์ง๋๋ค. ํด๋น ์์ฑ์ ์กฐ์ ํ์ฌ ๋ณด๋ค ๋ ๋ณด๊ธฐ ์ข์ UI๋ฅผ ๋ง๋ค๊ณ ์ฌ์ฉ์๋ค์๊ฒ ์ฝ๊ฒ ์ธ์๋๋๋ก ํด์ค ์..
-
UITextView๋ฅผ SwiftUI์์ ์ปค์คํ ํ๊ฒ ์ฌ์ฉํ๊ธฐSwiftUI 2023. 2. 17. 14:00
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ ํ ์คํธ๋ทฐ ๊ตฌํ์ ์ํด ๊ธฐ๋ณธ ์ ๊ณตํ๋ TextEditor๋ฅผ ์ฌ์ฉํ์ง ์๊ณ UIKit ์ธ์์ UITextView๋ฅผ ๊ฐ์ ธ์ ์ ๋ง๋๋ก ํ ์คํธ๋ทฐ๋ฅผ ์ปค์คํ ํ๊ฒ ๊ตฌํํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค๐ ์ TextEditor ์์ฐ์ฃ !? ์ฐ์ ํ์ฌ ๊ธฐ์ค iOS 16์์ TextEditor๊ฐ ๋ถ๋ช ์ธ๋งํด์ง๊ฒ์ ์ฌ์ค์ ๋๋ค. ๋ค๋ง ์ต์ ๋ฒ์ ์ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์ ์ฒํ ์ฌ๋ฌ๋ถ๋ค์ด ๋ ๋ง์๊ฒ ๊ฐ๊ณ ์ ์ญ์ ๊ทธ๋ ์ต๋๋ค๐ญ 14,15 ๋ฒ์ ๊ธฐ์ค์ผ๋ก ๊ฐ๋จํ ์ง์ด๋ณด๋ฉด ์ฐ์ SwiftUI์ ๊ธฐ๋ณธ ์ ๊ณต๋๋ TextEditor์์๋ ์ฐ๋ฆฌ๊ฐ ํํ ์ฌ์ฉํ๋ placeholder๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ์ง ์์ ํ์ํ๋ฉด overlay๋ก ์ปจํธ๋กค ํด์ค์ผํฉ๋๋ค. ๋ ํ ์คํธ๊ฐ ์ ๋ ฅ๋๋ ์นธ์ Inset์ ์กฐ์ ํ ๋..
-
PopupViewLibrary 2023. 2. 6. 16:27
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ PopupView๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ SwiftUI์์ ํ๋กํ /ํ ์คํธ ๋ฉ์์ง ํน์ ํ์ ์ด๋ ๋ฐํ ์ํธ๋ฅผ ๋ ธ์ถํด์ผ ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ API๋ฅผ ์ฌ์ฉํ์ฌ๋ ๋๊ณ ์๋๋ฉด ์กฐ๊ธ ๋ ์ปค์คํ ํ๊ฒ ๋ง๋ค์ด์ ์ฌ์ฉํด๋ ๋๋๋ฐ ์ ๊ฒ๋ค์ ์กฐ๊ธ ๋ ํธ๋ฆฌํ๊ฒ ์ ๊ณตํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ผ๊ตฌ์! ๋ฐ๋ก ์ค๋ ํ์ตํด๋ณผ PopupView์ ๋๋ค๐๐ป PopupView ๋จ์ํ View Modifier๋ก ๊ฐ๋จํ ์ฌ์ฉํ ์ ์๋๋ก ๊ตฌํ๋์ด ์์ด ์ฐ์ ์ฌ์ฉ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. SPM / cocoapods / carthage ๋ชจ๋ ๋ฐฉ์์ผ๋ก ๊ฐ์ ธ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ๋กํ ๋ถํฐ ํ๋ฒ ๋ฐ๋ก ์ฌ์ฉํด๋ณผ๊ป์! import SwiftUI import PopupView struc..
-
TCA - ReducerProtocolTCA 2023. 1. 31. 09:09
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ TCA์ ReducerProtocol์ ๊ฐ๋จํ ํ์ตํด๋ณด๋ คํฉ๋๋ค๐ TCA๊ฐ ๋ ์ด ๊ฐ์๋ก ์ ๋ฐ์ดํธ๋ ๋นจ๋ผ์ง๊ณ ๋ ๋ฐ์ ํ๊ณ ์์ด์! ํ์ฌ ๋ฒ์ ์ด 0.50.1๊น์ง ๋์์ผ๋ฉฐ ๊ทธ์ ์ ๋๊ฒฉ๋ณ์ด 0.41.0์์ ์ผ์ด๋ฌ์ต๋๋ค. ๋ฐ๋ก ReducerProtocol์ ๋ฑ์ฅ์ด์ฃ ๐บ๐ป ๊ธฐ์กด์ TCA์์ Core๋ฅผ ๊ตฌ์ฑํ ๋๋ State, Action, Environment๋ค์ ๋ณ๋ struct, enum์ผ๋ก ์ ์ํ๊ณ ์ด๋ฅผ Reducerํ์ ์ ์์๋ก ๋ง๋ค์ด ์ ์ํ๋ ํํ์์ด์. ๊ทธ๋ฐ๋ฐ ์ด์ ๋ฐ๋๋ก Protocol Programming์ ์ฅ์ ๋ ์ด๋ฆฌ๋ฉด์ ๋ ์ ํฉํ๊ฒ ReducerProtocol์ ์ฌ์ฉ์ผ๋ก ์ ๋ถ ๋ณํ๋์์ผ๋ฉฐ ์ฅ์ ๋ ๋ง์์ก์ด์๐๐ป ๋ง์ฝ ์ด์ TCA ๊ตฌ์ฑ์ด ๋๋ต์ ์ผ๋ก ์ด๋ป๊ฒ ๋์ด์์..
-
projectedValueSwift 2023. 1. 17. 19:52
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ProjectedValue์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ด์ ์ Property Wrapper๋ฅผ ํฌ์คํ ํ๋ค ProjectedValue๋ผ๋ ๊ฒ์ ๋ํด ๋ค์์ ์ธ๊ธํ๋ค๊ณ ํ๋๋ฐ ๋ฒ์จ ์๊ฐ์ด ๋ง์ด ์ง๋ฌ๋ค์! ๊ทธ๋์ ์ด๋ฒ์๋ ๊น๋จน์ง ์๊ณ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋คใ ใ Property Wrapper๊ฐ ๋จผ์ ์ ํ์ด ๋์ด์ผ ์ดํดํ๊ธฐ๊ฐ ์์ํจ์ผ๋ก ํน์ ๊ฐ๋ ์ ๋ค์ ๋ณต์ตํ๊ณ ์ถ์ผ์๋ค๋ฉด ์๋ ํฌ์คํ ๋ถํฐ ๋ด์ฃผ์ธ์๐ https://green1229.tistory.com/238 Property Wrapper ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Swift์ Property Wrapper๋ฅผ ์์๋ณด๋ คํฉ๋๋ค๐ Property Wrapper? Swift 5.1์์ ์ฒ์ ์๊ฐ๋์ด ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ผ๋ก ํ๋กํผํฐ..