Programming/Swift(17)
-
โฟ iOS Swift Closure & @escaping ํด๋ก์ ์ ๋ฆฌ
https://www.youtube.com/watch?v=xiS5gJOIQxI https://dongminyoon.tistory.com/14 https://babbab2.tistory.com/81 https://babbab2.tistory.com/82 https://babbab2.tistory.com/83 // TODO: completion handler ์ดํด func translatinEnglishToKorean(text: String, completion: @escaping () -> Void) { // text๋ completion์ด๋ผ๋ ํด๋ก์ ๋ฅผ ๋ฐ์ ๊ฑฐ๊ณ , ๋ค์ ๋ด์ฉ์ ์ด ํจ์์ ์คํ ๊ณผ์ , ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ closure ์คํ englishToKoreanTranslator.translate(tex..
2022.08.26 -
๐ Fileprivate ๋?
์ฒ์ ๋ณด๋ fileprivate ํค์๋ โ๏ธ private let emailLoginButton: CustomedLoginButton = { let button = CustomedLoginButton() button.setImage(UIImage(systemName: "envelope.fill"), for: .normal) button.tintColor = UIColor.black button.backgroundColor = UIColor.white button.setTitle("์ด๋ฉ์ผ๋ก ๊ฐ์ ํ๊ธฐ", for: .normal) button.setTitleColor(UIColor.black, for: .normal) button.titleLabel?.font = UIFont.systemFont(ofSize:..
2022.07.21 -
๐ฉ๐ป UUID(Universally Unique IDentifier)๋?
UUID๋ Universally Unique IDentifier์ ์ฝ์ด, ๋ฒ์ฉ ๊ณ ์ ์๋ณ์ - UUID ํ์ค์ ๋ฐ๋ผ ์ด๋ฆ์ ๋ถ์ฌํ๋ฉด ๊ณ ์ ์ฑ์ ์๋ฒฝํ๊ฒ ๋ณด์ฅํ ์๋ ์์ง๋ง, ์ค์ ์ฌ์ฉ ์์์ ์ค๋ณต๋ ๊ฐ๋ฅ์ฑ์ด ๊ฑฐ์ ์๋ค๊ณ ์ธ์ ๋๊ธฐ ๋๋ฌธ์ ๋ง์ด ์ฌ์ฉ - UUID๋ RFC 4122 ๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ : RFC๋ Request for Comments์ ์ฝ์ด -> ๋นํ์ ๊ธฐ๋ค๋ฆฌ๋ ๋ฌธ์ - ์ปดํจํฐ ๋คํธ์ํฌ ๊ณตํ ๋ฑ์์ ์ธํฐ๋ท ๊ธฐ์ ์ ์ ์ฉ ๊ฐ๋ฅํ ์๋ก์ด ์ฐ๊ตฌ, ํ์ , ๊ธฐ๋ฒ ๋ฑ์ ์์ฐ๋ฅด๋ ๋ฉ๋ชจ - RFC ํธ์ง์๋ ๋งค RFC ๋ฌธ์์ ์ผ๋ จ ๋ฒํธ๋ฅผ ๋ถ์ฌ -> ์ผ๋จ ์ผ๋ จ ๋ฒํธ๋ฅผ ๋ถ์ฌ ๋ฐ๊ณ ์ถํ๋๋ฉด, RFC๋ ์ ๋ ํ์ง๋๊ฑฐ๋ ์์ ๋์ง ์์ - ๋ง์ฝ ์ด๋ค RFC ๋ฌธ์๊ฐ ์์ ์ด ํ์ํ๋ค๋ฉด, ์ ์๋ ์์ ๋ ๋ฌธ์๋ฅผ ๋ค๋ฅธ RFC ๋ฌธ์..
2022.06.30 -
๐ARC (Automatic Reference Counting) : ์๋ ์ฐธ์กฐ ๊ณ์ฐ
ARC (Automatic Reference Counting) : Objective-C / Swift์ ๋ํ ์๋ ์ฐธ์กฐ ๊ณ์ฐ์ ์ ๊ณตํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฅ - ์ปดํ์ผ ์ ์ฝ๋๋ฅผ ๋ถ์ํ์ฌ ์๋์ผ๋ก retain, release๋ฅผ ์ ์ ํ ์์น์ ์ฝ์ - Objective-C ์์๋ ์๋์ผ๋ก reference count ์ฆ๊ฐ์ ํตํด ๊ฐ์ฒด ์ ์ง ๋ฐ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ -> ์๋์ผ๋ก ์์ฑ๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์๋์ผ๋ก ์์ฑํด์ค๋ค. ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ Data, Heap, Stack, Code ์ด๋ ๊ฒ 4๊ฐ์ง ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ ์ค ํ ์์ญ๊ณผ ๊ด๋ จ์์ - Heap ์ class, closure ๋ฑ์ ์ฐธ์กฐํ(reference) ์๋ฃ ๋ค์ด ๋จธ๋ฌด๋ ๊ณต๊ฐ + ๊ฐ๋ฐ์๊ฐ ๋์ ์ผ๋ก ํ ๋นํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ -> ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ํ์ Heap ์์ญ์ ์ฐธ์กฐํ ..
2022.06.24 -
@IBAction & @IBOutlet ๐ค
StoryBoard ์์ ์ฐ๊ฒฐ ๊ณ ๋ฆฌ ๋ด๋น ๋ณ์๋ ํจ์๋ฅผ ์ ์ํ ๋ ์์ @IBAction / @IBOutlet ํค์๋ : StoryBoard์์ ๋ฒํผ์ด๋ ๋ ์ด๋ธ๊ฐ์ ์ปดํฌ๋ํธ์ ์ฐ๊ฒฐ IBAction - Event๊ฐ ์ผ์ด๋ ๊ฒฝ์ฐ ํธ์ถ๋๋ Action์ ์ ์ - ์ ๋ ฅ์ด ๋ค์ด์์ ๋ ์ด๋ค ํ๋์ ํ ์ง ๋ํ๋ธ๋ค - ์คํ ๋ฆฌ ๋ณด๋ ์์ ์ ์ธํ ๋ทฐ ๊ฐ์ฒด๊ฐ ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ํธ์ถ๋๋ ํจ์ - ํด๋น View๊ฐ ํน์ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์์ผฐ์ ๊ฒฝ์ฐ ์ทจํ๋ ํ๋ ! IBOutlet - ๊ฐ์ ์ ๊ทผํ๊ธฐ ์ํ ๋ณ์, ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ - ์คํ ๋ฆฌ ๋ณด๋ ์์ ์ ์ธํ View ๊ฐ์ฒด๋ฅผ Interface Builder(IB) ๊ฐ ์์๋ณผ ์ ์๊ฒ ๋ง๋๋ ๊ฒ : ์ฝ๋ ์์์ ์คํ ๋ฆฌ๋ณด๋์ ๋ง๋ ๋ทฐ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ฐ๊ฒฐํด์ฃผ๋ ์ญํ ์ ..
2022.06.24 -
[Swift UI] View / Some์ด๋? / ContentView / Previews
[ ๊นจ์ ๊ถ๊ธ์ฆ๋ค ๐ง ] 1) ์ปจํ ์ธ ๋ทฐ: ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๊ตฌ์กฐ์ฒด 2) ํ๋ฆฌ๋ทฐ : ํ๋ฆฌ๋ทฐ๋ฅผ ๊ทธ๋ฆฌ๋ ๊ตฌ์กฐ์ฒด - text ๋ฐ์ .์ ํตํ์ฌ ์์ฑ๋ค์ ๋์ดํ๋ ๊ฒ : modifier ๋ผ๊ณ ๋ถ๋ฅธ๋ค! ex) .font, .fontWeight, .padding ๋ฑ๋ฑ [ some ์ ๋ฌด์์ธ๊ฐ ? ] [ ์ถ์ฒ: https://babbab2.tistory.com/158 ] some์ด๋ผ๋ ํค์๋๋ Swift 5.1์์ ๋ฑ์ฅํ ์๋ก์ด ๊ธฐ๋ฅ์ผ๋ก, ํด๋น ํค์๋๊ฐ ๋ฐํ ํ์ ์์ ๋ถ์ ๊ฒฝ์ฐ, ํด๋น ๋ฐํ ํ์ ์ด ๋ถํฌ๋ช ํ ํ์ (Opaque Type)! : ๋ถํฌ๋ช ํ ํ์ ์ด๋ -> "์ญ ์ ๋ค๋ฆญ ํ์ (reverse generic types) ์์์ ์ ๋ค๋ฆญ์ด ํจ์ "์ธ๋ถ"์์ ํด๋น ํ์ ์ ๋ํด ์ ์ ์๋ ๋ฐ๋ฉด, ๋ถํฌ๋ช ํ ํ์ ์ ๊ฒฝ์ฐ, ์ธ๋ถ..
2022.06.16 -
[SwiftUI] Geometry Reader
Geometry Reader์ถ์ฒ : https://medium.com/hcleedev/swift-geometryreader๋-๋ฌด์์ผ๊น-564896c6d6e0 View๋ฅผ ๊ตฌ์ฑํ ๋ ๋๋ถ๋ถ VStack, HStack, ZStack๋ง ์ฌ์ฉํด๋ ํ๋ฉด์ ๋ง๋ค ์ ์์ง๋ง, ๊ทธ ์ด์์ผ๋ก ํ์ ๋ทฐ, Child View๋ค์ ์์น๋ ๋ชจ์์ ์ง์ ์กฐ์ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ O ์ด๋ฌํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ Container View๊ฐ ๋ฐ๋ก GeometryReader Child View๋ ๋ณ ์ค์ ์ด ์๋ค๋ฉด Parent View๊ฐ ์ ์ํด์ค ์์น์ ๋ชจ์ต์ ๋๋ฌ๋ธ๋ค. : child view -> view ๋ด๋ถ์ ๊ฐ์ฒด๋ฅผ ์ง์นญํ๋ค. ํ์ง๋ง Parent View๊ฐ ์ ์ํ๋ ์๋ฆฌ๊ฐ ๋ง์์ ๋ค์ง ์๋๋ค๋ฉด,Child View๊ฐ ์ง์ ์์ ์ ์์น..
2022.06.16