[iOS] Coordinator Pattern

ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜ ์˜ˆ์ œ ์†Œ์Šค๋ฅผ ํ†ตํ•ด ๊ณต๋ถ€ํ•˜๋ฉด์„œ AppFlowCoordinator, OOFtorlowCoordinator ์ด๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ–๊ณ  ์žˆ๋Š” ํŒŒ์ผ๋“ค์ด ์žˆ์–ด์„œ ๋ณด๋‹ˆ๊น ์•ฑ์—์„œ ํ™”๋ฉด ์ด๋™ ๊ด€๋ จ๋œ ๋ถ€๋ถ„๋งŒ ๋”ฐ๋กœ ๋ชจ์•„๋’€๊ธธ๋ž˜ ๋‚˜์ค‘์— ํ™”๋ฉด์ด ๋งŽ์•„์ง€๊ณ  ๋ณต์žกํ•ด ์งˆ์ˆ˜๋ก ํ•ด๋‹น ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜

2023๋…„ 3์›” 5์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] Default Decoding Value (๋””์ฝ”๋”ฉ ์‹œ Null -> ๊ธฐ๋ณธ๊ฐ’ ์ฒ˜๋ฆฌ)

ํšŒ์‚ฌ์—์„œ ๋‚˜๋ฆ„ ํ•ซํ•œ ์ด์Šˆ์˜€๋‹ค. ์›น/์„œ๋ฒ„ ํŒ€์—์„œ๋Š” ํ’€์Šคํƒ์œผ๋กœ ํ”„๋ก ํŠธ์™€ ๋ฐฑ์—”๋“œ๋ฅผ ๊ฐ™์ดํ•˜๋‹ค๋ณด๋‹ˆ ๋ฐฑ์—”๋“œ์—์„œ๋„ ์ตœ๋Œ€ํ•œ null์ด ์•„๋‹Œ ๋นˆ ๊ฐ’์œผ๋กœ๋ผ๋„ ๋‚ด๋ ค์ค„ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค๊ณ  ํ•˜๊ณ .. ๋˜ ํ”„๋ก ํŠธ์—์„œ๋„ ํ˜น์‹œ ๋ชจ๋ฅผ Null์„ ๋Œ€๋น„ํ•ด์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.ํ•˜์ง€๋งŒ, ํœด๋จผ ์—๋Ÿฌ๋Š” ์–ด

2023๋…„ 2์›” 28์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[ํ›„๊ธฐ] Do it! ์Šค์œ„ํ”„ํŠธ๋กœ ์•„์ดํฐ ์•ฑ ๋งŒ๋“ค๊ธฐ: ์ž…๋ฌธ

์ด ์ฑ…์€ ์ด์ œ iOS ๊ฐœ๋ฐœ์— ์ž…๋ฌธํ•˜์‹œ๋Š” ๋ถ„๋“ค์„ ํƒ€๊ฒŸ์œผ๋กœ ๋ชจ๋“  ๋‚ด์šฉ์ด ์ •๋ฆฌ๋˜์–ด ์žˆ๊ณ  ์ฑ…์˜ ๋ชฉ์ฐจ๋Š” 5๊ฐœ์˜ ๋งˆ๋‹น์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๋˜ํ•œ ์ตœ์‹  Swift 5.7 ๋ฒ„์ „๊ณผ Xcode 14๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์˜ˆ์ œ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค.๊ฐ ์ฑ•ํ„ฐ์˜ ์‹œ์ž‘์—๋Š” ์–ด๋–ค ์˜ˆ์ œ๋ฅผ ๋‹ค๋ฃฐ ๊ฒƒ ์ธ์ง€? ๊ทธ๋ฆฌ๊ณ  ์˜ˆ

2023๋…„ 2์›” 8์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

2์žฅ. ์ด์ƒํ•œ ๋‚˜๋ผ์˜ ๊ฐ์ฒด

