UITextFieldUITextField๋ ์ฌ์ฉ์๋ก๋ถํฐ ํ
์คํธ ์
๋ ฅ์ ๋ฐ์ ์ ์๋ ์ธํฐํ์ด์ค ์์์ด๊ณ , ๋ธ๋ฆฌ๊ฒ์ดํธ ํจํด์ UITextField์ ๋์์ ์ปค์คํฐ๋ง์ด์งํ๊ณ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. textField.delegate = self -> ํ
์คํธํ๋์ ๋๋ฆฌ์๊ฐ ๋ทฐ์ปจ์ด ๋จ. ํ
์คํธํ๋์์ ์ผ์ด๋๋ ์ผ ์ ๋ฌ ๋ฐ์ํ
์คํธํ๋์์ ์ด๋ค ์ผ์ด ๋ฐ์ํ๋ฉด ๊ทธ ์์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๋ฌํ ํ
๋ ๋ฉ์๋๋ฅผ ์ฑํํ๊ณ ๊ตฌํํ๋ผ. textField.becomeFirstResponder() //ํค๋ณด๋ ์ฌ๋ผ์ดtextField.resignFirstResponder() //ํค๋ณด๋ ๋ด๋ ค๊ฐ ์ฃผ์ UITextField Delegate ๋ฉ์๋์ ์ฌ์ฉ ์์ textFieldShouldBeginEditing(_:)ํ
์คํธ ํ๋..
์ ์ฒด ๊ธ
1. ํ์ด์ด ๋ฒ ์ด์ค ์ ์https://firebase.google.com/?hl=ko ๋ฒ๋ค ID๋ Xcode ํ๋ก์ ํธ ์ฒ์ ์ค์นํ ๋ ์์ฑํ๋ ๋ถ๋ถ์ธ๋ฐ, ์ด๋ฏธ ํ์ผ์ ๋ง๋ค์ด์ ๊ธฐ์ต์ด ๋์ง ์๋๋ค๋ฉด Identity์์ ํ์ธ ๊ฐ๋ฅํ๋ค. 2. ๊ตฌ์ฑ ํ์ผ ๋ค์ด๋ก๋ ํ๋ก์ ํธ ํ์ผ ์ต์๋จ์ ๋ค์ด๋ก๋ ๋ฐ์ ํ์ผ์ ์ถ๊ฐํด์ค๋ค. 3. Firebase SDK ์ถ๊ฐcocoaPods๋ก๋ ์ถ๊ฐํ ์ ์์ง๋ง ๊ฐ๋จํ๊ฒ Xcode ๋ด์์ SPM์ ์ฌ์ฉํด ์ถ๊ฐํ๊ฒ ๋ค. ๊นํ๋ธ ์ฃผ์๋ฅผ ๋ณต์ฌํด์ ์ฌ์ฉํ๋ค. 4. ์ด๊ธฐํ ์ฝ๋ ์ถ๊ฐAppDelegate์ ํด๋น ์ฝ๋ ์ถ๊ฐ
๐ 1 . ํ๋กํ ์ฝํ๋กํ ์ฝ์ ํน์ ๊ธฐ๋ฅ์ด๋ ํน์ฑ์ ๊ตฌํํ ๋ ํ์ํ ๋ฉ์๋๋ ํ๋กํผํฐ์ ์ฒญ์ฌ์ง์ ์ ๊ณตํ๋ค.ํ๋กํ ์ฝ์ ์ ์ธํ ๋๋ ํ๋กํผํฐ๋ ๋ฉ์๋๋ฅผ ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ด ์๊ณ ํํ๋ง ์ ๊ณตํ๋ค. ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ ์ด ํ๋กํ ์ฝ์ ์ฑํํ๋ ํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ, extension ๊ฐ์ฒด์์ ๋ด๋นํ๋ค. ํ๋กํ ์ฝ์ ์ ์๋ ๋ฉ์๋์ ํ๋กํผํฐ๋ฅผ ๋ฐ๋์ ๊ตฌํ ํ๋ค. protocol Drawable { var name: String { get } // ์ฝ๊ธฐ ์ ์ฉ ํ๋กํผํฐ func draw ()}//ํ๋กํ ์ฝ ์ฑํclass Circle: Drawable { var name: String { //๊ณ์ฐ ํ๋กํผํฐ return "Circle" } func draw() { ..
์ต์ข
ํ๋ก์ ํธ ํ์๋ฅผ ์์ํ๊ณ ๋ง๋ก๋ง ๋ฃ๋ ํ์ด์ด๋ฒ ์ด์ค๊ฐ ์์ฐ์ค๋ฝ๊ฒ ์ถ๊ฐ๋์๋ค. ํ ... ๊ทผ๋ฐ ํ๋ฒ๋ ์ ์จ๋ด์ ๊ทธ๋ฐ์ง ๋ฏ์ค๋ค, ํ์ด์ด๋ฒ ์ด์ค.๊ทธ๋ผ ์ด ํ์ด์ด๋ฒ ์ด์ค๋ฅผ ์ ์จ์ผํ๋๊ฑธ๊น? ์ ํ์ํ๊ฑด๋ฐ?์ฐ๋ฆฌ ํ๋ก์ ํธ์์ ํ์ด์ด๋ฒ ์ด์ค๋ฅผ ์จ์ผํ๋ ์ด์ ๋ ๋ญ์ง ๊ทธ๋์? Firebase๋ ์๋ฒ๋ฅผ ๋์ ๋ง๋ค์ด์ค๋ค๊ณ ํ๋ค. ๊ทธ๋์ ์ฑ ๊ฐ๋ฐ์๋ค์ด ์๋ฒ์ ํฌ์ํ๋ ์๊ฐ์ ์ค์ผ ์ ์๋ค. ํ์ด์ด๋ฒ ์ด์ค ์์ด ์ฑ๊ฐ๋ฐ์ ํ๋ค๋ฉด?์ฌ์ฉ์๊ฐ ๋๊ธ์ ์ฌ๋ฆผ -(1)> ๋๊ธ์ด ์๋ฒ๋ก ๋ณด๋ด์ง๊ณ (2)-> ์๋ฒ๋ ๋๊ธ์ ๋ฐ์ดํฐ๋ณด๊ด์ DB์ ์ ์ฅ ์ด ์์์์, ๊ฐ๋ฐ์๊ฐ ์๋์ ๋ ๊ฐ์ง ์์
์ ํด์ผํ๋ค. ๋๊ธ์ ์๋ฒ๋ก ๋ณด๋ด๋ ์ฝ๋ ์์ฑ(1) // ํ๋ก ํธ์๋ ์ญํ ์๋ฒ๊ฐ ๋๊ธ์ DB์ ์ ์ฅํ๋ ์ฝ๋ ์์ฑ(2) //๋ฐฑ์๋ ์ญํ ํ์ด์ด๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํด ..
์ ์ข์ ์ต๊ด ๊ณ ์น๊ธฐ. ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด GPT ์จ์ ํด๊ฒฐํ์ง ์๊ณ ๋ฌด์จ ์ค๋ฅ์ธ์ง ์๊ณ ๋์ด๊ฐ๊ธฐ ์ํด ๋ณ๊ฑฐ ์๋๊ณ ๊ธฐ์ด์ ์ธ ์ค๋ฅ๋ค๋ ์ ์ธ์ง ์ ํํ๊ฒ ๋ชจ๋ฅด๊ฒ ๋ค๋ฉด ํ๋ํ๋ ์ฐพ์๋ณด๊ณ ๋ฌด์จ ์ค๋ฅ์๋์ง ํ์ธํ๊ณ ๋์ด๊ฐ๊ธฐ. ํ๋ ์ด๊ทธ๋ผ์ด๋์์ ํ๋กํ ์ฝ ๊ณต๋ถํ๋ฉด์ ์์๋ฅผ ์จ๋ณด๋ฉด์ ์ถ๋ ฅ์ด ํด๋ณด๊ณ ์ถ์๋ค. ์๋ฌ๋ฅผ ๋ณด๊ณ ๋ญ๊ฐ ์๋ชป ๋ ์์น์ ์ด ๊ฒ ๊ฐ์๋ฐ ํด๋์ค ์์ ์ผ์ด์ผ ํ๋? ์ถ์๋๋ฐ ๋ช
ํํ๊ฒ ๋ชจ๋ฅด๊ฒ ์๋ค. ๋ฌด์จ ์๋ฌ์ธ์ง ํ์ธํด๋ณธ ๊ฒฐ๊ณผ, ์ด ์ค๋ฅ๋ ์ปดํ์ผ ์ค๋ฅ ์ค ํ๋๋ก, ์ฃผ๋ก ์ฝ๋๋ฅผ ์๋ชป๋ ์์น์ ์์ฑํ์ ๋ ๋ฐ์ํ๋ ์ค๋ฅ๋ผ๊ณ ํ๋ค. ์ต์์ ๋ ๋ฒจ(top-level)์ธ ํจ์๋ ํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ ๋ฑ์ ์ฝ๋ ๋ธ๋ก ์ธ๋ถ์์๋ ์คํ ๋ฌธ์ฅ์ ์์ฑํ ์ ์๋ค.ํ์ฌ ๋ด๊ฐ ์์ฑํ ์ฝ๋๋ ์ต์์ ๋ ๋ฒจ์ด ์๋ ์ธ๋ถ์์ ๋
๋จ์ ..
์ธ์คํด์ค ๋๋ ํ์
์ ๋ถ๋ถ์ธ ์ ์ฅ๋ ๊ฐ๊ณผ ๊ณ์ฐ๋ ๊ฐ์ ์ ๊ทผํ๋ค. ํด๋์ค๋ ๊ตฌ์กฐ์ฒด์์ ๊ฐ์ ์ ๊ณตํ๋ ์ญํ ์ ํ๋ค. ํ๋กํผํฐ๋ ๊ฐ์ ๋ํ ์ ์ฅ์ฌ๋ถ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ์ฅํ๋กํผํฐ์ ๊ณ์ฐํ๋กํผํฐ๋ก ๊ตฌ๋ถ๋๋ค. - ํ๋กํผํฐ์ ์์น: ํด๋์ค์ ๋ด๋ถ์, ๋ฉ์๋์ ์ธ๋ถ์ ์ ์ํ๋ค. ๋ฉ์๋ ๋ด๋ถ๋ ํ๋กํผํฐ๊ฐ ์๋ ์ง์ญ๋ณ์. 1. ์ ์ฅํ๋กํผํฐ ์์ ๋ฐ ๋ณ์๋ฅผ ์ฌ์ฉํด ์ ์ ๊ฐ๋ฅํ๋ฉฐ ์
๋ ฅ๋ ๊ฐ์ ์ ์ฅํ๊ฑฐ๋ ์ ์ฅ๋ ๊ฐ์ ์ ๊ณตํ๋ ์ญํ . ํด๋์ค์ ๊ตฌ์กฐ์ฒด์์๋ ์ฌ์ฉ๊ฐ๋ฅํ์ง๋ง ์ด๊ฑฐํ์์๋ ์ฌ์ฉํ ์ ์์. 1-1. ์ง์ฐ ์ ์ฅ ํ๋กํผํฐ(lazy)lazy ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉฐ, ํ๋กํผํฐ๊ฐ ํธ์ถ๋๊ธฐ ์ ๊น์ง๋ ์ ์ธ๋ง ๋ ๋ฟ ์ด๊ธฐํ ๋์ง ์๊ณ ํธ์ถ๋๋ ์์ ์ ์ด๊ธฐํ๋๋ค. ์ฒ์์ผ๋ก ํธ์ถ๋ ๊ฐ์ผ๋ก ์ด๊ธฐํ ๋๋ฉฐ, ๊ทธ ๋ค์๋ถํฐ ํธ์ถ ๋ ๋๋ ์ฒ์ ์ด..
์ด๋ฒ ๋ ์จ์ก ํํ๋ก์ ํธ์์ OpenWeather API์ Kakao API๋ฅผ ์ฌ์ฉํ๋ฉด์,์๋ก ๋ค๋ฅธ ์๊ตฌ์ฌํญ ๋๋ฌธ์ ํ๋์ ๋คํธ์ํฌ ๋งค๋์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช์๋ค. OpenWeather API: ์์ฒญ ์ ํค๋ ์ค์ ์ด ํ์ํ์ง ์์.Kakao API: ์์ฒญ ์ ์ธ์ฆ์ ์ํ ํค๋(Header) ์ถ๊ฐ ํ์.-> ์์ ๊ฐ์ด ๋ API์ ์์ฒญ ๋ฐฉ์์ด ๋ค๋ฅด๋ค ๋ณด๋, ํ๋์ fetchData(url: URL) ๋ฉ์๋๋ก ๋ API๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๋ค์ ๋ณต์ก. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, Endpoint๋ฅผ ํ์ฉํ์ฌ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด๋ณด์๋ค.๊ฐ API์ ๋ํด ๋ณ๋์ Endpoint ํด๋์ค๋ฅผ ์ ์ํ๊ณ , ๊ฐ๊ฐ์ API์ ํ์ํ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ ์ ์๋ค. Endpoint์ ๋ค์ํ ์ฅ์ ๋ค์ด ์๊ฒ ์ง๋ง, ๊ฐ์ธ์ ์ผ๋ก..
JSON(JavaScript Object Notation) ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ฒฝ๋ ๋ฐ์ดํฐ ํ์์
๋๋ค. JSON์ ํฌ๊ฒ ๋ ๊ฐ์ง ํํ๋ก ๋๋๋ค. JSON์ "key-value"๊ฐ ์์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ๋ค์ ์งํฉ์ด๋ค. key์ value ์ฌ์ด๋ฅผ : ์ ์ด์ฉํ์ฌ ๊ตฌ๋ถํ๋ ํ์์ ์ทจํ๋ค.key๊ฐ๋ง ์๊ณ ์์ผ๋ฉด value๋ฅผ ์ถ์ถํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.๊ฐ Key๋ ๊ณ ์ ํ ๋ฌธ์์ด์ด๊ณ , ์ด์ ๋์ํ๋ Value๋ ๋ฌธ์์ด, ์ซ์, ๋ฐฐ์ด, ๊ฐ์ฒด ๋ฑ ๋ค์ํ ํ์
์ด ๋ ์ ์์ต๋๋ค. JSONObjectJSON Object๋ {} ์ค๊ดํธ๋ก ๊ฐ์ธ์ง Key-Value ์์ผ๋ก ์ด๋ฃจ์ด์ง ๊ฐ์ฒด๋ค. ๊ฐ Key๋ ๊ณ ์ ํ ๋ฌธ์์ด์ด๊ณ , ์ด์ ๋์ํ๋ Value๋ ๋ฌธ์์ด, ์ซ์, ๋ฐฐ์ด, ๊ฐ์ฒด ๋ฑ ๋ค์ํ ..