iOS

ยท iOS
์ œ๋ชฉ์ด.. ๊ธธ๋‹ค ๐Ÿฅฒ ๋ทฐ๋ฅผ ์Œ“๋Š” ๋ฐฉ๋ฒ•์ด ํฌ๊ฒŒ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ push, present๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. push๋Š” navigation controller๋ฅผ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ๋ทฐ์—์„œ ๊ฐ€๋Šฅํ•˜๊ณ , present๋Š” ๊ทธ๋ ‡์ง„ ์•Š์ง€๋งŒ present์œ„์— ๋ทฐ๋ฅผ push ํ•˜๋Š”๊ฑด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. push -> navigation controller๋กœ ๊ฐ์‹ผ ๋ทฐ ์œ„์—๋งŒ ๊ฐ€๋Šฅ present -> ๊ทธ๋ƒฅ ๋ทฐ ์œ„์— ๊ฐ€๋Šฅ ์•„๋ฌดํŠผ ์ด๋Ÿฐ ๊ฐœ๋…์„ ์ „์ œ๋กœ ํ•˜๋ฉด presentํ•œ ๋ทฐ ์œ„์—๋Š” push๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, presentํ•œ ๋ทฐ๋ฅผ navigation controller๋กœ ๊ฐ์‹ธ๋ฉด ๊ทธ ์œ„์— push๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‚ด๊ฐ€ ๊ถ๊ธˆํ–ˆ๋˜ ์ƒํ™ฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค VC1์—์„œ VC2๋ฅผ Pushํ•˜๋˜ ์ค‘ Navigation controller๋ฅผ ๊ฐ์‹ผ VC3 Present๋ฅผ ํ•˜์—ฌ ..
ยท iOS
์ฝ”๋“œ๋กœ ๋ทฐ๋ฅผ ๊ตฌ์„ฑํ•œ ๊ฒฝํ—˜์€ ๋ช‡๋ฒˆ ์žˆ์ง€๋งŒ ์Šคํ† ๋ฆฌ ๋ณด๋“œ๋กœ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ์ต์ˆ™ํ•ด์ ธ์„œ ๋‹ค์‹œ ๊ธฐ์–ต์†์—์„œ ์‚ฌ๋ผ์กŒ๋‹ค ใ… .ใ…  ์•„๋ฌด๋ž˜๋„ ์ง€๊ธˆ ๋‹ค๋‹ˆ๋Š” ํšŒ์‚ฌ์—์„œ๋Š” ์Šคํ† ๋ฆฌ๋ณด๋“œ๋กœ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋‹ˆ ์Šคํ† ๋ฆฌ๋ณด๋“œ๋Š” ๋”ฐ๋กœ ์—ฐ์Šตํ•˜์ง€ ์•Š์•„๋„ ์ต์ˆ™ํ•ด์งˆ ์ˆ˜ ๋ฐ–์— ์—†๋Š” ํ™˜๊ฒฝ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ˜ผ์ž์„œ ํ•˜๋Š” ์—ฐ์Šต ์˜ˆ์ œ๋‚˜ ํ”„๋กœ์ ํŠธ๋Š” ์ฝ”๋“œ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๋ด์•ผ๊ฒ ๋‹ค! ๊ตฌ์„ฑํ•œ ํ™”๋ฉด์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. UIViewController - UIView - UIView - UIButton ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ๋ณด์ž๋ฉด ... ์ด๋Ÿฐ ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. (์ด ๊ธฐ๋Šฅ ๋„ˆ๋ฌด ์ข‹๋‹ค ๐Ÿซถ๐Ÿป) ๋จผ์ € ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ์ „์ฒด์ ์ธ ํ‹€์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. // ์ƒˆ๋กœ์šด ๋ทฐ ์ƒ์„ฑ let newView = UIView() // ๊ธฐ๋ณธ ๋ทฐ์— ์ถ”๊ฐ€ view.addSubview(newV..
ยท iOS
AutoLayout์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ landscape์™€ portrait์— ๋”ฐ๋ฅธ ํ™”๋ฉด ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•์„ ๊ณต๋ถ€ํ–ˆ๋‹ค. ๋‚ด๊ฐ€ ๋“ค์€ ๊ฐ•์˜๊ฐ€ ์กฐ๊ธˆ ์˜›๋‚  ๊ฐ•์˜๋ผ Vary for Traits์„ ์‚ฌ์šฉํ•œ ํ™”๋ฉด๊ตฌ์„ฑ๋ฐฉ์‹์„ ์†Œ๊ฐœํ–ˆ๋Š”๋ฐ, ๋‚ด๊ฐ€ ํ˜„์žฌ ๊ณต๋ถ€ํ•˜๋Š” 23๋…„ 3์›” ์‹œ์ ์—๋Š” ์ด ๊ธฐ๋Šฅ์ด ์—†์—ˆ๋‹ค. ์ฐพ์•„๋ณด๋‹ˆ xcode 13 ์—…๋ฐ์ดํŠธ ๋ถ€ํ„ฐ ์ด ๋ฒ„ํŠผ์ด ์‚ฌ๋ผ์ ธ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผํ–ˆ๋‹ค. ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ์ฐพ๋˜ ์ค‘ ์‚ฌ๋žŒ๋“ค์ด ์ถ”์ฒœํ•ด์ค€ ๋™์˜์ƒ์„ ๋ณด๊ฒŒ ๋˜์—ˆ๊ณ , ์—ฌ๊ธฐ์„œ ํ•ด๋‹ต์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋‚˜๋Š” ์ฒซ๋ฒˆ์งธ ์„ธ๋กœ ํ™”๋ฉด์—์„œ๋Š” 2x2๋กœ ๊ตฌ์„ฑ๋œ ๋„ค๋ชจ ๋ฐ•์Šค๋ฅผ ๊ฐ€๋กœ ํ™”๋ฉด์ผ๋•Œ๋Š” 1x4๋กœ ๋‚˜ํƒ€๋‚˜๋„๋ก ๊ตฌ์„ฑํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. (์–ด์ฐŒ๋๊ฑด ๊ฐ€๋กœ ์„ธ๋กœ ํ™”๋ฉด ๊ตฌ์„ฑ์„ ๋‹ค๋ฅด๊ฒŒ ํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค!) ์‹œ์ž‘ 1. ๋จผ์ € ์„ธ๋กœ ํ™”๋ฉด์ผ ๋•Œ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” Constraints๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. 2. Constraint..
ยท iOS
TableView๋‚˜ TextField์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ€๋” tableView.delegate = self ๋ฅผ ์ ์–ด์ฃผ์ง€ ์•Š์•„ ๋™์ž‘์ด ์•ˆ๋ ๋•Œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋งค๋ฒˆ ์Šต๊ด€์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋ฅผ ์ ์–ด์ฃผ์—ˆ์ง€๋งŒ ์™œ ์ด๊ฑธ ์ ์–ด์•ผ ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค. ๋ธ๋ฆฌ๊ฒŒ์ดํŠธ ํŒจํ„ด์ด๋ž€? ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ์œ„์ž„ํ•œ๋‹ค ๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. ์ฆ‰ ์˜์ž„์ž๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ์ž์‹ ์˜ ์ผ์„ ์œ„์ž„ํ•˜๋Š” ํ˜•ํƒœ์˜ ๋””์ž์ธ ํŒจํ„ด์œผ๋กœ ๊ฐ์ฒด์™€ ๊ฐ์ฒด๊ฐ„์˜ ๋Œ€ํ™”๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. class ViewController: UITableViewDelegate { func tableViewFunction() { print("tableview ์ฒซ๋ฒˆ์งธ ํ•จ์ˆ˜ ์‹คํ–‰") } // ์‹คํ–‰๋ถ€ let tableView = UITableView() tableView.delegate ..
1. heap๋ณด๋‹ค๋Š” stack์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น class๋ณด๋‹จ struct๋‚˜ enum์„ ์‚ฌ์šฉํ•œ๋‹ค. class๋Š” heapํ• ๋‹น, struct๋‚˜ enum์€ stackํ• ๋‹น์ด๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น class: heap struct: stack enum: stack heap ⇒ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์˜์—ญ์„ ์ฐพ์•„ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹(๋™์ ํ• ๋‹น)์ด๋ฏ€๋กœ ์ข€ ๋ณต์žกํ•จ (์†๋„๊ฐ€ ๋Š๋ฆผ) stack ⇒ LIFO ๋ฐฉ์‹์ด๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๊ฐ€ ๋‹จ์ˆœํ•จ (์†๋„๊ฐ€ ๋น ๋ฆ„, O(1)) 2. ์ •์  ๋””์ŠคํŒจ์น˜(static Dispatch)๋ฅผ ์ง€ํ–ฅ ์ผ๋ฐ˜์ ์œผ๋กœ swift์—์„œ๋Š” dynamic dispatch๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋˜์–ด์žˆ์Œ ํด๋ž˜์Šค(๋ฉ”์„œ๋“œ, ํ”„๋กœํผํ‹ฐ)๋ฅผ ์„ ์–ธํ•  ๋•Œ ์ƒ์†๋˜์ง€ ์•Š๋Š” ํด๋ž˜์Šค์— final์„ ๋ถ™์ด๋ฉด ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋จ ํด๋ž˜์Šค๋Š” dynamic dispatch..
struct ๊ฐ’ ํƒ€์ž… (๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ๊ฐ’์„ ๋ณต์‚ฌํ•˜์—ฌ ์ „๋‹ฌ) ์ƒ์† ๋ถˆ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ž๋™์ œ๊ฑฐ ⇒ ํ•จ์ˆ˜ ์ข…๋ฃŒ(์ง€์—ญ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜), ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ(static, ์ „์—ญ๋ณ€์ˆ˜) ์ธ์Šคํ„ด์Šค ์ƒ์ˆ˜๋กœ ์„ ์–ธ์‹œ ์ €์žฅ์†์„ฑ ์ „๋ถ€ ์ƒ์ˆ˜๋กœ ์„ ์–ธ ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ์†์„ฑ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ ์†Œ๋ฉธ์ž ์—†์Œ class ์ฐธ์กฐ ํƒ€์ž… (๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ๊ฐ’์˜ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜๋ฅผ ์ „๋‹ฌ) ์ƒ์† ๊ฐ€๋Šฅ ARC๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ธ์Šคํ„ด์Šค ์ƒ์ˆ˜๋กœ ์„ ์–ธํ•ด๋„ ๊ฐ€๋ฅดํ‚ค๋Š” let/ var ์„ ์–ธ์— ๋”ฐ๋ฆ„ ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ์†์„ฑ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ ์†Œ๋ฉธ์ž ์žˆ์Œ ๊ฐ์ฒด ๋Œ€์‹  ์ธ์Šคํ„ด์Šค๋ผ๋Š” ์šฉ์–ด ์‚ฌ์šฉ enum ํ•œ์ •๋œ ์‚ฌ๋ก€(case) ์•ˆ์—์„œ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์ž… (์š”์ผ, ์„ฑ๋ณ„ ..) ์ผ€์ด์Šค๊ฐ€ ์„ ํƒ๊ฐ€๋Šฅํ•œ ๊ฐ€์ง“ ์ˆ˜๋กœ ์ •ํ•ด์ ธ ์žˆ์„ ๋•Œ ์ •์˜ ⇒ ๋‹ค๋ฅธ๊ฒƒ ๋„ฃ์œผ๋ฉด ํƒ€์ž… ์—๋Ÿฌ ์ƒ์† ๋ถˆ๊ฐ€๋Šฅ ๊ณตํ†ต์  ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งˆ์Œ๋Œ€๋กœ ๋งŒ๋“ค..
๊ธฐ์ดˆ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋‹ค์ง€๋ฉด์„œ ํƒ€์ž… ์ฃผ์„๊ณผ ํƒ€์ž… ์ถ”๋ก ์˜ ๊ฐœ๋…์„ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ํƒ€์ž… ์ถ”๋ก ์€ ๊ธฐ์กด์— ์•Œ๊ณ  ์žˆ์—ˆ์ง€๋งŒ ํƒ€์ž… ์ฃผ์„์ด๋ผ๋Š” ๋‹จ์–ด๋Š” ์ด๋ฒˆ์— ์ฒ˜์Œ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ์œผ๋‚˜ ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋Š” ๊ฐœ๋…์ด๊ธด ํ–ˆ๋‹ค. ๋‘ ๊ฐœ๋…์€ ๋ชจ๋‘ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋…์ด๋‹ค. 1. ํƒ€์ž… ์ฃผ์„(Type Annotation) var name: String var name: String = "Lily" ํƒ€์ž… ์ฃผ์„์€ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ๋ณ€์ˆ˜์˜ ์ž๋ฃŒํ˜•๊นŒ์ง€ ํ•จ๊ป˜ ๋ช…์‹œํ•ด์ฃผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ฒซ๋ฒˆ์งธ ์ค„ ์ฒ˜๋Ÿผ name์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด์„œ String์ด๋ผ๋Š” ์ž๋ฃŒํ˜•๊นŒ์ง€ ํ•จ๊ป˜ ์ง€์ •ํ•ด์ค€๋‹ค. ๋‘๋ฒˆ์งธ ์ค„ ์ฒ˜๋Ÿผ ์„ ์–ธ๊ณผ ๋™์‹œ์— ๊ฐ’์„ ์ง€์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. 2. ํƒ€์ž… ์ถ”๋ก (Type Inference) var name = "Lily" ํƒ€์ž… ์ฃผ์„๊ณผ ๋‹ฌ๋ฆฌ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ• ..
ยท iOS
๋ณธ ๊ฒŒ์‹œ๋ฌผ์€ OAuth๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์•„๋‹Œ ์ œ๊ฐ€ ์ƒ๊ฐํ•œ ํŠน์ง•์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ์— ๋‹ค์ด์–ด๋ฆฌ ์•ฑ์„ ์ƒˆ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋ฉด์„œ ์†Œ์…œ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๋„์ž…ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. ๊ธฐ์กด์— CoreData๋กœ ์•ฑ ๋‚ด์— ์ €์žฅํ•˜๋˜ ๋‹ค์ด์–ด๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‹ค ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด firebase์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ์˜€๋‹ค. ์• ํ”Œ ์ •์ฑ…์— ๋”ฐ๋ผ Apple๋กœ๊ทธ์ธ์€ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฆฌ์  ์‚ฌ์œ ๊ฐ€ ๋œ๋‹ค. ๐Ÿ˜… ๋”ฐ๋ผ์„œ Apple Login์€ ๋‹น์—ฐํžˆ ๊ตฌํ˜„ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๊ณ , ์กฐ์‚ฌํ•ด๋ณด๋‹ˆ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์†Œ์…œ๋กœ๊ทธ์ธ์ด Kakao๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ํŽธ์˜๋ฅผ ์œ„ํ•ด Kakao๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ์ถ”๊ฐ€์ ์œผ๋กœ ์ „์— ๊ตฌํ˜„ํ•ด๋ณธ ๊ฒฝํ—˜์ด ์žˆ๋Š” Google๋กœ๊ทธ์ธ๋„ ํ•จ๊ป˜ ์ ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. 1. Apple ์• ํ”Œ๋กœ๊ทธ์ธ์€ ๊ผญ ์• ํ”Œ ๊ฐœ๋ฐœ์ž ๊ณ„์ •์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. 1๋…„์—..
๋ฆด๋ฆฌ๐Ÿฐ
'iOS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)