๊ฐ์ฒด์˜ ํ–‰๋™์ด ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. 1์žฅ์—์„œ๋Š” ์ปคํ”ผ ๊ฐ€๊ฒŒ๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค์—ˆ๋‹ค๋ฉด 2์žฅ์—์„œ๋Š” ์ด์ƒํ•œ ๋‚˜๋ผ์˜ ์•จ๋ฆฌ์Šค๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค๊ณ ์žˆ๋‹ค. ์•จ๋ฆฌ์Šค๊ฐ€ ์ •์›์œผ๋กœ ํ†ตํ•˜๋Š” ๋ฌธ์„ ์ง€๋‚˜๊ธฐ ์œ„ํ•ด์„œ ํ‚ค๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๋ถ€๋ถ„์„ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์•จ๋ฆฌ์Šค๋Š” ํ‚ค(์ƒํƒœ)๋ฅผ ์กฐ์ ˆํ•˜๊ธฐ ์œ„ํ•ด์„œ ์Œ๋ฃŒ๋ฅผ ๋งˆ์‹œ๊ฑฐ๋‚˜

2023๋…„ 1์›” 23์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

1์žฅ. ํ˜‘๋ ฅํ•˜๋Š” ๊ฐ์ฒด๋“ค์˜ ๊ณต๋™์ฒด

์นดํŽ˜์— ๊ฐ€์„œ ์ปคํ”ผ๋ฅผ ์ฃผ๋ฌธํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.์†๋‹˜ ---> ์บ์…” ---> ๋ฐ”๋ฆฌ์Šคํƒ€์—ฌ๊ธฐ์„œ ์ƒ๊ฐํ•ด์•ผํ•  ๋ถ€๋ถ„์€ ์†๋‹˜์˜ ์—ญํ• ๊ณผ ์ฑ…์ž„, ์บ์…”์˜ ์—ญํ• ๊ณผ ์ฑ…์ž„, ๋ฐ”๋ฆฌ์Šคํƒ€์˜ ์—ญํ• ๊ณผ ์ฑ…์ž„์ด๋‹ค.๊ฐ„๋‹จํ•˜๊ฒŒ ์นดํŽ˜์— ๊ฐ€์„œ ์†๋‹˜์˜ ์—ญํ• ๊ณผ ์ฑ…์ž„์ด๋ฉด.. ์†๋‹˜์€ ์ผ€์…”์—๊ฒŒ ์ฃผ๋ฌธ์„ ํ•˜๋Š” ์—ญ

2023๋…„ 1์›” 15์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] GCD (Grand Central Dispatch)

Thread = ๋…ธ๋™์ž, Task = ์ผiOS์—์„œ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์˜ ๋Œ€ํ‘œ์ ์ธ ์ž‘์—… ์ค‘ ํ•˜๋‚˜๋Š” UI๋ฅผ ๊ทธ๋ฆฌ๋Š” ์ผ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์— ๋ชฐ๋ฆฐ ์ž‘์—…๋“ค์„ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ๋„ ๋™์‹œ์— ์ž‘์—… ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ = ๋™์‹œ์„ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐiOS์—์„œ๋Š” queue์— ๋ณด๋‚ด๊ธฐ๋งŒ ํ•˜๋ฉด ์•Œ์•„์„œ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๋กœ ๋ถ„์‚ฐ ์ฒ˜

2022๋…„ 10์›” 8์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[RxSwift] Rx๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ?

๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„๊ณผ ์ „๋‹ฌ์— ๊ด€ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์ด๋‹ค.๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์„ ๋จผ์ € ์ •์˜ํ•˜๊ณ  ๋ฐ์ดํ„ฐ์— ๋ณ€ํ™”๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ์—ฐ๊ด€๋œ ์ž‘์—…์ด ์•Œ์•„์„œ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด๋‹ค.๊ธฐ์กด์—๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ˜๋ฉด์—, ๋ฐ˜์‘ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋ฐ์ดํ„ฐ์˜ ๋ณ€ํ™”๊ฐ€ ๋ฐœ์ƒํ•œ ๊ณณ์—

2022๋…„ 10์›” 8์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] ์ˆ˜์ถœ๊ทœ์ • ๊ด€๋ จ ๋ฌธ์„œ ๋ˆ„๋ฝ ๋ฉ”์‹œ์ง€ ์—†์• ๋ฒ„๋ฆฌ๊ธฐ!

์ปค๋„ฅํŠธ ์ด๋ฏธ์ง€ํšŒ์‚ฌ ์•ฑ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด์„œ ํ•ญ์ƒ TestFilght๋ฅผ ์˜ฌ๋ฆฐ ๋’ค์— App Store Connect์—์„œ ์ˆ˜์‹ญ๋ฒˆ ์ƒˆ๋กœ๊ณ ์นจ ํ•œ๋‹ค.. ๋ฐ”๋กœ ์ˆ˜์ถœ๊ทœ์ • ๊ด€๋ จ ๋ฌธ์„œ ๋ˆ„๋ฝ์ด ๋œจ๋ฉด ํ•ด๋‹น ๋ฉ”์„ธ์ง€์—์„œ ์•„๋‹ˆ์š”!! ๋ฅผ ์ฒดํฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค.์•ฑ ์Šคํ† ์–ด ์ปค๋„ฅํŠธ์— ์˜ฌ๋ผ๊ฐ€๋Š” ์‹œ๊ฐ„๋„ ๊ธด๋ฐ ํ•ด๋‹น

2022๋…„ 8์›” 7์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] No such module 'XCTest' ์˜ค๋ฅ˜ ํ•ด๊ฒฐํ•˜๊ธฐ

๊ฐ•์˜๋“ค์œผ๋ฉด์„œ ๊ตฌํ˜„ํ•œ ๊ฐ„๋‹จํ•œ ์•ฑ Unit Test ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ํƒ€๊ฒŸ์—์„œ UnitTesting Bundle๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ƒ์„ฑ๋œ Test ํŒŒ์ผ๋กœ ์ด๋™์„ ํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์‹œ์ž‘๋„ ํ•ด๋ณด๊ธฐ ์ „์— ์ด๋Ÿฐ ์—๋Ÿฌ๋ž‘ ๋งŒ๋‚˜๊ฒŒ ๋˜์—ˆ๋‹ค..๐Ÿ˜ญ ๊ทธ๋ž˜์„œ ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด์„œ ์•Œ์•„๋ณด๋‹ˆ๊น Buil

2022๋…„ 7์›” 17์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] Prefetch TableView

UITableViewDataSourcePrefetching๋ฅผ ์–ธ์ œ ์จ์•ผํ• ๊นŒ?\-> cellForRowAt์ด ํ˜ธ์ถœ๋˜๊ธฐ ์ „์— ๋ฏธ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œ๋ฅผ ํ•ด์ค˜์•ผ ํ•  ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ์ข‹๋‹ค!์˜ˆ๋ฅผ ๋“ค๋ฉด, ์ˆ˜๋งŽ์€ ์…€์ด ์žˆ๋Š”๋ฐ ๊ฐ ์…€๋งˆ๋‹ค ์ด๋ฏธ์ง€๋ฅผ ์„œ๋ฒ„์—์„œ ๋ถˆ๋Ÿฌ์™€์•ผํ•˜๋Š” ๊ฒฝ์šฐ์— ์ฒ˜๋ฆฌํ•˜๋Š” ์‹œ

2022๋…„ 4์›” 3์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[ํ›„๊ธฐ] "๊ฐœ๋ฐœ์ž์˜ ๊ธ€์“ฐ๊ธฐ"

์ด๋ฏธ์ง€1์‚ฌ๋‚ด์— ์ด ์ฑ…์ด ์žˆ์–ด์„œ ํ‰์†Œ ๊ธ€์“ฐ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ ๊ทธ๋ฆฌ๊ณ  ๋ง์„ ํ•˜๋Š” ๊ฒƒ์— ์žˆ์–ด์„œ ์ƒ๊ฐ์ด ๋งŽ๋˜ ๋‚˜์—๊ฒŒ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์„œ ์„ค ์—ฐํœด๋™์•ˆ ์ฝ์–ด๋ณด์•˜๋‹ค.์ฝ๊ธฐ ์ „์— ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์› ๋˜ ๋ชฉ์ฐจ๋Š”... ๋ฐ”๋กœ.. ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ๊ด€๋ จ ๋ชฉ์ฐจ๋‹ค!!์™œ๋ƒํ•˜๋ฉด ์ด ๋ฒจ๋กœ๊ทธ๋ฅผ ์กฐ๊ธˆ ๋”

2022๋…„ 2์›” 2์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] StatusBar(์ƒํƒœ๋ฐ”) ์ƒ‰์ƒ ๋ฐ”๊พธ๊ธฐ ๊ฒฝํ—˜

๋จผ์ € ์•ฑ์—๋Š” ํฐ์ƒ‰๊ฐ™์€ ๋ฐ์€ ์ƒ‰์˜ ๋ฐฐ๊ฒฝ์ƒ‰์„ ๊ฐ–์„ ์ˆ˜๋„, ๊ฒ€์€์ƒ‰๊ฐ™์€ ์–ด๋‘์šด ์ƒ‰์˜ ๋ฐฐ๊ฒฝ์ƒ‰์„ ๊ฐ–์„ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ˜„์žฌ ํ™”๋ฉด์— ๋งž๊ฒŒ ์ƒํƒœ๋ฐ”์˜ ์ƒ‰์ƒ์„ ๋ฐ”๊ฟ”์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์•„๋ž˜ ๋งํฌ๋Š” ์• ํ”Œ์—์„œ ์ œ๊ณตํ•˜๋Š” Human Interface Guideline์— ๋‚˜์™€์žˆ๋Š” ์ƒํƒœ๋ฐ”์˜ ๋Œ€ํ•œ ์ด์•ผ

2021๋…„ 12์›” 19์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] LoadView

์ง€๊ธˆ๊นŒ์ง€ View๋ฅผ ์ฝ”๋“œ๋กœ ๊ทธ๋ฆฌ๊ณ  ์žˆ์—ˆ์œผ๋ฉด์„œ VC(View Controller) Life Cycle์—์„œ LoadView๋ผ๋Š” ๋ถ€๋ถ„์„ ํฌ๊ฒŒ ์‹ ๊ฒฝ์“ฐ์ง€ ๋ชปํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ.. ์ตœ๊ทผ ํšŒ์‚ฌ์—์„œ ๋ฆฌ๋””์ž์ธ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋งก์€ ๋ทฐ๋ฅผ Objective-C + Storyboard ์กฐํ•ฉ์—์„œ

2021๋…„ 12์›” 5์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] Concurrency

์ด๋ฒˆ WWDC 21์—์„œ Swift์— async, await๋ฅผ ์ง€์›ํ•˜๋ฉด์„œ ๋™์‹œ์„ฑ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ Swift ๊ณต์‹ ๋ฌธ์„œ์— ๋‚˜์˜จ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.๋™์‹œ์„ฑ(Concurrency)์€ ๋‹ค์ˆ˜์˜ ์ฝ”์–ด๊ฐ€ ์žˆ๋Š” ํ™˜๊ฒฝ์—์„œ ๊ฐ ์ฝ”์–ด๊ฐ€ ์ž‘์—… ์ค‘ ์ฝ”์–ด๋งˆ๋‹ค ๋™์‹œ์—

2021๋…„ 6์›” 9์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[RxSwift] Transforming Operators

RxSwift์—์„œ ์—ฐ์‚ฐ์ž๋“ค ์ค‘์—์„œ ์ค‘์š”ํ•œ ์—ฐ์‚ฐ์ž๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž(Transforming Operator)์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์–ด์ œ ์ •๋ฆฌํ•œ ํ•„ํ„ฐ๋ง ์—ฐ์‚ฐ์ž์ฒ˜๋Ÿผ Swift ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์œ ์‚ฌํ•œ ์—ฐ์‚ฐ์ž๋“ค์ด ์žˆ๋‹ค..toArray()์š”์†Œ๋“ค์„ ๋ฌถ์–ด Array

2021๋…„ 4์›” 30์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[RxSwift] Filtering Operators

filter๋Š” ๋“ค์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ ์ค‘์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋Š” ์ทจํ•˜๊ณ  ํ•„์š”ํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ œ์™ธ์‹œํ‚ค๋Š” ๊ฒƒ์œผ๋กœ ๋งŽ์ด ์•Œ๊ณ  ์žˆ๋‹ค. ์ด๋ฒˆ์—๋Š” RxSwift์—์„œ ์ด๋Ÿฐ ํ•„ํ„ฐ๋งํ•˜๋Š” ์—ฐ์‚ฐ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. Ignoring Operators .ignoreElements()

2021๋…„ 4์›” 29์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[RxSwift] Subjects

์‹œ์ž‘ํ•˜๊ธฐ ์•ž์„œ์„œ ์ฐธ๊ณ ํ•˜๊ณ ์žˆ๋Š” ๊นƒํ—ˆ๋ธŒ์—์„œ Subject๋ฅผ Observable์ด์ž Obserber์ธ ๊ฒƒ์ด๋ผ๊ณ  ํ‘œํ˜„ํ•˜๊ณ  ์žˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์ด ๋ง์˜ ๋œป์ด ์ดํ•ด๊ฐ€ ๊ฐ€์ง€ ์•Š์•„์„œ ์ฐพ์•„๋ณด๋‹ˆ๊น Subject๊ฐ€ ObserverType ํ”„๋กœํ† ์ฝœ์„ ์ฑ„ํƒํ•˜๊ณ  ์žˆ๊ณ  Observable์„ ์ƒ์†ํ•˜๊ณ 

2021๋…„ 4์›” 27์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[RxSwift] Observable(2)

์–ด์ œ๋Š” Observable์„ ์ƒ์„ฑํ•˜๊ณ  ๊ตฌ๋…ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ–ˆ์œผ๋‹ˆ๊น ์ด๋ฒˆ์—” ๊ตฌ๋…์„ ์ทจ์†Œํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Observable ์ข…๋ฃŒ

2021๋…„ 4์›” 26์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[RxSwift] Observable(1)

marble diagrams๋ฅผ ์ด์šฉํ•ด์„œ ์‹œ๊ฐ„ ํ๋ฆ„์— ๋”ฐ๋ผ ๊ฐ’์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์‹œ๊ฐ„์€ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ๋ฅธ๋‹ค.next ์ด๋ฒคํŠธ๋ฅผ ํ†ตํ•ด์„œ ๊ฐ๊ฐ์˜ ์š”์†Œ(1,2,3)์„ ๋ฐฉ์ถœํ•˜๋Š” ๊ทธ๋ฆผ.3๊ฐœ์˜ tap ์ด๋ฒคํŠธ๊ฐ€ ๋ฐฉ์ถœ๋œ ๋’ค ์™„์ „ ์ข…๋ฃŒ๋œ ๊ทธ๋ฆผ. ์ด๊ฒƒ์„

2021๋…„ 4์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[iOS] UITableViewDataSourcePrefetching ํ”„๋กœํ† ์ฝœ

UITableView์—์„œ DataSource์™€ Delegate ํ”„๋กœํ† ์ฝœ๋ง๊ณ  ๋‚จ์€ ํ•œ ๊ฐ€์ง€ ํ”„๋กœํ† ์ฝœ์ธ UITableVIewDataSourcePrefetching ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ํ”„๋กœํ† ์ฝœ์˜ ์ด๋ฆ„๋งŒ ๋ณด๋ฉด UITableView์—์„œ DataSource๋ฅผ ๋ฏธ๋ฆฌ๊ฐ€์ ธ์˜ค๋Š”(Prefetc

2021๋…„ 4์›” 20์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท